glazier-0.10.0.0: Composable widgets framework

Safe HaskellNone
LanguageHaskell2010

Glazier.Class

Synopsis

Documentation

type family Implanted m :: * -> * Source #

Modify the state given a lens, prism or traversal. NB. This is Zoom for Notify.

Instances

type Implanted (WindowT s m v) Source # 
type Implanted (WindowT s m v) = Magnified (WindowT s m) v
type Implanted (GadgetT a s m c) Source # 
type Implanted (GadgetT a s m c) = Zoomed (GadgetT a s m) c
type Implanted (Widget m v a s n c) Source # 
type Implanted (Widget m v a s n c)

class Implant m n s t | m -> s, n -> t, m t -> n, n s -> m where Source #

Minimal complete definition

implant

Methods

implant :: LensLike' (Implanted m) t s -> m -> n Source #

Instances

Monad m => Implant (WindowT s m v) (WindowT t m v) s t Source # 

Methods

implant :: LensLike' (Implanted (WindowT s m v)) t s -> WindowT s m v -> WindowT t m v Source #

Monad m => Implant (GadgetT a s m c) (GadgetT a t m c) s t Source # 

Methods

implant :: LensLike' (Implanted (GadgetT a s m c)) t s -> GadgetT a s m c -> GadgetT a t m c Source #

(Monad m, Monad n) => Implant (Widget m v a s n c) (Widget m v a t n c) s t Source # 

Methods

implant :: LensLike' (Implanted (Widget m v a s n c)) t s -> Widget m v a s n c -> Widget m v a t n c Source #

type family Dispatched m :: * -> * Source #

Instances

type Dispatched (GadgetT a s m c) Source # 
type Dispatched (GadgetT a s m c) = Magnified (GadgetT a s m) c
type Dispatched (Widget m v a s n c) Source # 
type Dispatched (Widget m v a s n c) = Dispatched (GadgetT a s n c)

class Dispatch m n b a | m -> b, n -> a, m a -> n, n b -> m where Source #

Changes the action type given a lens, prism or traversal

Minimal complete definition

dispatch

Methods

dispatch :: LensLike' (Dispatched m) a b -> m -> n Source #

Instances

Monad m => Dispatch (GadgetT a s m c) (GadgetT b s m c) a b Source # 

Methods

dispatch :: LensLike' (Dispatched (GadgetT a s m c)) b a -> GadgetT a s m c -> GadgetT b s m c Source #

Monad n => Dispatch (Widget m v a s n c) (Widget m v b s n c) a b Source # 

Methods

dispatch :: LensLike' (Dispatched (Widget m v a s n c)) b a -> Widget m v a s n c -> Widget m v b s n c Source #