Re: visibility problems
- From: Owen Taylor <otaylor redhat com>
- To: Matthias Clasen <maclas gmx de>
- Cc: gtk-devel-list gnome org
- Subject: Re: visibility problems
- Date: Fri, 19 Sep 2003 17:50:53 -0400
On Fri, 2003-09-19 at 17:37, Matthias Clasen wrote:
> Am Fre, 2003-09-19 um 23.17 schrieb Owen Taylor:
> > On Fri, 2003-09-19 at 15:43, Matthias Clasen wrote:
> > > I met a minor annoyance with the action-based menus. The constructed
> > > menus do regularly contain invisible items (unused tearoff menu items,
> > > proxies of actions whose visible property is set to FALSE, or smart
> > > separators which have gone invisible). Therefore code like the following
> > >
> > > gtk_ui_manager_add_ui_from_file (ui, "ui.xml", NULL);
> > > gtk_box_pack_start (GTK_BOX (vbox),
> > > gtk_ui_manager_get_widget (merge, "/menubar"),
> > > FALSE, FALSE, 0);
> > >
> > > gtk_container_add (GTK_CONTAINER (window), vbox);
> > > gtk_widget_show_all (window);
> > >
> > > doesn't quite work as intended: It makes all the invisible menu items
> > > visible.
> > >
> > > I see two options to improve the situation:
> > >
> > > a) Make all constructed menuitems compound children of their menus. This
> > > should make gtk_widget_show_all() keep out of the constructed hierarchy,
> > > but also prevents the use of gtk_container_foreach() on the constructed
> > > menus.
> > >
> > > b) Document this trap and live with it.
> >
> > I don't like leaving this trap. Reusing the compound-child mechanism
> > seems a little peculiar to me. Might it be best to simply add new
> > API:
> >
> > gtk_menu_item_set_no_show_all()
> >
> > and implement a custom show_all for gtkmenushell to handle that?
> >
>
> > (We could make that gtk_widget_set_no_show_all(), but then custom
> > show_all implementations wouldn't get it right, so it wouldn't really
> > work universally.)
>
> We also need it for toolbars though, since constructed toolbars are
> affected as well, thus I would prefer gtk_widget_set_no_show_all().
>
> There are only 6 show_all implementations in gtk+ currently, so we can
> certainly update all those. Or are you concerned about third-party
> widgets ?
It was a concern, though not a big one ... if you have a use case for
GtkToolbar as well, then gtk_widget_set_no_show_all() sounds good.
Regards,
Owen
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]