[frogr] Refactor of code around submenus creation



commit 025159e3d4e87dc026f6c8147031aec363cf16f6
Author: Mario Sanchez Prada <msanchez igalia com>
Date:   Tue Apr 26 07:14:48 2011 -0700

    Refactor of code around submenus creation

 src/frogr-main-view.c |   62 +++++++++++++++++++++++--------------------------
 1 files changed, 29 insertions(+), 33 deletions(-)
---
diff --git a/src/frogr-main-view.c b/src/frogr-main-view.c
index dce7c31..a79dc69 100644
--- a/src/frogr-main-view.c
+++ b/src/frogr-main-view.c
@@ -137,6 +137,8 @@ static void _populate_accounts_submenu (FrogrMainView *self);
 
 static GtkWidget *_pictures_ctxt_menu_create (FrogrMainView *self);
 
+static GtkWidget *_add_submenu (GtkMenuShell *menubar, const gchar *mnemonic,
+                                GtkWidget **out_ref);
 static void _add_menu_item_generic (FrogrMainView *self, GtkMenuShell *menu,
                                     const gchar *mnemonic, GtkWidget **out_ref,
                                     gboolean isToggleable, GSList **group);
@@ -263,7 +265,6 @@ static void
 _populate_menu_bar (FrogrMainView *self)
 {
   FrogrMainViewPrivate *priv = FROGR_MAIN_VIEW_GET_PRIVATE (self);
-  GtkWidget *menubar_item;
   GtkWidget *menu;
   GtkWidget *submenu;
   GtkWidget *menu_item;
@@ -274,11 +275,7 @@ _populate_menu_bar (FrogrMainView *self)
 #endif
 
   /* File menu */
-  menubar_item = gtk_menu_item_new_with_mnemonic (_("_File"));
-  gtk_menu_shell_append (GTK_MENU_SHELL (priv->menu_bar), menubar_item);
-
-  menu = gtk_menu_new ();
-  gtk_menu_item_set_submenu (GTK_MENU_ITEM (menubar_item), menu);
+  menu = _add_submenu (GTK_MENU_SHELL (priv->menu_bar), _("_File"), NULL);
 
   _add_menu_item (self, GTK_MENU_SHELL (menu), _("_Add Pictures"), &(priv->add_menu_item));
   _add_menu_item (self, GTK_MENU_SHELL (menu), _("_Remove Pictures"), &(priv->remove_menu_item));
@@ -316,22 +313,14 @@ _populate_menu_bar (FrogrMainView *self)
 #endif
 
   /* Actions menu */
-  menubar_item = gtk_menu_item_new_with_mnemonic (_("A_ctions"));
-  gtk_menu_shell_append (GTK_MENU_SHELL (priv->menu_bar), menubar_item);
-
-  menu = gtk_menu_new ();
-  gtk_menu_item_set_submenu (GTK_MENU_ITEM (menubar_item), menu);
+  menu = _add_submenu (GTK_MENU_SHELL (priv->menu_bar), _("A_ctions"), NULL);
 
   _add_menu_item (self, GTK_MENU_SHELL (menu), _("Edit _Detailsâ?¦"), &(priv->edit_details_menu_item));
   _add_menu_item (self, GTK_MENU_SHELL (menu), _("Add _Tagsâ?¦"), &(priv->add_tags_menu_item));
   _add_menu_item (self, GTK_MENU_SHELL (menu), _("Add to _Groupâ?¦"), &(priv->add_to_group_menu_item));
 
-  menu_item = gtk_menu_item_new_with_mnemonic (_("Add to _Set"));
-  gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
-  priv->add_to_set_menu_item = menu_item;
-
-  submenu = gtk_menu_new ();
-  gtk_menu_item_set_submenu (GTK_MENU_ITEM (menu_item), submenu);
+  submenu = _add_submenu (GTK_MENU_SHELL (menu), _("Add to _Set"),
+                          &(priv->add_to_set_menu_item));
 
   _add_menu_item (self, GTK_MENU_SHELL (submenu), _("_Create New Setâ?¦"),
                   &(priv->add_to_new_set_menu_item));
@@ -343,18 +332,10 @@ _populate_menu_bar (FrogrMainView *self)
   _add_menu_item (self, GTK_MENU_SHELL (menu), _("_Upload All"), &(priv->upload_menu_item));
 
   /* View menu */
-  menubar_item = gtk_menu_item_new_with_mnemonic (_("_View"));
-  gtk_menu_shell_append (GTK_MENU_SHELL (priv->menu_bar), menubar_item);
+  menu = _add_submenu (GTK_MENU_SHELL (priv->menu_bar), _("_View"), NULL);
 
-  menu = gtk_menu_new ();
-  gtk_menu_item_set_submenu (GTK_MENU_ITEM (menubar_item), menu);
-
-  menu_item = gtk_menu_item_new_with_mnemonic (_("_Sort Pictures"));
-  gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
-  priv->sort_by_menu_item = menu_item;
-
-  submenu = gtk_menu_new ();
-  gtk_menu_item_set_submenu (GTK_MENU_ITEM (menu_item), submenu);
+  submenu = _add_submenu (GTK_MENU_SHELL (menu), _("_Sort Pictures"),
+                          &(priv->sort_by_menu_item));
 
   sorting_group = NULL;
   _add_radio_menu_item (self, GTK_MENU_SHELL (submenu), &sorting_group,
@@ -392,11 +373,7 @@ _populate_menu_bar (FrogrMainView *self)
   /* Help menu */
 
 #ifndef MAC_INTEGRATION
-  menubar_item = gtk_menu_item_new_with_mnemonic (_("_Help"));
-  gtk_menu_shell_append (GTK_MENU_SHELL (priv->menu_bar), menubar_item);
-
-  menu = gtk_menu_new ();
-  gtk_menu_item_set_submenu (GTK_MENU_ITEM (menubar_item), menu);
+  menu = _add_submenu (GTK_MENU_SHELL (priv->menu_bar), _("_Help"), NULL);
 #endif
 
   menu_item = gtk_menu_item_new_with_mnemonic (_("_About frogr..."));
@@ -534,6 +511,25 @@ _pictures_ctxt_menu_create (FrogrMainView *self)
   return ctxt_menu;
 }
 
+static GtkWidget *
+_add_submenu (GtkMenuShell *menu, const gchar *mnemonic,
+              GtkWidget **out_ref)
+{
+  GtkWidget *menu_item = NULL;
+  GtkWidget *submenu = NULL;
+
+  menu_item = gtk_menu_item_new_with_mnemonic (mnemonic);
+  gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
+
+  submenu = gtk_menu_new ();
+  gtk_menu_item_set_submenu (GTK_MENU_ITEM (menu_item), submenu);
+
+  if (out_ref)
+    *out_ref = menu_item;
+
+  return submenu;
+}
+
 static void
 _add_menu_item_generic (FrogrMainView *self, GtkMenuShell *menu,
                         const gchar *mnemonic, GtkWidget **out_ref,



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]