hbro-1.3.0.0: Minimal extensible web-browser

Safe HaskellNone
LanguageHaskell98

Hbro.Event

Contents

Synopsis

Types

data Event e => Signal e

A signal notifies the occurrence of an event.

Instances

type Handler m a = Input a -> m ()

Event handler.

Signal manipulation

newSignal :: (BaseIO m, Event e) => e -> m (Signal e)

Signal exports no constructor, use this function instead.

emit :: (Event e, MonadIO m, MonadLogger m) => Signal e -> Input e -> m ()

Trigger an event.

emit' :: (Event e, MonadIO m) => Signal e -> Input e -> m ()

Like emit, but doesn't log anything.

closeSignal :: (Event e, MonadIO m, MonadLogger m, MonadResource m) => Signal e -> m ()

Close a signal and all its attached hooks.

closeSignal' :: (Event e, MonadIO m, MonadResource m) => Signal e -> m ()

Like close, but doesn't log anything.

listenTo :: (Event a, MonadIO m) => Signal a -> m (Async (Maybe (Input a)))

Asynchronously wait for the next event.

Handlers

addHandler :: (Event a, ControlIO m, MonadResource m) => Signal a -> Handler m a -> m ReleaseKey

Execute a function each time an event occurs.

addRecursiveHandler :: (Event a, ControlIO m, MonadResource m) => Signal a -> b -> (b -> Input a -> m b) -> m ReleaseKey

Generalized version of addHandler where the callback function may recurse.

deleteHandlers :: (Event e, MonadIO m, MonadResource m) => Signal e -> m ()

Stop all handlers associated to the given signal.