ltk- Leksah tool kit

Safe HaskellSafe-Infered




Module for the basiscs of composing GUIs from editors



type Getter alpha beta = alpha -> betaSource

A type for getting a field of a record

type Setter alpha beta = beta -> alpha -> alphaSource

A type for setting the field of a record

type Injector beta = beta -> IO ()Source

A type for injecting a value into an editor

type Extractor beta = IO (Maybe beta)Source

A type for extracting a value from an editor

type Applicator beta gamma = beta -> gamma ()Source

A type for the application of a value to be reflected in the GUI

type Editor alpha = Parameters -> Notifier -> IO (Widget, Injector alpha, Extractor alpha)Source

A type to describe an editor. alpha is the type of the individual field of the record

getStandardRegFunction :: GUIEventSelector -> GtkRegFuncSource

A convinence method for not repeating this over and over again

data GUIEvent Source

A type for an event in the GUI




selector :: GUIEventSelector
gtkEvent :: Event
eventText :: String
gtkReturn :: Bool

True means that the event has been completely handled, gtk shoudn't do any further action about it (Often not a good idea

data GUIEventSelector Source



generic, the widget looses the focus


generic, the widget gets the focus


generic, a mouse key has been pressed and released, while the widget has the focus


generic, a keyboard key has been pressed and released, while the widget has the focus


button specific, the button has been pressed


generic, no gui event, the contents of the widget may have changed


validation of a contents has failed

type GtkRegFunc = forall o. GObjectClass o => o -> GtkHandler -> IO ConnectionSource

A type for a function to register a gtk event |

newtype Notifier Source

The event source in the gtk editor context If the second argument is Left Handler the handler gets registered If the second argument is Right Unique the handler will be removed The returned unique value must be used for unregistering an event

data Connection Source

Signal handlers for the different pane types


forall alpha . GObjectClass alpha => ConnectC (ConnectId alpha) 


activateEvent :: GObjectClass o => o -> Notifier -> Maybe (o -> GtkHandler -> IO Connection) -> GUIEventSelector -> IO ()Source

Activate the event after the event has been declared and the widget has been constructed

propagateEvent :: Notifier -> [Notifier] -> GUIEventSelector -> IO ()Source

Propagate the event with the selector from notifier to eventSource