module support_slider import StdEnv, StdIO Start :: *World -> *World Start world # (sliderid, world) = openId world # (textid, world) = openId world # sliders = let w = PixelWidth 300 s = {sliderMin=0, sliderMax=100, sliderThumb=30} in [ SliderControl Horizontal w s (updateSlider textid) [ControlPos (Left, zero), ControlHide], SliderControl Horizontal (PixelWidth 500) s (updateSlider textid) [ControlPos (Left, zero), ControlId sliderid], SliderControl Horizontal w s (updateSlider textid) [ControlPos (RightTo sliderid, zero)], SliderControl Horizontal w s (updateSlider textid) [ControlPos (Left, zero)], //todo SliderControl Horizontal w s (updateSlider textid) [ControlPos (Left, zero), ControlSelectState Able], SliderControl Vertical w s (updateSlider textid) [ControlPos (Left, zero), ControlSelectState Unable], SliderControl Vertical (PixelWidth 500) s (updateSlider textid) [ControlPos (Left, zero), ControlTip "Some tip"] ] # controls = TextControl "TextControl for callbacks" [ControlId textid] :+: ListLS sliders # dialog = Dialog "Support - SliderControl" controls [WindowClose (noLS closeProcess)] = startIO NDI Void (initialise dialog) [] world where initialise dialog pst # (error,pst) = openDialog 0 dialog pst | error <> NoError = closeProcess pst | otherwise = pst updateSlider :: Id SliderMove (Int, PSt .l) -> (Int, PSt .l) updateSlider id move (n, pst) = (n, appPIO (setControlText id (toString move)) pst)