"Eray Ozkural (exa)" <erayo@cs.bilkent.edu.tr> wrote,
I've just realized that a feature of QT 3.0[!] library, which is a well versed GUI library used in KDE, can make writing a GUI library quite easy.
There is a class called QWidgetFactory[*] in QT 3.0 that enables application programmers to dynamically generate a GUI from a .ui file which is an XML file that describes it.
If a functional combinator library would be able to generate the XML file in question then a GUI could be created quite easily.
You also need to access objects in the created widget and implement slots for it, which I think should be possible using the C bindings. There are new C bindings for KDE and there ought to be some for QT as well.
The time consuming part in creating such a system are the C bindings, not the XML stuff. In fact, similar functionality is available for GTK+ already for a long while. The cool point about it is that the graphical interface builder Glade http://glade.gnome.org/ can generate these XML files, which you just load into your application using a library called libglade (that corresponds to the QWidgetFactory that you mention above). I guess, KDE's interface builder can do the same. There is a binding to libglade for Haskell available, although it is not part of the main Gtk+HS distribution yet, but I am happy to email it on request. Cheers, Manuel