glazier-0.7.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 (Window m s v) Source # 
type Implanted (Window m s v) = Effect m v
type Implanted (Gadget s m a c) Source # 
type Implanted (Gadget s m a c) = Zoomed (Gadget s m a) c
type Implanted (Gadget s m a c) Source # 
type Implanted (Gadget s m a c) = Zoomed (Gadget s m a) c
type Implanted (Widget s v m a c) Source # 
type Implanted (Widget s v m a c)
type Implanted (Widget s v m a c) Source # 
type Implanted (Widget s v m a 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 (Window m s v) (Window m t v) s t Source # 

Methods

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

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

Methods

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

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

Methods

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

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

Methods

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

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

Methods

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

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

Instances

type Dispatched (Gadget s m a c) Source # 
type Dispatched (Gadget s m a c) = Magnified (Gadget s m a) c
type Dispatched (Gadget s m a c) Source # 
type Dispatched (Gadget s m a c) = Magnified (Gadget s m a) c
type Dispatched (Widget s v m a c) Source # 
type Dispatched (Widget s v m a c) = Dispatched (Gadget s m a c)
type Dispatched (Widget s v m a c) Source # 
type Dispatched (Widget s v m a c) = Dispatched (Gadget s m a 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 (Gadget s m a c) (Gadget s m b c) a b Source # 

Methods

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

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

Methods

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

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

Methods

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

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

Methods

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