| Safe Haskell | None | 
|---|---|
| Language | Haskell2010 | 
Glazier.Widget
- data Widget v m r a s n c = Widget {}
- _window :: Lens (Widget v m r a s n c) (Widget v' m' r' a s n c) (WindowT s v m r) (WindowT s v' m' r')
- _gadget :: Lens (Widget v m r a s n c) (Widget v m r a' s n' c') (GadgetT a s n c) (GadgetT a' s n' c')
- _window' :: Lens' (Widget v m r a s n c) (WindowT s v m r)
- _gadget' :: Lens' (Widget v m r a s n c) (GadgetT a s n c)
- _Widget :: Iso (Widget v m r a s n c) (Widget v' m' r' a' s' n' c') (s -> v -> m (r, v), a -> s -> n (c, s)) (s' -> v' -> m' (r', v'), a' -> s' -> n' (c', s'))
- _Widget' :: Iso' (Widget v m r a s n c) (s -> v -> m (r, v), a -> s -> n (c, s))
- _WrappingWidget :: Iso (Widget v m r a s n c) (Widget v' m' r' a' s' n' c') (WindowT s v m r, GadgetT a s n c) (WindowT s' v' m' r', GadgetT a' s' n' c')
- _WrappingWidget' :: Iso' (Widget v m r a s n c) (WindowT s v m r, GadgetT a s n c)
- belowWidget :: ((s -> v -> m (r, v), a -> s -> n (c, s)) -> (s' -> v' -> m' (r', v'), a' -> s' -> n' (c', s'))) -> Widget v m r a s n c -> Widget v' m' r' a' s' n' c'
- underWidget :: ((WindowT s v m r, GadgetT a s n c) -> (WindowT s' v' m' r', GadgetT a' s' n' c')) -> Widget v m r a s n c -> Widget v' m' r' a' s' n' c'
- overWidget :: (Widget v m r a s n c -> Widget v' m' r' a' s' n' c') -> (WindowT s v m r, GadgetT a s n c) -> (WindowT s' v' m' r', GadgetT a' s' n' c')
- aboveWidget :: (Widget v m r a s n c -> Widget v' m' r' a' s' n' c') -> (s -> v -> m (r, v), a -> s -> n (c, s)) -> (s' -> v' -> m' (r', v'), a' -> s' -> n' (c', s'))
- mkWidget :: (WindowT s v m r, GadgetT a s n c) -> Widget v m r a s n c
- mkWidget' :: (s -> v -> m (r, v), a -> s -> n (c, s)) -> Widget v m r a s n c
- runWidget :: Widget v m r a s n c -> (WindowT s v m r, GadgetT a s n c)
- runWidget' :: Widget v m r a s n c -> (s -> v -> m (r, v), a -> s -> n (c, s))
- statically :: (Monad n, Monoid c) => WindowT s v m r -> Widget v m r a s n c
- dynamically :: (Monad m, Monoid r) => GadgetT a s n c -> Widget v m r a s n c
Documentation
data Widget v m r a s n c Source #
A widget is basically a tuple with Gadget and Window, but with handy instances for implant and dispatch.
Instances
| Functor n => Functor (Widget v m r a s n) Source # | Widget Functor is lawful 1: fmap id = id (Widget w g) = Widget w (id $ g) = Widget w g 2: fmap (f . g) = fmap f . fmap g (Widget w gad) = Widget w ((f . g) $ gad) = Widget w ((fmap f . fmap g) gad) | 
| (Monad m, Monad n, Monoid r) => Applicative (Widget v m r a s n) Source # | Widget Applicative is lawful Identity: pure id * v = v Widget mempty (pure id) * Widget vw vg = Widget (mempty <> vw) (pure id * vg) = Widget vw vg Composition: pure (.) * u * v * w = u * (v * w) Widget mempty (pure (.)) * Widget uw ug * Widget vw vg * Widget ww wg = = Widget (mempty <> uw <> vw <> ww) (pure (.) * ug * vg * wg = Widget (uw <> vw <> ww) (ug * (vg * wg)) = Widget (uw <> (vw <> ww)) (ug * (vg * wg)) = Widget uw ug * (Widget vw vg * Widget ww wg) Interchange: u * pure y = pure ($ y) * u Widget uw ug * Widget mempty (pure y) = Widget (uw <> mempty) (ug * pure y) = Widget (mempty <> uw) (pure ($ y) * ug) = Widget mempty (pure $y) * Widget uw ug | 
| (Monad m, Monad n, Semigroup r, Semigroup c) => Semigroup (Widget v m r a s n c) Source # | |
| (Monad m, Monad n, Monoid r, Monoid c) => Monoid (Widget v m r a s n c) Source # | |
| Monad n => Dispatch (Widget v m r a s n c) (Widget v m r b s n c) a b Source # | |
| (Monad m, Monad n) => Implant (Widget v m r a s n c) (Widget v m r a t n c) s t Source # | |
| type Dispatched (Widget v m r a s n c) Source # | |
| type Implanted (Widget v m r a s n c) Source # | |
_window :: Lens (Widget v m r a s n c) (Widget v' m' r' a s n c) (WindowT s v m r) (WindowT s v' m' r') Source #
polymorphic lens to the window of a widget
_gadget :: Lens (Widget v m r a s n c) (Widget v m r a' s n' c') (GadgetT a s n c) (GadgetT a' s n' c') Source #
polymorphic lens to the gadget of a widget
_window' :: Lens' (Widget v m r a s n c) (WindowT s v m r) Source #
non polymorphic lens to the window of a widget
_gadget' :: Lens' (Widget v m r a s n c) (GadgetT a s n c) Source #
non polymorphic lens to the gadget of a widget
_Widget :: Iso (Widget v m r a s n c) (Widget v' m' r' a' s' n' c') (s -> v -> m (r, v), a -> s -> n (c, s)) (s' -> v' -> m' (r', v'), a' -> s' -> n' (c', s')) Source #
_Widget' :: Iso' (Widget v m r a s n c) (s -> v -> m (r, v), a -> s -> n (c, s)) Source #
Non polymorphic version of _Widget
_WrappingWidget :: Iso (Widget v m r a s n c) (Widget v' m' r' a' s' n' c') (WindowT s v m r, GadgetT a s n c) (WindowT s' v' m' r', GadgetT a' s' n' c') Source #
_WrappingWidget' :: Iso' (Widget v m r a s n c) (WindowT s v m r, GadgetT a s n c) Source #
Non polymorphic version of _WrappingWidget
belowWidget :: ((s -> v -> m (r, v), a -> s -> n (c, s)) -> (s' -> v' -> m' (r', v'), a' -> s' -> n' (c', s'))) -> Widget v m r a s n c -> Widget v' m' r' a' s' n' c' Source #
underWidget :: ((WindowT s v m r, GadgetT a s n c) -> (WindowT s' v' m' r', GadgetT a' s' n' c')) -> Widget v m r a s n c -> Widget v' m' r' a' s' n' c' Source #
overWidget :: (Widget v m r a s n c -> Widget v' m' r' a' s' n' c') -> (WindowT s v m r, GadgetT a s n c) -> (WindowT s' v' m' r', GadgetT a' s' n' c') Source #
aboveWidget :: (Widget v m r a s n c -> Widget v' m' r' a' s' n' c') -> (s -> v -> m (r, v), a -> s -> n (c, s)) -> (s' -> v' -> m' (r', v'), a' -> s' -> n' (c', s')) Source #
runWidget' :: Widget v m r a s n c -> (s -> v -> m (r, v), a -> s -> n (c, s)) Source #