add option to toggle mainwindow menubar, (hotkey F12)
authorPaul <paul@claws-mail.org>
Fri, 25 Jul 2014 06:10:26 +0000 (07:10 +0100)
committerPaul <paul@claws-mail.org>
Fri, 25 Jul 2014 06:10:26 +0000 (07:10 +0100)
src/mainwindow.c
src/prefs_common.c
src/prefs_common.h

index dffcd3bec4d807cd73a7e86f078e7c13ecb50170..5004852b5ad7ccebe3cccc4820c9adac676fea57 100644 (file)
@@ -201,6 +201,8 @@ static void show_all_header_cb              (GtkAction      *action,
                                  gpointer       data);
 static void toggle_fullscreen_cb       (GtkAction      *action,
                                  gpointer       data);
+static void toggle_menubar_cb  (GtkAction      *action,
+                                 gpointer       data);
 
 static void hide_quotes_cb(GtkAction   *action,
                                  gpointer       data);
@@ -803,6 +805,7 @@ static GtkActionEntry mainwin_entries[] =
 
 static GtkToggleActionEntry mainwin_toggle_entries[] = {
        {"File/OfflineMode",                    NULL, N_("Offline _mode"), "<control>W", NULL, G_CALLBACK(toggle_work_offline_cb) }, /*toggle*/
+       {"View/ShowHide/MenuBar",               NULL, N_("_Menubar"), "F12", NULL, G_CALLBACK(toggle_menubar_cb) }, /* toggle */
        {"View/ShowHide/MessageView",           NULL, N_("_Message view"), "V", NULL, G_CALLBACK(toggle_message_cb) }, /* toggle */
 #ifndef GENERIC_UMPC
        {"View/ShowHide/StatusBar",             NULL, N_("Status _bar"), NULL, NULL, G_CALLBACK(toggle_statusbar_cb) }, /* toggle */
@@ -1543,6 +1546,7 @@ MainWindow *main_window_create()
 
 /* View menu */
        MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/View", "ShowHide", "View/ShowHide", GTK_UI_MANAGER_MENU)
+       MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/View/ShowHide", "MenuBar", "View/ShowHide/MenuBar", GTK_UI_MANAGER_MENUITEM)
        MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/View/ShowHide", "Toolbar", "View/ShowHide/Toolbar", GTK_UI_MANAGER_MENU)
        MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/View/ShowHide/Toolbar", "TextBelowIcon", "View/ShowHide/Toolbar/TextBelowIcon", GTK_UI_MANAGER_MENUITEM)
        MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/View/ShowHide/Toolbar", "TextBesideIcon", "View/ShowHide/Toolbar/TextBesideIcon", GTK_UI_MANAGER_MENUITEM)
@@ -1874,7 +1878,10 @@ MainWindow *main_window_create()
 
 
        menubar = gtk_ui_manager_get_widget(mainwin->ui_manager, "/Menu");
-       gtk_widget_show_all(menubar);
+       if (prefs_common.mainwin_menubar)
+               gtk_widget_show_all(menubar);
+       else
+               gtk_widget_hide(menubar);
        gtk_window_add_accel_group(GTK_WINDOW(window), gtk_ui_manager_get_accel_group(mainwin->ui_manager));
 
        gtk_box_pack_start(GTK_BOX(vbox), menubar, FALSE, TRUE, 0);
@@ -2206,6 +2213,9 @@ MainWindow *main_window_create()
                        "Menu/View/FullScreen",
                        TRUE);
        }
+       if (prefs_common.mainwin_menubar)
+               cm_toggle_menu_set_active_full(mainwin->ui_manager,"Menu/View/ShowHide/MenuBar", TRUE);
+       
        return mainwin;
 }
 
@@ -4366,6 +4376,19 @@ static void toggle_fullscreen_cb(GtkAction *action, gpointer data)
        }
 }
 
+static void toggle_menubar_cb(GtkAction *action, gpointer data)
+{
+       MainWindow *mainwin = (MainWindow *)data;
+       if (mainwin->menu_lock_count) return;
+       if (!gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action))) {
+               gtk_widget_hide(GTK_WIDGET(mainwin->menubar));
+               prefs_common.mainwin_menubar = FALSE;
+       } else {
+               gtk_widget_show(GTK_WIDGET(mainwin->menubar));
+               prefs_common.mainwin_menubar = TRUE;
+       }
+}
+
 static void hide_quotes_cb(GtkAction *action, gpointer data)
 {
        MainWindow *mainwin = (MainWindow *)data;
index a417b0dea93a3b29083bb8e365b09c98976dd7bd..25ac2bea24c4eca0ad5cdd2a183ef9b4dabe1d82 100644 (file)
@@ -638,6 +638,8 @@ static PrefParam param[] = {
         NULL, NULL, NULL},
        {"mainwin_fullscreen", "FALSE", &prefs_common.mainwin_fullscreen, P_BOOL,
         NULL, NULL, NULL},
+       {"mainwin_menubar", "TRUE", &prefs_common.mainwin_menubar, P_BOOL,
+        NULL, NULL, NULL},
 #ifndef GENERIC_UMPC
        {"mainwin_width", "800", &prefs_common.mainwin_width, P_INT,
         NULL, NULL, NULL},
index 37ccfe6140cdd540c92a7272d8a93facf9f4b1d8..465a4907ee2e2399112ca796cda8939ccb218b64 100644 (file)
@@ -289,6 +289,7 @@ struct _PrefsCommon
        gint mainwin_height;
        gint mainwin_maximised;
        gint mainwin_fullscreen;
+       gint mainwin_menubar;
 
        gint msgwin_width;
        gint msgwin_height;