[MonoDevelop] Gtk# GUI Designer?

Kris Luyten kris.luyten@gmail.com
Sun, 11 Jul 2004 11:11:14 +0200

On Sat, 10 Jul 2004 22:52:16 -0500, nospaming <nospaming@cox.net> wrote:
<snip />
> While conceptually this is a very attractive idea, it is not technically
> feasible. You *can* use an XML format as a storage means for form
> designs and then render that to any given language. That is a good idea.
> However, you can't abstract out the widget set. You will need to store
> property names and their assigned values. You *will* find that the same
> property concept in different widget sets is named differently. Imagine
> if for a CheckBox control widget set A has an IsChecked property while
> widget set B has a Checked property. They won't match up. Any attempts
> to abstract out the concepts will quickly become bloated and troublesome
> especially if you want to work with a closed-source third-party component.

The problem of abstracting the widget set without loosing the full
power of the individual widget sets is certainly true, but there are
solutions for this however that try to deal with this. E.g. UIML
splits up a user interface description into several logical parts: the
structure of the interface, the style of the interface, the behavior
and a wigdet-set dependent vocabulary (cfr. the examples on
http://research.edm.luc.ac.be/~kris/projects/uiml.net/examples/). The
vocabulary solves the "Checked" and "IsChecked" problem. The third
party component problem could also be supported in UIML by providing a
vocabulary for this component  (like an XML wrapper for its available

I would not try to make an abstraction in the widget sets, because I
think a designer wants to use the full possibilities of a widget set
instead of a limitation to the capabilities available in all widget
sets that would be supported. My suggestion would be to make a similar
GUI builder as Glade, but makes this multi-widgetset property explicit
in the GUI builder. E.g. when the designer chooses to use a widget set
that is available in one but not in another widget set she/he can
choose to provide an alternative for another widget set for example
(if she/he chooses to do so).

Anyway; there has been a lot of research in making abstractions in
user interface design. This has been successful in the design of
websites (xhtml + css, xforms, device independence wg,...) but it did
not make it into traditional user interface designers (yet).  This can
be an excellent chance to think about these concepts.