dawn of the builder

Its been a long week, I went ahead and rewrote the parser code in Glade from the ground up, and then moved on to support dual formats, Im a little ashamed to say that this huge hacking experience was brought to you by coffee and cigarettes, for lack of *cough* other illicit substances that may have done better for my health, all grievances aside, it really is a nice piece of work I’d like to share with you all (its 7:15am Sao Paulo time and I’m blogging while cooling down and getting ready to sleep).

So lets see, what do we have ?

Well the new parser supports what Ive been calling class level definitions of xml layouts, in other words your widget library plugin is allowed to define, read and write properties and children in customizable ways, this was ofcourse needed to support the different formats that some widget classes are loaded from using GtkBuilder. We’ve also added an option, available in Glade’s edit menu, to decide which format your project will be saved in, Libglade or GtkBuilder.

Currently all widgets and properties formerly supported by Glade can now be saved and loaded in both formats. We dont yet have any support for the fancy GObjects now supported by GtkBuilder but VERY thankfully Johan has already provided a first try patch to get UIManager, our most awkward exception to load, this also must have been alot of work (and we may still need a few minor tweaks in the core to get it running). Other exciting things such as liststores and sizegroups should follow suit without too much of a headache. Another caveat is that Glade still has no idea what widgets are deprecated in the new builder format, which should be easy enough to remedy (glade will currently just save any widgets in the new format regardless).

This work is now available in trunk, and I do sincerely hope you all enjoy ;-)

Some popular features …

… that I finally managed to add to glade trunk today

So I finally applied a refit version of Yevgen Muntyan’s patch

One common source of frustration about glade 3 has been that, sure you can add your own widgets to the runtime but, you gotta write that catalog, install a support module, or struggle with your setup so that we can load the type from the widget library, but you dont want to write a widget library just for that one widget you got in your app so, here’s the solution:

you make a catalog that looks like this one note the “parent” element from the “glade-widget-class” definition, it choses which widget class your “fake” widget class will derive from.

then, since we now have user defined search paths for catalogs and modules; you put it wherever you want (it has to keep the .xml extention though), lets say ~/mycatalogs

then you fire up glade like so:

GLADE_CATALOG_PATH=~/mycatalogs glade-3

And voila ! you got your widget in the glade runtime.

Happy Glading !

Its release day !

Whew, its been a rocky road trying to wrap things up in
time for gnome-2-18, but with one
string freeze break
and one remaining
crasher,
Glade
is pretty much ready for the show

Incase you wonder what we’ve been doing in 3.1 ;-) well aside from
ironing out bugs in the framework as usual, we’ve been working on
the first version of the embedded workspace/one-window UI, which is
crash free except for the one I mentioned above, lets hope to see it
dissapear by 2.18.1… Juan has also been working on this bindings
framework – which is really a work in progress but proves that we
can easily load objects written in python and edit/serialize their
properties, C++ otoh proves to be a challenge…

Interestingly, I’m going to miss out on all the initial feedback
(complaints or otherwise ;-)) from the release… because I’ll be
chillaxing with the palm trees in florida for 5 days ! where
I’ll be attending one of the worlds biggest
breakdance competitions; so have fun untill then, I’ll be back
on the 19th ;-D