Safe Haskell | None |
---|---|
Language | Haskell98 |
The Cab is a monad for Cabbage markup language. The markup description can be constructed in the same way as blaze-html markup.
We use monadic sequencing for sequencing of markup elements.
An example:
import Csound.Base import qualified Csound.Cabbage as C ui = do C.cabbage $ do C.form $ do C.size 100 100 C.pluginid "plugin" C.button $ do C.bounds 10 10 80 80 C.channel "button" C.text1 "Click me" C.colour0 (C.Rgb 150 30 0) C.colour1 (C.Rgb 30 150 12) res <- chnCtrlGet "button" return res main = dac $ do btn <- ui return $ btn * osc 220
We can read a complete tutorial on how to create Cabbage plugins at the guide: https://github.com/spell-music/csound-expression/blob/master/tutorial/chapters/CabbageTutorial.md
- type Cab = Cab' ()
- type CabProp = CabProp' ()
- data Col :: *
- cabbage :: Cab -> SE ()
- button :: CabProp -> Cab
- filebutton :: CabProp -> Cab
- infobutton :: CabProp -> Cab
- checkbox :: CabProp -> Cab
- combobox :: CabProp -> Cab
- csoundoutput :: CabProp -> Cab
- encoder :: CabProp -> Cab
- gentable :: CabProp -> Cab
- hrange :: CabProp -> Cab
- vrange :: CabProp -> Cab
- form :: CabProp -> Cab
- groupbox :: CabProp -> Cab
- image :: CabProp -> Cab
- keyboard :: CabProp -> Cab
- label :: CabProp -> Cab
- hslider :: CabProp -> Cab
- vslider :: CabProp -> Cab
- rslider :: CabProp -> Cab
- soundfiler :: CabProp -> Cab
- signaldisplay :: CabProp -> Cab
- textbox :: CabProp -> Cab
- texteditor :: CabProp -> Cab
- xypad :: CabProp -> Cab
- bounds :: Int -> Int -> Int -> Int -> CabProp
- channel :: String -> CabProp
- text1 :: String -> CabProp
- text2 :: String -> String -> CabProp
- value :: Float -> CabProp
- colour :: Col -> CabProp
- colour0 :: Col -> CabProp
- colour1 :: Col -> CabProp
- backgroundcolour :: Col -> CabProp
- textcolour :: Col -> CabProp
- trackercolour :: Col -> CabProp
- outlinecolour :: Col -> CabProp
- fontcolour :: Col -> CabProp
- fontcolour0 :: Col -> CabProp
- fontcolour1 :: Col -> CabProp
- latched :: Bool -> CabProp
- identchannel :: String -> CabProp
- rotate :: Float -> Float -> Float -> CabProp
- alpha :: Float -> CabProp
- visible :: Bool -> CabProp
- caption :: String -> CabProp
- widgetarray :: String -> Int -> CabProp
- popuptext :: String -> CabProp
- active :: Bool -> CabProp
- svgfile :: String -> String -> CabProp
- populate :: String -> String -> CabProp
- mode :: String -> CabProp
- file :: String -> CabProp
- shape :: String -> CabProp
- corners :: Float -> CabProp
- channeltype :: String -> CabProp
- align :: String -> CabProp
- sliderincr :: Float -> CabProp
- max :: Float -> CabProp
- min :: Float -> CabProp
- textbox' :: Bool -> CabProp
- trackerthickness :: Float -> CabProp
- linethickness :: Float -> CabProp
- range :: Float -> Float -> (Float, Float) -> CabProp
- range2 :: Float -> Float -> (Float, Float) -> Maybe Float -> Maybe Float -> CabProp
- size :: Int -> Int -> CabProp
- pluginid :: String -> CabProp
- guirefresh :: Int -> CabProp
- plant :: String -> CabProp
- child :: Bool -> CabProp
- show :: Bool -> CabProp
- middlec :: Int -> CabProp
- keywidth :: Int -> CabProp
- scrollbars :: Bool -> CabProp
- fontstyle :: String -> CabProp
- scrubberpos :: Int -> CabProp
- zoom :: Float -> CabProp
- displaytype :: String -> CabProp
- updaterate :: Int -> CabProp
- wrap :: Bool -> CabProp
Documentation
Widgets
filebutton :: CabProp -> Cab #
infobutton :: CabProp -> Cab #
csoundoutput :: CabProp -> Cab #
soundfiler :: CabProp -> Cab #
signaldisplay :: CabProp -> Cab #
texteditor :: CabProp -> Cab #
Properties
backgroundcolour :: Col -> CabProp #
textcolour :: Col -> CabProp #
trackercolour :: Col -> CabProp #
outlinecolour :: Col -> CabProp #
fontcolour :: Col -> CabProp #
fontcolour0 :: Col -> CabProp #
fontcolour1 :: Col -> CabProp #
identchannel :: String -> CabProp #
widgetarray :: String -> Int -> CabProp #
channeltype :: String -> CabProp #
sliderincr :: Float -> CabProp #
trackerthickness :: Float -> CabProp #
linethickness :: Float -> CabProp #
guirefresh :: Int -> CabProp #
scrollbars :: Bool -> CabProp #
scrubberpos :: Int -> CabProp #
displaytype :: String -> CabProp #
updaterate :: Int -> CabProp #