ltk-0.15.0.5: Leksah tool kit

Safe HaskellSafe
LanguageHaskell98

Control.Event

Description

A simple event mechanism

Synopsis

Documentation

class (Eq delta, Ord delta, Show delta) => EventSelector delta #

Every event needs a selector, which should identify the type of event

class EventSelector delta => Event beta delta | beta -> delta, delta -> beta where #

Every event needs to know its selector and its source

Minimal complete definition

getSelector

Methods

getSelector :: beta -> delta #

class (Monad gamma, Event beta delta) => EventSource alpha beta gamma delta | alpha -> beta, alpha -> gamma where #

Everything which is an event source needs this alpha is the Notifier beta is the event gamma is the monad delta is the event selector

Minimal complete definition

getHandlers, setHandlers, myUnique

Methods

getHandlers :: alpha -> gamma (Handlers beta gamma delta) #

setHandlers :: alpha -> Handlers beta gamma delta -> gamma () #

myUnique :: alpha -> gamma Unique #

canTriggerEvent :: alpha -> delta -> Bool #

Reimplement this in instances to make triggering of events possible

triggerEvent :: alpha -> beta -> gamma beta #

Returns the event, so that you may get values back from an event Args: Notifier, Event

registerEvent :: alpha -> delta -> (beta -> gamma beta) -> gamma (Maybe Unique) #

unregisterEvent :: alpha -> delta -> Unique -> gamma () #

use Left to register and Right to unregister Args: Notifier, EventSelector, Unique

type Handlers beta gamma delta = Map delta [(Unique, beta -> gamma beta)] #

This shows the implementation of the event mechnism

registerEvents :: EventSource alpha beta gamma delta => alpha -> [delta] -> (beta -> gamma beta) -> gamma [Unique] #