don't add the same menu to different menuitems/ optionmenus.

Tue Feb  3 15:09:55 1998  Tim Janik  <timj@gimp.org>

        * gtk/testgtk.c: don't add the same menu to different menuitems/
          optionmenus.

        * gtk/gtkmenuitem.h:
        * gtk/gtkmenuitem.c: new function gtk_menu_item_remove_submenu ro
          be consistent with optionmenu. use gtk_menu_attach_to_widget/
          gtk_menu_detach for setting/removing the submenu.
          invoke gtk_widget_destroy(submenu) in destructor to be consistent
          with other destructors.

        * gtk/gtkoptionmenu.h:
        * gtk/gtkoptionmenu.c: attach/detach to menu widget via
          gtk_menu_attach_to_widget/gtk_menu_detach.
          invoke gtk_widget_destroy(menu) in destructor to be consistent
          with other destructors.
This commit is contained in:
Tim Janik
1998-02-03 15:14:35 +00:00
committed by Tim Janik
parent b45cd0430c
commit 5842311062
14 changed files with 132 additions and 88 deletions

View File

@ -1111,7 +1111,6 @@ GtkWidget*
create_menu (int depth)
{
GtkWidget *menu;
GtkWidget *submenu;
GtkWidget *menuitem;
GSList *group;
char buf[32];
@ -1121,7 +1120,6 @@ create_menu (int depth)
return NULL;
menu = gtk_menu_new ();
submenu = NULL;
group = NULL;
for (i = 0, j = 1; i < 5; i++, j++)
@ -1134,12 +1132,7 @@ create_menu (int depth)
gtk_menu_append (GTK_MENU (menu), menuitem);
gtk_widget_show (menuitem);
if (depth > 0)
{
if (!submenu)
submenu = create_menu (depth - 1);
gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), submenu);
}
gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), create_menu (depth - 1));
}
return menu;
@ -1190,12 +1183,12 @@ create_menus ()
gtk_widget_show (menuitem);
menuitem = gtk_menu_item_new_with_label ("foo");
gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), menu);
gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), create_menu (3));
gtk_menu_bar_append (GTK_MENU_BAR (menubar), menuitem);
gtk_widget_show (menuitem);
menuitem = gtk_menu_item_new_with_label ("bar");
gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), menu);
gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), create_menu (4));
gtk_menu_item_right_justify (GTK_MENU_ITEM (menuitem));
gtk_menu_bar_append (GTK_MENU_BAR (menubar), menuitem);
gtk_widget_show (menuitem);