Archive for March, 2005
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). [EDIT: not really. The screencast file was lost a long time ago.]
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).