[Glade-users] globals vs locals... again
James K. Wiggs
wiggs@novum-millennium.org
Thu, 5 Oct 2000 21:02:00 -0700 (PDT)
On Fri, 6 Oct 2000, James Cameron wrote:
> "James K. Wiggs" wrote:
> > Then lookup_widget() first does a loop looking for the parentless
> > widget, i.e. the top-level window,
>
> Damon, perhaps it should use gtk_widget_get_toplevel() instead. ;-)
Does gtk_widget_get_toplevel() handle menus properly? I noticed that
the for(;;) loop specifically checks to see if the widget is a menu, and
if so, calls gtk_menu_get_attach_widget() to get the parent rather than
just using widget->parent. Perhaps this is why Damon doesn't use the
get_toplevel routine?
> > Then if I did a modified version of lookup_widget() which only looked
> > at the child objects of the widget, not doing that loop up to the
> > top-level, I could pass it the address of the frame containing the
> > table and I should be able to get the right widgets in the right order.
> > Does this sound reasonable?
>
> Yes, and quite simple.
>
> Although if it is that important, I'd be saving the widget pointers in a
> structure or array at the outset rather than doing a name lookup each
> time.
Possibly, but since the set of pointers that would need to be kept
would be completely unpredictable, it seems simpler and more foolproof to
just use a name lookup. The callback is not something that will be done
frequently, so it doesn't have to be blindingly fast.
> > Yes, it sounds painful, indeed. Still, it might be nice to set up a
> > version of lookup_widget() which only loops through the children of the
> > widget passed to it, looking for one with the appropriate name.
>
> Easily done. I needed a version of lookup_widget() that does not
> complain if it fails to find the widget. I just copied it and called it
> widget().
Well, I'll see if I can't put something together and test it out. If
anyone is interested, I'd be happy to post the code when I'm done with it.
I'll call it something like lookup_subwidget().
GTK_IS_CONTAINER() will return true for any subclass of GtkContainer,
correct?
> --
> James Cameron (cameron@stl.dec.com)
best,
Jim Wiggs
wiggs@wiggs.net