Generic Graphical User Interfaces
Date: December 15
Speaker: Rinus Plasmeijer
Title: Generic Graphical User Interfaces
Functional languages have a high expressive power, but programming of GUI's
still remained relatively a difficult task.
In this talk a new, very easy to use method to program GUI applications in a
pure functional language such as Clean or Generic Haskell, is shown.
We use a variant of the model-view paradigm.
The basic component in our approach is a very general Graphical Editor Component
(GEC-t) that can contain any value of any data type t and that can freely be
used to display and edit its value.
GEC' s can depend on others, but also on themselves. They can even be mutually
dependent. GEC's can be combined with GEC-combinators (in the spirit of parser
combinators / arrows).
The look of any GEC or part of a GEC can be customized. One can abstract from
any GEC and reuse the component in any other GEC.
In this way we can construct flexible, reusable and customisable editors.
For the implementation of these very general GUI components we have used generic
functions, a relatively new feature of Clean. Generating interactive
applications in this way requires special implementation techniques.