[Gtk-sharp-list] New Glade# hack

Miguel de Icaza miguel@ximian.com
03 Jan 2003 20:26:16 -0500


Hello Rachel! [CCed to Mono Docs List]

> I was reading through monodoc sources and noticed a long method that
> basically was line after line of:
>  myLabel = (Gtk.Label) gxml["my_label"];
> I'm sure we've all had to do similar things in programs that use glade
> (I know I have, at least), so I figured out a slightly cleaner way to do
> this, using attributes.
> 
> Here's how to use it: When declaring a member which needs to be
> initialized from the Glade.XML, you can simply add a
> GladeWidgetAttribute:
> 
> [GladeWidget("my_label")]
> Gtk.Label myLabel;

OH MY GOD.   This is absolutely beautiful!

This is taking advantage of the spirit that got me so interested in .NET
in the first place.  It is a *beautiful* use of attributes and Glade#.

> This doesn't really save much in terms of code (for example, in
> monodoc's case, it would require breaking up member declarations of the
> same type, so the sheer number of lines of code would increase), but it
> seems conceptually cleaner to me, particularly because it lets you avoid
> an explicit cast.

Yes.  But most importantly, you remove more redundant information, and
you avoid explaining why you have to cast the objects.

Mono-doc-hackers; Could we get the tutorials updated? 

Miguel