[Glade-users] Function needed in new glade-3.x
Neil Zanella
Neil Zanella <nzanella@gmail.com>
Mon, 18 Oct 2004 13:36:06 -0600
Hi,
I am new to libglade, but out of curiosity, what kind of work
do you do with the glade_xml_widget_tree_foreach() call?
That is, what do you use it for?
Regards,
Thanks,
Neil
On Mon, 18 Oct 2004 09:18:11 -0700 (PDT), Dave Andruczyk
<djandruczyk@yahoo.com> wrote:
> I brought this up before but I think it got lost in never-never land when the
> list went haywire.
>
> I think one function needs to be added to libglade to be able to call a
> function for each widget in the loaded XML tree. Now people will say: "WHY,
> you can just lookup the widgets by name and get the pointer to the widget that
> way" The reason is that what if I have 1000 widgets, I don't want those to be
> statically named throughout my code. My current code projects NEED and WILL
> NOT WORK without being able to bind data to the widgets without calls to
> g_object_set/get_data. By having ONE function called
> glade_xml_widget_tree_foreach()(or similar), Users can get have a function
> called for each widget in the tree and do whatever they need to it with just 1
> function call (instead foa call per widget needed by the lookup_name fucntion.
>
> I have this working now, but I had to do a VERY BAD HACK (copied
> glade-private.h from the libglade source into my own code so that I could
> expose the hashtable of widgets inside the GladeXML structure. I DID not want
> to do it this way as if a future version of libglade gets installed and the
> internal structure changes my code would most likely break badly.
>
> So the best solution is to add a new function called something like:
> glade_xml_tree_foreach(GladeXML *xml, (GHFunc *) foreach_func, gpointer
> user_data)
> {
> g_hash_table_foreach(xml->priv->name_hash, foreach_func,user_data);
> }
>
> The foreach func has the same structure as a GHFunc from the glib manual:
> void (*GHFunc) (gpointer key,
> gpointer value,
> gpointer user_data);
> key being the widget name, value being the widget pointer.
>
> This way 1 function can be called that kicks off a call to a foreach function
> passing in the widgets name/pointer and user supplied data.
>
> PLEASE consider adding this to libglade-2.4 or 3.0, as it works very well.
>
> =====
> Dave J. Andruczyk
>
>
> _______________________________
> Do you Yahoo!?
> Declare Yourself - Register online to vote today!
> http://vote.yahoo.com
> _______________________________________________
> Glade-users maillist - Glade-users@lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/glade-users
>