summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorMatthias Clasen <maclas@gmx.de>2003-09-30 20:55:24 +0000
committerMatthias Clasen <matthiasc@src.gnome.org>2003-09-30 20:55:24 +0000
commit57f13d815ddbdb0d001fa92c823d44744b3577e4 (patch)
tree132e7f9da4eaa9e59fb3443c548db4b714192871 /tests
parent039c6b3bb16343428708ef827a937a7ac64a44a0 (diff)
downloadgtk+-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.ui7
-rw-r--r--tests/merge-2.ui8
-rw-r--r--tests/testmerge.c6
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);