Title and menu relationships created in new ModestShellWindow
authorJose Dapena Paz <jdapena@igalia.com>
Thu, 26 Nov 2009 18:11:24 +0000 (19:11 +0100)
committerJose Dapena Paz <jdapena@igalia.com>
Tue, 1 Dec 2009 09:39:15 +0000 (10:39 +0100)
src/gtk/modest-shell-window.c
src/gtk/modest-shell-window.h
src/gtk/modest-shell.c
src/gtk/modest-shell.h

index 4d053da..3148611 100644 (file)
@@ -69,6 +69,8 @@ struct _ModestShellWindowPrivate {
        ModestDimmingRulesGroup *app_menu_dimming_group;
        GtkAccelGroup *accel_group;
 
+       GtkWidget *menu;
+
 };
 #define MODEST_SHELL_WINDOW_GET_PRIVATE(o)  (G_TYPE_INSTANCE_GET_PRIVATE((o), \
                                                                            MODEST_TYPE_SHELL_WINDOW, \
@@ -142,6 +144,11 @@ modest_shell_window_dispose (GObject *obj)
                priv->app_menu_dimming_group = NULL;
        }
 
+       if (priv->menu) {
+               gtk_widget_destroy (priv->menu);
+               priv->menu = NULL;
+       }
+
        G_OBJECT_CLASS(parent_class)->dispose (obj);
 }
 
@@ -161,7 +168,7 @@ modest_shell_window_instance_init (GTypeInstance *instance, gpointer g_class)
        priv->app_menu_dimming_group = modest_dimming_rules_group_new (MODEST_DIMMING_RULES_MENU, FALSE);
        gtk_window_add_accel_group (GTK_WINDOW (self), priv->accel_group);
 
-       setup_menu (self);
+       priv->menu = gtk_menu_new ();
 
        modest_ui_dimming_manager_insert_rules_group (parent_priv->ui_dimming_manager, 
                                                      priv->app_menu_dimming_group);
@@ -201,8 +208,11 @@ modest_shell_window_add_item_to_menu (ModestWindow *self,
                                                            GTK_WIDGET (button),
                                                            (GCallback) dimming_callback,
                                                            MODEST_WINDOW (self));
-       menu = modest_shell_get_menu (MODEST_SHELL (priv->shell), self);
-       gtk_menu_shell_append (GTK_MENU_SHELL (menu), button);
+       if (priv->menu) {
+               gtk_menu_shell_append (GTK_MENU_SHELL (priv->menu), button);
+       } else {
+               gtk_widget_destroy (button);
+       }
 
        gtk_widget_show (GTK_WIDGET (button));
 }
@@ -237,8 +247,11 @@ modest_shell_window_add_to_menu (ModestWindow *self,
                                            accel_key, accel_mods, 0);
        }
 
-       menu = modest_shell_get_menu (MODEST_SHELL (priv->shell), MODEST_WINDOW (self));
-       gtk_menu_shell_append (GTK_MENU (menu), menu_item);
+       if (priv->menu) {
+               gtk_menu_shell_append (GTK_MENU (priv->menu), menu_item);
+       } else {
+               gtk_widget_destroy (menu_item);
+       }
 }
 
 static void
@@ -292,3 +305,13 @@ modest_shell_window_set_shell (ModestShellWindow *self,
 
        priv->shell = g_object_ref (shell);
 }
+
+GtkWidget *
+modest_shell_window_get_menu (ModestShellWindow *self)
+{
+       ModestShellWindowPrivate *priv = NULL;
+
+       priv = MODEST_SHELL_WINDOW_GET_PRIVATE (self);
+
+       return priv->menu;
+}
index aeb30c4..6899f1a 100644 (file)
@@ -70,6 +70,8 @@ GType modest_shell_window_get_type (void) G_GNUC_CONST;
 void modest_shell_window_set_shell (ModestShellWindow *self,
                                    ModestShell *shell);
 
+GtkWidget *modest_shell_window_get_menu (ModestShellWindow *self);
+
 G_END_DECLS
 
 #endif
index ac400ed..98d9dac 100644 (file)
@@ -167,3 +167,19 @@ modest_shell_count_windows (ModestShell *shell)
 
        return gtk_notebook_get_n_pages (GTK_NOTEBOOK (priv->notebook));
 }
+
+void
+modest_shell_set_title (ModestShell *shell, ModestShellWindow *window, const gchar *title)
+{
+       ModestShellPrivate *priv;
+
+       priv = MODEST_SHELL_GET_PRIVATE (shell);
+
+       gtk_notebook_set_tab_label_text (GTK_NOTEBOOK (priv->notebook), GTK_WIDGET (window), title);
+}
+
+void
+modest_shell_show_progress (ModestShell *shell, ModestShellWindow *window, gboolean show)
+{
+}
+
index 9a09522..ce758ee 100644 (file)
@@ -67,7 +67,6 @@ gboolean modest_shell_delete_window (ModestShell *shell, ModestWindow *window);
 void modest_shell_add_window (ModestShell *shell, ModestWindow *window);
 gint modest_shell_count_windows (ModestShell *shell);
 
-GtkWidget *modest_shell_get_menu (ModestShell *shell, ModestShellWindow *window);
 void modest_shell_set_title (ModestShell *shell, ModestShellWindow *window, const gchar *title);
 void modest_shell_show_progress (ModestShell *shell, ModestShellWindow *window, gboolean show);