[Glade-users] Function needed in new glade-3.x

Tristan Van Berkom Tristan Van Berkom <tristan.van.berkom@gmail.com>
Mon, 18 Oct 2004 13:37:24 -0400


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.

Hmmm,
    It would really be a plus IMO if people would post these things
to bugzilla, at least the discussion could be archived in a more sensable
manner.

> 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.

The GTK+ tradition AFAIK goes something like this:

/* Call this on each toplevel
 */
gtk_container_forech(GTK_CONTAINER(toplevel), 
                                       recursive_foreach, callback);

recursive_foreach(GtkWidget *widget, gpointer cb)
{
         if (GTK_IS_CONTAINER(widget)) {
                gtk_container_foreach(widget, recursive_foreach, cb);
         }
         cb(widget);
}


Cheers,
                                                  -Tristan