Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Gamgine.State.StateTree
Synopsis
- data StateTree a = Branch {
- state :: State a
- enterWhen :: StateTransition
- leaveWhen :: StateTransition
- adjacents :: [StateTree a]
- type EnterWhen = StateTransition
- type LeaveWhen = StateTransition
- data StateTransition
- root :: State a -> [StateTree a] -> StateTree a
- enterState :: MousePos -> a -> StateTree a -> Maybe (a, StateTree a)
- leaveState :: a -> StateTree a -> (a, StateTree a)
- handleKeyEvent :: KeyInfo -> a -> StateTree a -> (a, StateTree a)
- handleMouseEvent :: MouseInfo -> a -> StateTree a -> (a, StateTree a)
Documentation
the tree of application states and how they entered and leaved
Constructors
Branch | |
Fields
|
type EnterWhen = StateTransition Source #
at which event the next state should be entered
type LeaveWhen = StateTransition Source #
at which event the current state should be leaved
data StateTransition Source #
when a state should be entered or leaved
Constructors
ByKey Key InputState | |
ByKeyWithMod Key InputState Modifier | |
ByMouse MouseButton InputState | |
ByMouseWithMod MouseButton InputState Modifier | |
NoTransition |
Instances
Eq StateTransition Source # | |
Defined in Gamgine.State.StateTree Methods (==) :: StateTransition -> StateTransition -> Bool # (/=) :: StateTransition -> StateTransition -> Bool # | |
Ord StateTransition Source # | |
Defined in Gamgine.State.StateTree Methods compare :: StateTransition -> StateTransition -> Ordering # (<) :: StateTransition -> StateTransition -> Bool # (<=) :: StateTransition -> StateTransition -> Bool # (>) :: StateTransition -> StateTransition -> Bool # (>=) :: StateTransition -> StateTransition -> Bool # max :: StateTransition -> StateTransition -> StateTransition # min :: StateTransition -> StateTransition -> StateTransition # |
leaveState :: a -> StateTree a -> (a, StateTree a) Source #