[gnome-commander] Show/hide mainmenu



commit 7ac9cfcfb949a16e7ed154e7c3b8d55a5b1d5356
Author: Puux <puuxmine gmail com>
Date:   Wed Jul 6 18:54:49 2016 +0300

    Show/hide mainmenu

 src/gnome-cmd-data.cc         |    3 +++
 src/gnome-cmd-data.h          |    1 +
 src/gnome-cmd-main-win.cc     |   16 +++++++++++++++-
 src/gnome-cmd-main-win.h      |    1 +
 src/gnome-cmd-user-actions.cc |    9 +++++++++
 src/gnome-cmd-user-actions.h  |    1 +
 6 files changed, 30 insertions(+), 1 deletions(-)
---
diff --git a/src/gnome-cmd-data.cc b/src/gnome-cmd-data.cc
index 12b4fc7..8e3c762 100644
--- a/src/gnome-cmd-data.cc
+++ b/src/gnome-cmd-data.cc
@@ -1289,6 +1289,7 @@ GnomeCmdData::GnomeCmdData(): search_defaults(selections)
     concombo_visibility = TRUE;
     cmdline_visibility = TRUE;
     buttonbar_visibility = TRUE;
+    mainmenu_visibility = TRUE;
 
     dev_icon_size = 16;
     memset(fs_col_width, 0, sizeof(fs_col_width));
@@ -1533,6 +1534,7 @@ void GnomeCmdData::load()
     concombo_visibility = gnome_cmd_data_get_bool ("/options/con_list_visibility", TRUE);
     cmdline_visibility = gnome_cmd_data_get_bool ("/options/cmdline_visibility", TRUE);
     buttonbar_visibility = gnome_cmd_data_get_bool ("/programs/buttonbar_visibility", TRUE);
+       mainmenu_visibility = gnome_cmd_data_get_bool ("/programs/mainmenu_visibility", TRUE);
 
     if (gui_update_rate < MIN_GUI_UPDATE_RATE)
         gui_update_rate = MIN_GUI_UPDATE_RATE;
@@ -1971,6 +1973,7 @@ void GnomeCmdData::save()
     gnome_cmd_data_set_bool   ("/options/con_list_visibility", concombo_visibility);
     gnome_cmd_data_set_bool   ("/options/cmdline_visibility", cmdline_visibility);
     gnome_cmd_data_set_bool   ("/programs/buttonbar_visibility", buttonbar_visibility);
+    gnome_cmd_data_set_bool   ("/programs/mainmenu_visibility", mainmenu_visibility);
 
     if (priv->symlink_prefix && *priv->symlink_prefix && strcmp(priv->symlink_prefix, _("link to %s"))!=0)
         gnome_cmd_data_set_string ("/options/symlink_prefix", priv->symlink_prefix);
diff --git a/src/gnome-cmd-data.h b/src/gnome-cmd-data.h
index 25f9aac..5c4e5e5 100644
--- a/src/gnome-cmd-data.h
+++ b/src/gnome-cmd-data.h
@@ -447,6 +447,7 @@ struct GnomeCmdData
     gboolean                     concombo_visibility;
     gboolean                     cmdline_visibility;
     gboolean                     buttonbar_visibility;
+    gboolean                     mainmenu_visibility;
 
     guint                        dev_icon_size;
     guint                        fs_col_width[GnomeCmdFileList::NUM_COLUMNS];
diff --git a/src/gnome-cmd-main-win.cc b/src/gnome-cmd-main-win.cc
index 20a5049..33c60e2 100644
--- a/src/gnome-cmd-main-win.cc
+++ b/src/gnome-cmd-main-win.cc
@@ -771,7 +771,8 @@ static void init (GnomeCmdMainWin *mw)
     mw->priv->menubar = gnome_cmd_main_menu_new ();
     g_object_ref (mw->priv->menubar);
     g_object_set_data_full (*mw, "vbox", mw->priv->menubar, g_object_unref);
-    gtk_widget_show (mw->priv->menubar);
+    if(gnome_cmd_data.mainmenu_visibility)
+               gtk_widget_show (mw->priv->menubar);
     gtk_box_pack_start (GTK_BOX (mw->priv->vbox), mw->priv->menubar, FALSE, TRUE, 0);
     gtk_box_pack_start (GTK_BOX (mw->priv->vbox), create_separator (FALSE), FALSE, TRUE, 0);
 
@@ -1289,6 +1290,19 @@ void GnomeCmdMainWin::update_list_orientation()
 }
 
 
+void GnomeCmdMainWin::update_mainmenu_visibility()
+{
+    if (gnome_cmd_data.mainmenu_visibility)
+    {
+               gtk_widget_show (priv->menubar);
+    }
+    else
+    {
+               gtk_widget_hide (priv->menubar);
+    }
+}
+
+
 void GnomeCmdMainWin::add_plugin_menu(PluginData *data)
 {
     gnome_cmd_main_menu_add_plugin_menu (GNOME_CMD_MAIN_MENU (priv->menubar), data);
diff --git a/src/gnome-cmd-main-win.h b/src/gnome-cmd-main-win.h
index 6dc2594..ec507c0 100644
--- a/src/gnome-cmd-main-win.h
+++ b/src/gnome-cmd-main-win.h
@@ -95,6 +95,7 @@ struct GnomeCmdMainWin
     void update_cmdline_visibility();
     void update_buttonbar_visibility();
     void update_list_orientation();
+       void update_mainmenu_visibility();
 
     void add_plugin_menu(PluginData *data);
 
diff --git a/src/gnome-cmd-user-actions.cc b/src/gnome-cmd-user-actions.cc
index 55406cf..851faa9 100644
--- a/src/gnome-cmd-user-actions.cc
+++ b/src/gnome-cmd-user-actions.cc
@@ -229,6 +229,8 @@ static UserActionData user_actions_data[] = {
                                              {view_terminal, "view.terminal", N_("Show terminal")},
 #endif
                                              {view_up, "view.up", N_("Up one directory")},
+                                             
+                                                                                        {view_main_menu, 
"view.main.menu", N_("Display main menu")},
                                             };
 
 
@@ -1572,6 +1574,13 @@ void view_up (GtkMenuItem *menuitem, gpointer not_used)
         fs->goto_directory("..");
 }
 
+void view_main_menu (GtkMenuItem *menuitem, gpointer not_used)
+{
+    if (!GTK_WIDGET_REALIZED (main_win)) return;
+
+    gnome_cmd_data.mainmenu_visibility = !gnome_cmd_data.mainmenu_visibility;
+    main_win->update_mainmenu_visibility();
+}
 
 void view_first (GtkMenuItem *menuitem, gpointer not_used)
 {
diff --git a/src/gnome-cmd-user-actions.h b/src/gnome-cmd-user-actions.h
index 4ff5383..b6090ad 100644
--- a/src/gnome-cmd-user-actions.h
+++ b/src/gnome-cmd-user-actions.h
@@ -311,6 +311,7 @@ GNOME_CMD_USER_ACTION(view_next_tab);
 GNOME_CMD_USER_ACTION(view_in_new_tab);
 GNOME_CMD_USER_ACTION(view_in_inactive_tab);
 GNOME_CMD_USER_ACTION(view_toggle_tab_lock);
+GNOME_CMD_USER_ACTION(view_main_menu);
 
 /************** Bookmarks Menu **************/
 GNOME_CMD_USER_ACTION(bookmarks_add_current);


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