ltk-0.8.0.6: Leksah tool kitSource codeContentsIndex
Control.Event
Description
A simple event mechanism
Synopsis
class (Eq delta, Ord delta, Show delta) => EventSelector delta
class EventSelector delta => Event beta delta | beta -> delta, delta -> beta where
getSelector :: beta -> delta
class (Monad gamma, Event beta delta) => EventSource alpha beta gamma delta | alpha -> beta, alpha -> gamma where
getHandlers :: alpha -> gamma (Handlers beta gamma delta)
setHandlers :: alpha -> Handlers beta gamma delta -> gamma ()
myUnique :: alpha -> gamma Unique
canTriggerEvent :: alpha -> delta -> Bool
triggerEvent :: alpha -> beta -> gamma beta
registerEvent :: alpha -> delta -> Either (beta -> gamma beta) Unique -> gamma (Maybe Unique)
type Handlers beta gamma delta = Map delta [(Unique, beta -> gamma beta)]
Documentation
class (Eq delta, Ord delta, Show delta) => EventSelector delta Source
Every event needs a selector, which should identify the type of event
class EventSelector delta => Event beta delta | beta -> delta, delta -> beta whereSource
Every event needs to know its selector and its source
Methods
getSelector :: beta -> deltaSource
class (Monad gamma, Event beta delta) => EventSource alpha beta gamma delta | alpha -> beta, alpha -> gamma whereSource
Everything which is an event source needs this
Methods
getHandlers :: alpha -> gamma (Handlers beta gamma delta)Source
setHandlers :: alpha -> Handlers beta gamma delta -> gamma ()Source
myUnique :: alpha -> gamma UniqueSource
canTriggerEvent :: alpha -> delta -> BoolSource
Reimplement this in instances to make triggering of events possible
triggerEvent :: alpha -> beta -> gamma betaSource
Returns the event, so that you may get values back from an event
registerEvent :: alpha -> delta -> Either (beta -> gamma beta) Unique -> gamma (Maybe Unique)Source
use Left to register and Right to unregister returns Unique if registration was successfull, else Nothing
type Handlers beta gamma delta = Map delta [(Unique, beta -> gamma beta)]Source
This shows the implementation of the event mechnism
Produced by Haddock version 2.6.1