module Monomer.EnhancedSlider
(
module Monomer.EnhancedSlider.EnhancedSliderCfg
, enhancedSlider
, enhancedSlider_
, enhancedSliderV
, enhancedSliderV_
, enhancedSliderD_
) where
import Control.Lens
import Data.Default
import Data.Typeable
import Monomer.Core.Combinators
import Monomer.Widgets.Composite
import Monomer.Widgets.Singles.Slider
import TextShow
import Monomer.EnhancedSlider.EnhancedSliderCfg
import Monomer.EnhancedSlider.EnhancedSliderEvent
import Monomer.EnhancedSlider.UI
enhancedSlider
:: (WidgetModel s, WidgetEvent e, SliderValue a)
=> ALens' s a
-> a
-> a
-> WidgetNode s e
enhancedSlider :: forall s e a.
(WidgetModel s, WidgetEvent e, SliderValue a) =>
ALens' s a -> a -> a -> WidgetNode s e
enhancedSlider ALens' s a
field a
a a
b = forall s e a.
(WidgetModel s, WidgetEvent e, SliderValue a) =>
ALens' s a -> a -> a -> [EnhancedSliderCfg s e a] -> WidgetNode s e
enhancedSlider_ ALens' s a
field a
a a
b forall a. Default a => a
def
enhancedSlider_
:: (WidgetModel s, WidgetEvent e, SliderValue a)
=> ALens' s a
-> a
-> a
-> [EnhancedSliderCfg s e a]
-> WidgetNode s e
enhancedSlider_ :: forall s e a.
(WidgetModel s, WidgetEvent e, SliderValue a) =>
ALens' s a -> a -> a -> [EnhancedSliderCfg s e a] -> WidgetNode s e
enhancedSlider_ ALens' s a
field a
a a
b [EnhancedSliderCfg s e a]
configs = WidgetNode s e
node where
node :: WidgetNode s e
node = forall s e a.
(WidgetModel s, WidgetEvent e, SliderValue a) =>
WidgetData s a
-> a
-> a
-> [EnhancedSliderCfg s e a]
-> [CompositeCfg a (EnhancedSliderEvent a) s e]
-> WidgetNode s e
enhancedSliderD_ WidgetData s a
wlens a
a a
b [EnhancedSliderCfg s e a]
configs []
wlens :: WidgetData s a
wlens = forall s a. ALens' s a -> WidgetData s a
WidgetLens ALens' s a
field
enhancedSliderV
:: (WidgetModel s, WidgetEvent e, SliderValue a)
=> a
-> (a -> e)
-> a
-> a
-> WidgetNode s e
enhancedSliderV :: forall s e a.
(WidgetModel s, WidgetEvent e, SliderValue a) =>
a -> (a -> e) -> a -> a -> WidgetNode s e
enhancedSliderV a
v a -> e
handler a
a a
b = forall s e a.
(WidgetModel s, WidgetEvent e, SliderValue a) =>
a
-> (a -> e)
-> a
-> a
-> [EnhancedSliderCfg s e a]
-> WidgetNode s e
enhancedSliderV_ a
v a -> e
handler a
a a
b forall a. Default a => a
def
enhancedSliderV_
:: (WidgetModel s, WidgetEvent e, SliderValue a)
=> a
-> (a -> e)
-> a
-> a
-> [EnhancedSliderCfg s e a]
-> WidgetNode s e
enhancedSliderV_ :: forall s e a.
(WidgetModel s, WidgetEvent e, SliderValue a) =>
a
-> (a -> e)
-> a
-> a
-> [EnhancedSliderCfg s e a]
-> WidgetNode s e
enhancedSliderV_ a
v a -> e
handler a
a a
b [EnhancedSliderCfg s e a]
configs = WidgetNode s e
node where
node :: WidgetNode s e
node = forall s e a.
(WidgetModel s, WidgetEvent e, SliderValue a) =>
WidgetData s a
-> a
-> a
-> [EnhancedSliderCfg s e a]
-> [CompositeCfg a (EnhancedSliderEvent a) s e]
-> WidgetNode s e
enhancedSliderD_ (forall s a. a -> WidgetData s a
WidgetValue a
v) a
a a
b [EnhancedSliderCfg s e a]
newConfigs []
newConfigs :: [EnhancedSliderCfg s e a]
newConfigs = forall t a e. CmbOnChange t a e => (a -> e) -> t
onChange a -> e
handler forall a. a -> [a] -> [a]
: [EnhancedSliderCfg s e a]
configs
enhancedSliderD_
:: (WidgetModel s, WidgetEvent e, SliderValue a)
=> WidgetData s a
-> a
-> a
-> [EnhancedSliderCfg s e a]
-> [CompositeCfg a (EnhancedSliderEvent a) s e]
-> WidgetNode s e
enhancedSliderD_ :: forall s e a.
(WidgetModel s, WidgetEvent e, SliderValue a) =>
WidgetData s a
-> a
-> a
-> [EnhancedSliderCfg s e a]
-> [CompositeCfg a (EnhancedSliderEvent a) s e]
-> WidgetNode s e
enhancedSliderD_ WidgetData s a
wdata a
a a
b [EnhancedSliderCfg s e a]
configs [CompositeCfg a (EnhancedSliderEvent a) s e]
cmpConfigs = WidgetNode s e
node where
node :: WidgetNode s e
node = forall s e ep sp.
(CompositeModel s, CompositeEvent e, CompositeEvent ep,
CompParentModel sp) =>
WidgetType
-> WidgetData sp s
-> UIBuilder s e
-> EventHandler s e sp ep
-> [CompositeCfg s e sp ep]
-> WidgetNode sp ep
compositeD_ WidgetType
wt WidgetData s a
wdata UIBuilder a (EnhancedSliderEvent a)
uiBuilder EventHandler a (EnhancedSliderEvent a) s e
eventHandler [CompositeCfg a (EnhancedSliderEvent a) s e]
cmpConfigs
wt :: WidgetType
wt = Text -> WidgetType
WidgetType forall a b. (a -> b) -> a -> b
$ Text
"enhancedSlider-" forall a. Semigroup a => a -> a -> a
<> (forall a. TextShow a => a -> Text
showt forall a b. (a -> b) -> a -> b
$ forall a. Typeable a => a -> TypeRep
typeOf a
a)
uiBuilder :: UIBuilder a (EnhancedSliderEvent a)
uiBuilder = forall a s e.
SliderValue a =>
EnhancedSliderCfg s e a
-> a -> a -> UIBuilder a (EnhancedSliderEvent a)
buildUI EnhancedSliderCfg s e a
config a
a a
b
eventHandler :: EventHandler a (EnhancedSliderEvent a) s e
eventHandler = forall a sp ep.
SliderValue a =>
EnhancedSliderCfg sp ep a
-> a -> a -> EventHandler a (EnhancedSliderEvent a) sp ep
handleEvent EnhancedSliderCfg s e a
config a
a a
b
config :: EnhancedSliderCfg s e a
config = forall a. Monoid a => [a] -> a
mconcat [EnhancedSliderCfg s e a]
configs