Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
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
Synopsis
- 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 :: Text -> CabProp
- text1 :: Text -> CabProp
- text2 :: Text -> Text -> 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 :: Text -> CabProp
- rotate :: Float -> Float -> Float -> CabProp
- alpha :: Float -> CabProp
- visible :: Bool -> CabProp
- caption :: Text -> CabProp
- widgetarray :: Text -> Int -> CabProp
- popuptext :: Text -> CabProp
- active :: Bool -> CabProp
- svgfile :: Text -> Text -> CabProp
- populate :: Text -> Text -> CabProp
- mode :: Text -> CabProp
- file :: Text -> CabProp
- shape :: Text -> CabProp
- corners :: Float -> CabProp
- channeltype :: Text -> CabProp
- align :: Text -> 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 :: Text -> CabProp
- guirefresh :: Int -> CabProp
- plant :: Text -> CabProp
- child :: Bool -> CabProp
- show :: Bool -> CabProp
- middlec :: Int -> CabProp
- keywidth :: Int -> CabProp
- scrollbars :: Bool -> CabProp
- fontstyle :: Text -> CabProp
- scrubberpos :: Int -> CabProp
- zoom :: Float -> CabProp
- displaytype :: Text -> 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 :: Text -> CabProp #
widgetarray :: Text -> Int -> CabProp #
channeltype :: Text -> CabProp #
sliderincr :: Float -> CabProp #
trackerthickness :: Float -> CabProp #
linethickness :: Float -> CabProp #
guirefresh :: Int -> CabProp #
scrollbars :: Bool -> CabProp #
scrubberpos :: Int -> CabProp #
displaytype :: Text -> CabProp #
updaterate :: Int -> CabProp #