For the last few months, I’ve been hacking on a project called
“Stetic”, a new GUI designer for GNOME written in C#. (The name comes
from a long-ago flamewar posting in which a KDE fan asserted that
GNOME was ugly, while KDE was “beautifull” and “stetic”. One of the
goals of the project is to make it easier for developers to design
good, “stetic” applications for GNOME.)
Stetic is still in a fairly early stage, but with the addition of
.glade file export last week, it has finally reached the milestone of
being not 100% useless. To celebrate, I’m posting a screencast showing
some of its cool features.
The demo is based on a presentation Nat and Miguel
did for Linux Bangalore 2003, entitled something like “How to Build a Web
Browser in 5 Minutes Using Mono and Glade and
GtkMozEmbed”. My version is pretty much the same, except using
Stetic instead of Glade (but still using libglade/Glade# to load the
UI).

Click the screenshot for a Flash screencast (created with
vnc2swf)
Some miscellaneous notes:
- Yes, I know the main window organization is not very
“beautifull” right now. Everyone seems to agree that the
Glade style of windows everywhere gets annoying fast, so I
want to do something different. We actually tried three
different UI reorganizations in one week at one point. But
the problem is, I’m not using Stetic for “real” design work
yet, so it’s hard to say which of the various layouts would
work best for real work (as opposed to the way you use it
when testing new features and bugfixes). So I’ve just left
it like this for now. It will change later.
- I’ve managed to implement some of the ideas I wanted to
play with, like drag-and-drop widget manipulation, and
vboxes and hboxes that automatically extend themselves to
fit new widgets (though as you can see in a few places in
the demo, the drag targets are sometimes kinda narrow). I
haven’t yet implemented some of the other ideas, like having
the boxes try to figure out the correct padding and spacing
automatically (although they do figure out the correct
expand/fill settings). But you can get some idea of how
Stetic will be different from Glade.
- The reason why the “Stock Item” pop-up menu for the buttons
is (a) much shorter than it should be, and (b) slightly
different every time it pops up, is that the full-length
menu was making vnc2swf (or maybe Xvnc) flip out a bit, so I
hacked it to only show a random subset of entries, to make
the demo run more smoothly.
- Other than that (and the fact that I snipped a bunch of
typing out of the resulting swf), there is nothing rigged
about the demo, and you can try this at home.
(Assuming you have the very very latest Gtk# from Mono
subversion.) But don’t be fooled into thinking that it’s
actually ready for real use; this demo works because I spent
the last two weeks fixing everything that would prevent it
from working. :-)
- On the other hand, Todd Berman
promised he’d start using Stetic full time once I got Glade
export working, so if you’ve ever thought to yourself “Todd
is a very sane person whose opinions I respect and admire”,
then maybe Stetic is right for you!
There’s no mailing list, web page, or bugzilla product for it yet, but
you can grab the code from the Mono anonymous subversion server, and you can email me
or bug me on irc (danw on #gnome-hackers or #mono).