Go to the first, previous, next, last section, table of contents.

Haggis overview

This is a short an as-yet uncomplete overview of the different parts of Haggis.

* Core framework for building user interface components.
The main part of Haggis is a simple core for describing and combining UI components together. The core consist of a basic abstraction for displaying graphical output, the Glyph, a common representation for UI components, DisplayHandles, plus a set of basic combinators that builds new components by encapsulating existing ones. Using this simple core, interactive component can be created by composing existing ones together.
* User interface abstractions.
A relatively large set of common user interface abstractions are provided with Haggis, i.e., components such as buttons, sliders, text fields etc. These components have been constructed using the Haggis core.
* A simple structured graphics model.
Graphical output is described using the type Picture, a data type implementing a simple, two dimensional structured graphics model. Picture values can be transformed and combined together to form `larger' Pictures. The Picture is converted into actual drawing commands by the Glyph abstraction.
* A set of high level window system abstractions.
To isolate the programmer from the underlying window system, X11, its services have been packaged up in a manner that tries to minimise any bias towards X11. The benefit of abstracting away from the peculiarities of the specifics of X11, is that the programmer does not have to be concerned with X11 concepts at all(?), and an eventual port of Haggis to a non-X11 window system becomes easier.
* A complete Haskell binding to Xlib.
To interface Haggis with the X Window System, a nearly complete binding to Xlib, the C language interface to X11, had to be constructed.

Go to the first, previous, next, last section, table of contents.