> Note that this is definitely not a recommended practice, GladeXML
> objects should be dispensed with as soon as possible after interface
> construction, its a heap of allocated strings that represents the
> parsed state of the glade file; not only a practical hash table by
> widget name thing.
>
> See the DevHelp sources for a good example of libglade usage.
>
>   - Each interface component has a GObject control object as
>     an api to that component
>   - Each component holds pointers to only the needed widgets
>     from the interface.
>   - Each component parses a glade file (or portion of the glade
>     file) at initialization and passes the control object itself
>     to signal callbacks as data.
>
> Note many progams use this paradigm but not all of them go so
> far as to use a GObject as the control data for a UI component -
> and many apps use a global data structure for the whole UI
> as well.
>
> My main pointer for libglade usage is just free up that bloated
> GladeXML memory hog as soon as possible at initialization time, its
> just not meant to be kept around.

Thanks, Tristan. I didn't realize the xml object consumes a lot of
memory. Devhelp handles the extraction of pointers from the xml in a
very elegant manner. However, confusingly enough, they decide to use
both a global pointer to the control object *and* to pass it to the
signal handlers as a parameter (see dh-preferences.c).
_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Reply via email to