diff options
author | Matthias Clasen <maclas@gmx.de> | 2003-09-30 20:55:24 +0000 |
---|---|---|
committer | Matthias Clasen <matthiasc@src.gnome.org> | 2003-09-30 20:55:24 +0000 |
commit | 57f13d815ddbdb0d001fa92c823d44744b3577e4 (patch) | |
tree | 132e7f9da4eaa9e59fb3443c548db4b714192871 /tests | |
parent | 039c6b3bb16343428708ef827a937a7ac64a44a0 (diff) | |
download | gtk+-57f13d815ddbdb0d001fa92c823d44744b3577e4.tar.gz |
Test handling of empty menus.
2003-09-30 Matthias Clasen <maclas@gmx.de>
* tests/merge-*.ui:
* tests/testmerge.c: Test handling of empty menus.
* gtk/gtkuimanager.c (_gtk_menu_is_empty): New function to determine
whether a menu is empty. Used in gtkaction.c.
(update_smart_separators): Also update the visibility of empty menus.
(update_node): When creating a new menu proxy, insert an "Empty" menu
item which only gets shown if the menu is empty.
* gtk/gtkaction.c (gtk_action_class_init): Document the meaning of
"is_important" for menu proxies.
(_gtk_action_sync_menu_visible): New function to sync the visibility
of menu proxies. Used in gtkuimanager.c.
(gtk_action_sync_visible): New function to sync the visibility of
proxies.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/merge-1.ui | 7 | ||||
-rw-r--r-- | tests/merge-2.ui | 8 | ||||
-rw-r--r-- | tests/testmerge.c | 6 |
3 files changed, 20 insertions, 1 deletions
diff --git a/tests/merge-1.ui b/tests/merge-1.ui index a7fb9779d4..b2cb72218c 100644 --- a/tests/merge-1.ui +++ b/tests/merge-1.ui @@ -3,15 +3,20 @@ <menubar> <menu name="FileMenu" action="FileMenuAction"> <menuitem name="Open" action="OpenAction" /> + <menuitem name="Bold" action="BoldAction" /> </menu> <menu name="EditMenu" action="EditMenuAction"> <menuitem name="Cut" action="CutAction" /> + <menu name="EmptyMenu1" action="EmptyMenu1Action"> + </menu> + <menu name="EmptyMenu2" action="EmptyMenu2Action"> + </menu> </menu> <placeholder name="TestPlaceholder" /> </menubar> <toolbar name="toolbar1"> <placeholder name="ToolbarPlaceholder"> - <toolitem name="nb2" action="NewAction" /> + <toolitem name="nb2" action="New2Action" /> <separator name="Sep1" /> </placeholder> <toolitem name="NewButton" action="NewAction" /> diff --git a/tests/merge-2.ui b/tests/merge-2.ui index a073f917dc..05a641fe96 100644 --- a/tests/merge-2.ui +++ b/tests/merge-2.ui @@ -8,6 +8,14 @@ <menuitem name="Quit" action="QuitAction" /> <separator name="Sep3" /> </menu> + <menu name="EditMenu" action="EditMenuAction"> + <menu name="EmptyMenu1" action="EmptyMenu1Action"> + <menuitem name="Cut" action="CutAction" /> + </menu> + <menu name="EmptyMenu2" action="EmptyMenu2Action"> + <menuitem name="Cut" action="CutAction" /> + </menu> + </menu> <menu name="HelpMenu" action="HelpMenuAction"> <menuitem name="About" action="AboutAction" /> </menu> diff --git a/tests/testmerge.c b/tests/testmerge.c index d74ed6fd7f..5c9a59b736 100644 --- a/tests/testmerge.c +++ b/tests/testmerge.c @@ -123,6 +123,8 @@ static GtkActionEntry entries[] = { { "EditMenuAction", NULL, "_Edit" }, { "HelpMenuAction", NULL, "_Help" }, { "JustifyMenuAction", NULL, "_Justify" }, + { "EmptyMenu1Action", NULL, "Empty 1" }, + { "EmptyMenu2Action", NULL, "Empty 2" }, { "Test", NULL, "Test" }, { "QuitAction", GTK_STOCK_QUIT, NULL, "<control>q", "Quit", G_CALLBACK (gtk_main_quit) }, @@ -541,6 +543,10 @@ main (int argc, char **argv) gtk_action_group_add_actions (action_group, entries, n_entries, NULL); + action = gtk_action_group_get_action (action_group, "EmptyMenu1Action"); + g_object_set (G_OBJECT (action), "is_important", TRUE, NULL); + action = gtk_action_group_get_action (action_group, "EmptyMenu2Action"); + g_object_set (G_OBJECT (action), "is_important", FALSE, NULL); gtk_action_group_add_toggle_actions (action_group, toggle_entries, n_toggle_entries, NULL); |