Safe Haskell | None |
---|
Primitive GUI elements.
There is a convention that constructors take only parameters that specify the logic of the widget. The view is set for GUI-elements with other functions.
- data ValDiap = ValDiap {
- valDiapMin :: Double
- valDiapMax :: Double
- type ValStep = Double
- data ValScaleType
- = Linear
- | Exponential
- data ValSpan = ValSpan {}
- linSpan :: Double -> Double -> ValSpan
- expSpan :: Double -> Double -> ValSpan
- uspan :: ValSpan
- bspan :: ValSpan
- uspanExp :: ValSpan
- count :: ValDiap -> ValStep -> Maybe ValStep -> Double -> Source (Evt D)
- countSig :: ValDiap -> ValStep -> Maybe ValStep -> Double -> Source Sig
- joy :: ValSpan -> ValSpan -> (Double, Double) -> Source (Sig, Sig)
- knob :: String -> ValSpan -> Double -> Source Sig
- data KnobType
- setKnobType :: KnobType -> Gui -> Gui
- roller :: String -> ValSpan -> ValStep -> Double -> Source Sig
- slider :: String -> ValSpan -> Double -> Source Sig
- sliderBank :: String -> [Double] -> Source [Sig]
- data SliderType
- setSliderType :: SliderType -> Gui -> Gui
- numeric :: String -> ValDiap -> ValStep -> Double -> Source Sig
- data TextType
- = NormalText
- | NoDrag
- | NoEdit
- setTextType :: TextType -> Gui -> Gui
- box :: String -> Display
- data BoxType
- = FlatBox
- | UpBox
- | DownBox
- | ThinUpBox
- | ThinDownBox
- | EngravedBox
- | EmbossedBox
- | BorderBox
- | ShadowBox
- | Roundedbox
- | RoundedShadowBox
- | RoundedFlatBox
- | RoundedUpBox
- | RoundedDownBox
- | DiamondUpBox
- | DiamondDownBox
- | OvalBox
- | OvalShadowBox
- | OvalFlatBox
- setBoxType :: BoxType -> Gui -> Gui
- button :: String -> Source (Evt Unit)
- data ButtonType
- setButtonType :: ButtonType -> Gui -> Gui
- toggle :: String -> Source (Evt D)
- butBank :: String -> Int -> Int -> (Int, Int) -> Source (Evt (D, D))
- toggleSig :: String -> Source Sig
- butBankSig :: String -> Int -> Int -> (Int, Int) -> Source (Sig, Sig)
- butBank1 :: String -> Int -> Int -> (Int, Int) -> Source (Evt D)
- butBankSig1 :: String -> Int -> Int -> (Int, Int) -> Source Sig
- radioButton :: Arg a => String -> [(String, a)] -> Int -> Source (Evt a)
- matrixButton :: Arg a => String -> Int -> Int -> [a] -> (Int, Int) -> Source (Evt a)
- funnyRadio :: Tuple b => String -> [(String, a -> b)] -> Int -> Source (a -> b)
- funnyMatrix :: Tuple b => String -> Int -> Int -> [a -> b] -> (Int, Int) -> Source (a -> b)
- value :: String -> Double -> Sink Sig
- meter :: String -> ValSpan -> Double -> Sink Sig
- setTitle :: String -> Gui -> SE Gui
- data KeyEvt
- data Key
- = CharKey Char
- | F1
- | F2
- | F3
- | F4
- | F5
- | F6
- | F7
- | F8
- | F9
- | F10
- | F11
- | F12
- | Scroll
- | CapsLook
- | LeftShift
- | RightShift
- | LeftCtrl
- | RightCtrl
- | Enter
- | LeftAlt
- | RightAlt
- | LeftWinKey
- | RightWinKey
- | Backspace
- | ArrowUp
- | ArrowLeft
- | ArrowRight
- | ArrowDown
- | Insert
- | Home
- | PgUp
- | Delete
- | End
- | PgDown
- | NumLock
- | NumDiv
- | NumMul
- | NumSub
- | NumHome
- | NumArrowUp
- | NumPgUp
- | NumArrowLeft
- | NumSpace
- | NumArrowRight
- | NumEnd
- | NumArrowDown
- | NumPgDown
- | NumIns
- | NumDel
- | NumEnter
- | NumPlus
- | Num7
- | Num8
- | Num9
- | Num4
- | Num5
- | Num6
- | Num1
- | Num2
- | Num3
- | Num0
- | NumDot
- keyIn :: KeyEvt -> Evt Unit
- charOn :: Char -> Evt Unit
- charOff :: Char -> Evt Unit
Common properties
data ValDiap
The diapason of the continuous value.
ValDiap | |
|
data ValSpan
A value span is a diapason of the value and a type of the scale (can be linear or exponential).
linSpan :: Double -> Double -> ValSpan
Makes a linear ValSpan
with specified boundaries.
linSpan minVal maxVal
expSpan :: Double -> Double -> ValSpan
Makes an exponential ValSpan
with specified boundaries.
expSpan minVal maxVal
Valuators
count :: ValDiap -> ValStep -> Maybe ValStep -> Double -> Source (Evt D)
Allows the user to increase/decrease a value with mouse clicks on a corresponding arrow button. Output is an event stream that contains values when counter changes.
count diapason fineValStep maybeCoarseValStep initValue
doc: http:www.csounds.commanualhtml/FLcount.html
countSig :: ValDiap -> ValStep -> Maybe ValStep -> Double -> Source Sig
A variance on the function count
, but it produces
a signal of piecewise constant function.
joy :: ValSpan -> ValSpan -> (Double, Double) -> Source (Sig, Sig)
It is a squared area that allows the user to modify two output values at the same time. It acts like a joystick.
joy valueSpanX valueSpanY (initX, initY)
knob :: String -> ValSpan -> Double -> Source Sig
A FLTK widget opcode that creates a knob.
knob valueSpan initValue
setKnobType :: KnobType -> Gui -> Gui
roller :: String -> ValSpan -> ValStep -> Double -> Source Sig
FLroller is a sort of knob, but put transversally.
roller valueSpan step initVal
slider :: String -> ValSpan -> Double -> Source Sig
FLslider puts a slider into the corresponding container.
slider valueSpan initVal
sliderBank :: String -> [Double] -> Source [Sig]
Constructs a list of linear unit sliders (ranges in [0, 1]). It takes a list of init values.
setSliderType :: SliderType -> Gui -> Gui
numeric :: String -> ValDiap -> ValStep -> Double -> Source Sig
numeric (originally FLtext in the Csound) allows the user to modify a parameter value by directly typing it into a text field.
numeric diapason step initValue
setTextType :: TextType -> Gui -> Gui
Other widgets
A FLTK widget that displays text inside of a box. If the text is longer than 255 characters the text is split on several parts (Csound limitations).
box text
data BoxType
The type of the box. Some values are not implemented on the Csound level.
setBoxType :: BoxType -> Gui -> Gui
data ButtonType
The type of the button. It affects toggle buttons and button banks.
In Csound buttons and toggle buttons
are constructed with the same function (but with different button types).
But in this library they are contructed by different functions (button
and toggle
).
Normal button is a plain old button, but other values specify toggle buttons.
So this property doesn't affect the buttons (since they could be only normal buttons).
setButtonType :: ButtonType -> Gui -> Gui
butBank :: String -> Int -> Int -> (Int, Int) -> Source (Evt (D, D))
A FLTK widget opcode that creates a bank of buttons. Result is (x, y) coordinate of the triggered button.
butBank xNumOfButtons yNumOfButtons
toggleSig :: String -> Source Sig
A variance on the function toggle
, but it produces
a signal of piecewise constant function.
butBankSig :: String -> Int -> Int -> (Int, Int) -> Source (Sig, Sig)
A variance on the function butBank
, but it produces
a signal of piecewise constant function.
Result is (x, y) coordinate of the triggered button.
butBank1 :: String -> Int -> Int -> (Int, Int) -> Source (Evt D)
A FLTK widget opcode that creates a bank of buttons.
butBank xNumOfButtons yNumOfButtons
radioButton :: Arg a => String -> [(String, a)] -> Int -> Source (Evt a)Source
A radio button. It takes a list of values with labels.
matrixButton :: Arg a => String -> Int -> Int -> [a] -> (Int, Int) -> Source (Evt a)Source
A matrix of values.
funnyRadio :: Tuple b => String -> [(String, a -> b)] -> Int -> Source (a -> b)Source
Radio button that returns functions. Useful for picking a waveform or type of filter.
funnyMatrix :: Tuple b => String -> Int -> Int -> [a -> b] -> (Int, Int) -> Source (a -> b)Source
Matrix of functional values.
value :: String -> Double -> Sink Sig
FLvalue shows current the value of a valuator in a text field.
value initVal
meter :: String -> ValSpan -> Double -> Sink Sig
A slider that serves as indicator. It consumes values instead of producing.
meter valueSpan initValue
Transformers
Keyboard
data Key
Keys.