Option to select menu style
authorColin Clark <colin.clark@cclark.uk>
Wed, 24 Jan 2024 14:56:10 +0000 (14:56 +0000)
committerColin Clark <colin.clark@cclark.uk>
Wed, 24 Jan 2024 14:56:10 +0000 (14:56 +0000)
User option to select a "hamburger" style menu icon or the classic text
style.

The option is in Edit/Preferences/General.

doc/docbook/GuideOptionsGeneral.xml
src/layout-util.cc
src/layout.cc
src/options.cc
src/options.h
src/preferences.cc
src/rcfile.cc
src/ui/menu-classic.ui [new file with mode: 0644]
src/ui/menu-hamburger.ui [moved from src/ui/menu.ui with 100% similarity]
src/ui/ui.gresource.xml

index d401cc7..1fcc82f 100644 (file)
       </varlistentry>
     </variablelist>
   </section>
+  <section id="MenuStyle">
+    <title>Menu style</title>
+    <para>Use a ☰ "hamburger" style menu button instead of the standard menu across the top of the frame.</para>
+    <note>
+      <para>Geeqie must be restarted for changes to take effect.</para>
+    </note>
+  </section>
   <section id="ExpandToolbar">
-    <title>Expand toolbar</title>
-    <para>Expand the toolbar to the full width of the window.</para>
+    <title>Expand menu/toolbar</title>
+    <para>Expand the menu/toolbar to the full width of the window.</para>
     <note>
       <para>Geeqie must be restarted for changes to take effect.</para>
     </note>
index 38a9a03..6b018fe 100644 (file)
@@ -2036,7 +2036,7 @@ static void layout_menu_collection_recent_update(LayoutWindow *lw)
                menu_item_add(menu, _("Empty"), nullptr, nullptr);
                }
 
-       recent = gtk_ui_manager_get_widget(lw->ui_manager, "/MainMenu/OpenMenu/FileMenu/OpenRecent");
+       recent = gtk_ui_manager_get_widget(lw->ui_manager, options->hamburger_menu ? "/MainMenu/OpenMenu/FileMenu/OpenRecent" : "/MainMenu/FileMenu/OpenRecent");
        gtk_menu_item_set_submenu(GTK_MENU_ITEM(recent), menu);
        gtk_widget_set_sensitive(recent, (n != 0));
 }
@@ -2092,7 +2092,7 @@ static void layout_menu_collection_open_update(LayoutWindow *lw)
                menu_item_add(menu, _("Empty"), nullptr, nullptr);
                }
 
-       recent = gtk_ui_manager_get_widget(lw->ui_manager, "/MainMenu/OpenMenu/FileMenu/OpenCollection");
+       recent = gtk_ui_manager_get_widget(lw->ui_manager, options->hamburger_menu ? "/MainMenu/OpenMenu/FileMenu/OpenCollection" : "/MainMenu/FileMenu/OpenCollection");
        gtk_menu_item_set_submenu(GTK_MENU_ITEM(recent), menu);
        gtk_widget_set_sensitive(recent, (n != 0));
 }
@@ -2251,7 +2251,7 @@ static void layout_menu_new_window_update(LayoutWindow *lw)
 
        list = layout_window_menu_list(list);
 
-       menu = gtk_ui_manager_get_widget(lw->ui_manager, "/MainMenu/OpenMenu/WindowsMenu/NewWindow");
+       menu = gtk_ui_manager_get_widget(lw->ui_manager, options->hamburger_menu ? "/MainMenu/OpenMenu/WindowsMenu/NewWindow" : "/MainMenu/WindowsMenu/NewWindow");
        sub_menu = gtk_menu_item_get_submenu(GTK_MENU_ITEM(menu));
 
        children = gtk_container_get_children(GTK_CONTAINER(sub_menu));
@@ -2396,7 +2396,8 @@ static void layout_menu_windows_menu_cb(GtkWidget *, gpointer data)
        GList *children, *iter;
        gint i;
 
-       menu = gtk_ui_manager_get_widget(lw->ui_manager, "/MainMenu/OpenMenu/WindowsMenu/");
+       menu = gtk_ui_manager_get_widget(lw->ui_manager, options->hamburger_menu ? "/MainMenu/OpenMenu/WindowsMenu/" : "/MainMenu/WindowsMenu/");
+
        sub_menu = gtk_menu_item_get_submenu(GTK_MENU_ITEM(menu));
 
        /* disable Delete for temporary windows */
@@ -2427,7 +2428,7 @@ static void layout_menu_view_menu_cb(GtkWidget *, gpointer data)
        gint i;
        FileData *fd;
 
-       menu = gtk_ui_manager_get_widget(lw->ui_manager, "/MainMenu/OpenMenu/ViewMenu/");
+       menu = gtk_ui_manager_get_widget(lw->ui_manager, options->hamburger_menu ? "/MainMenu/OpenMenu/ViewMenu/" : "/MainMenu/ViewMenu/");
        sub_menu = gtk_menu_item_get_submenu(GTK_MENU_ITEM(menu));
 
        fd = layout_image_get_fd(lw);
@@ -2881,9 +2882,13 @@ static void layout_actions_setup_marks(LayoutWindow *lw)
        GError *error;
        GString *desc = g_string_new(
                                "<ui>"
-                               "  <menubar name='MainMenu'>"
-                               "    <menu action='OpenMenu'>"
-                               "      <menu action='SelectMenu'>");
+                               "  <menubar name='MainMenu'>");
+
+       if (options->hamburger_menu)
+               {
+               g_string_append(desc, "    <menu action='OpenMenu'>");
+               }
+       g_string_append(desc, "      <menu action='SelectMenu'>");
 
        for (mark = 1; mark <= FILEDATA_MARKS_SIZE; mark++)
                {
@@ -2918,9 +2923,13 @@ static void layout_actions_setup_marks(LayoutWindow *lw)
                }
 
        g_string_append(desc,
-                               "      </menu>"
-                               "    </menu>"
-                               "  </menubar>");
+                               "      </menu>");
+       if (options->hamburger_menu)
+               {
+               g_string_append(desc, "    </menu>");
+               }
+       g_string_append(desc, "  </menubar>");
+
        for (mark = 1; mark <= FILEDATA_MARKS_SIZE; mark++)
                {
                gint i = (mark < 10 ? mark : 0);
@@ -3048,8 +3057,12 @@ static void layout_actions_setup_editors(LayoutWindow *lw)
        /* lw->action_group_editors contains translated entries, no translate func is required */
        desc = g_string_new(
                                "<ui>"
-                               "  <menubar name='MainMenu'>"
-                               "    <menu action='OpenMenu'>");
+                               "  <menubar name='MainMenu'>");
+
+       if (options->hamburger_menu)
+               {
+               g_string_append(desc, "    <menu action='OpenMenu'>");
+               }
 
        editors_list = editor_list_get();
 
@@ -3083,8 +3096,12 @@ static void layout_actions_setup_editors(LayoutWindow *lw)
        layout_actions_editor_add(desc, nullptr, old_path);
        g_list_free_full(old_path, g_free);
 
-       g_string_append(desc,   "</menu>"
-                               "  </menubar>"
+       if (options->hamburger_menu)
+               {
+               g_string_append(desc, "</menu>");
+               }
+
+       g_string_append(desc,"  </menubar>"
                                "</ui>" );
 
        error = nullptr;
@@ -3144,7 +3161,8 @@ void layout_actions_setup(LayoutWindow *lw)
 
        DEBUG_1("%s layout_actions_setup: add menu", get_exec_time());
        error = nullptr;
-       if (!gtk_ui_manager_add_ui_from_resource(lw->ui_manager, GQ_RESOURCE_PATH_UI "/menu.ui", &error))
+
+       if (!gtk_ui_manager_add_ui_from_resource(lw->ui_manager, options->hamburger_menu ? GQ_RESOURCE_PATH_UI "/menu-hamburger.ui" : GQ_RESOURCE_PATH_UI "/menu-classic.ui" , &error))
                {
                g_message("building menus failed: %s", error->message);
                g_error_free(error);
@@ -3273,6 +3291,7 @@ GtkWidget *layout_actions_toolbar(LayoutWindow *lw, ToolbarType type)
 
 GtkWidget *layout_actions_menu_tool_bar(LayoutWindow *lw)
 {
+       GtkWidget *menu_bar;
        GtkWidget *toolbar;
 
        if (lw->menu_tool_bar) return lw->menu_tool_bar;
@@ -3281,6 +3300,13 @@ GtkWidget *layout_actions_menu_tool_bar(LayoutWindow *lw)
        DEBUG_NAME(toolbar);
        lw->menu_tool_bar = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
 
+       if (!options->hamburger_menu)
+               {
+               menu_bar = layout_actions_menu_bar(lw);
+               DEBUG_NAME(menu_bar);
+               gq_gtk_box_pack_start(GTK_BOX(lw->menu_tool_bar), menu_bar, FALSE, FALSE, 0);
+               }
+
        gq_gtk_box_pack_start(GTK_BOX(lw->menu_tool_bar), toolbar, FALSE, FALSE, 0);
 
        g_object_ref(lw->menu_tool_bar);
index 2245f94..8108aab 100644 (file)
@@ -324,6 +324,7 @@ static GtkWidget *layout_tool_setup(LayoutWindow *lw)
        GtkWidget *box;
        GtkWidget *box_folders;
        GtkWidget *box_menu_tabcomp;
+       GtkWidget *menu_bar;
        GtkWidget *menu_tool_bar;
        GtkWidget *open_menu;
        GtkWidget *scd;
@@ -334,6 +335,15 @@ static GtkWidget *layout_tool_setup(LayoutWindow *lw)
 
        if (!options->expand_menu_toolbar)
                {
+               if (!options->hamburger_menu)
+                       {
+                       menu_bar = layout_actions_menu_bar(lw);
+
+                       gtk_widget_show(menu_bar);
+
+                       gq_gtk_box_pack_start(GTK_BOX(box), menu_bar, FALSE, FALSE, 0);
+                       }
+
                toolbar = layout_actions_toolbar(lw, TOOLBAR_MAIN);
                gq_gtk_box_pack_start(GTK_BOX(box), toolbar, FALSE, FALSE, 0);
                }
@@ -345,19 +355,27 @@ static GtkWidget *layout_tool_setup(LayoutWindow *lw)
                gq_gtk_box_pack_start(GTK_BOX(lw->main_box), lw->menu_tool_bar, FALSE, FALSE, 0);
                }
 
-       box_menu_tabcomp = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
-       gtk_widget_show(box_menu_tabcomp);
-
-       open_menu = layout_actions_menu_bar(lw);
-       gtk_widget_set_tooltip_text(open_menu, "Open application menu");
-
        tabcomp = tab_completion_new_with_history(&lw->path_entry, nullptr, "path_list", -1, layout_path_entry_cb, lw);
        DEBUG_NAME(tabcomp);
        tab_completion_add_tab_func(lw->path_entry, layout_path_entry_tab_cb, lw);
        tab_completion_add_append_func(lw->path_entry, layout_path_entry_tab_append_cb, lw);
-       gq_gtk_box_pack_start(GTK_BOX(box_menu_tabcomp), open_menu, FALSE, FALSE, 0);
-       gq_gtk_box_pack_start(GTK_BOX(box_menu_tabcomp), tabcomp, TRUE, TRUE, 0);
-       gq_gtk_box_pack_start(GTK_BOX(box), box_menu_tabcomp, FALSE, FALSE, 0);
+
+       if (options->hamburger_menu)
+               {
+               box_menu_tabcomp = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
+               gtk_widget_show(box_menu_tabcomp);
+
+               open_menu = layout_actions_menu_bar(lw);
+               gtk_widget_set_tooltip_text(open_menu, "Open application menu");
+               gq_gtk_box_pack_start(GTK_BOX(box_menu_tabcomp), open_menu, FALSE, FALSE, 0);
+               gq_gtk_box_pack_start(GTK_BOX(box_menu_tabcomp), tabcomp, TRUE, TRUE, 0);
+               gq_gtk_box_pack_start(GTK_BOX(box), box_menu_tabcomp, FALSE, FALSE, 0);
+               }
+       else
+               {
+               gq_gtk_box_pack_start(GTK_BOX(box), tabcomp, FALSE, FALSE, 0);
+               }
+
        gtk_widget_show(tabcomp);
        gtk_widget_set_has_tooltip(GTK_WIDGET(tabcomp), TRUE);
        g_signal_connect(G_OBJECT(tabcomp), "query_tooltip", G_CALLBACK(path_entry_tooltip_cb), lw);
index e16a553..eea71b0 100644 (file)
@@ -170,6 +170,7 @@ ConfOptions *init_options(ConfOptions *options)
        options->show_star_rating = FALSE;
        options->show_predefined_keyword_tree = TRUE;
        options->expand_menu_toolbar = FALSE;
+       options->hamburger_menu = FALSE;
 
        options->slideshow.delay = 50;
        options->slideshow.random = FALSE;
index b38feac..2b33320 100644 (file)
@@ -55,6 +55,7 @@ struct ConfOptions
        gboolean show_predefined_keyword_tree;
        gboolean overunderexposed;
        gboolean expand_menu_toolbar;
+       gboolean hamburger_menu;
 
        /* various */
        gboolean tree_descend_subdirs;
index 0ef13c9..8dd98fe 100644 (file)
@@ -444,6 +444,7 @@ static void config_window_apply()
 
        options->show_predefined_keyword_tree = c_options->show_predefined_keyword_tree;
        options->expand_menu_toolbar = c_options->expand_menu_toolbar;
+       options->hamburger_menu = c_options->hamburger_menu;
 
        options->selectable_bars.menu_bar = c_options->selectable_bars.menu_bar;
        options->selectable_bars.tool_bar = c_options->selectable_bars.tool_bar;
@@ -2141,13 +2142,21 @@ static void config_tab_general(GtkWidget *notebook)
                              options->update_on_time_change, &c_options->update_on_time_change);
 
 
+       pref_spacer(group, PREF_PAD_GROUP);
+
+       group = pref_group_new(vbox, FALSE, _("Menu style"), GTK_ORIENTATION_VERTICAL);
+
+       pref_checkbox_new_int(group, _("☰ style menu button (NOTE! Geeqie must be restarted for change to take effect)"),
+                               options->hamburger_menu, &c_options->hamburger_menu);
+       gtk_widget_set_tooltip_text(group, _("Use a ☰ style menu button instead of the classic style across the top of the frame"));
+
        pref_spacer(group, PREF_PAD_GROUP);
 
        group = pref_group_new(vbox, FALSE, _("Expand toolbar"), GTK_ORIENTATION_VERTICAL);
 
-       pref_checkbox_new_int(group, _("Expand toolbar (NOTE! Geeqie must be restarted for change to take effect)"),
+       pref_checkbox_new_int(group, _("Expand menu/toolbar (NOTE! Geeqie must be restarted for change to take effect)"),
                                options->expand_menu_toolbar, &c_options->expand_menu_toolbar);
-       gtk_widget_set_tooltip_text(group, _("Expand the toolbar to the full width of the window"));
+       gtk_widget_set_tooltip_text(group, _("Expand the menu/toolbar to the full width of the window"));
 
        pref_spacer(group, PREF_PAD_GROUP);
 
index 2073a0e..05efe86 100644 (file)
@@ -367,6 +367,7 @@ static void write_global_attributes(GString *outstr, gint indent)
        WRITE_NL(); WRITE_BOOL(*options, save_dialog_window_positions);
        WRITE_NL(); WRITE_BOOL(*options, show_window_ids);
        WRITE_NL(); WRITE_BOOL(*options, expand_menu_toolbar);
+       WRITE_NL(); WRITE_BOOL(*options, hamburger_menu);
 
        WRITE_NL(); WRITE_UINT(*options, log_window_lines);
        WRITE_NL(); WRITE_BOOL(*options, log_window.timer_data);
@@ -872,6 +873,7 @@ static gboolean load_global_params(const gchar **attribute_names, const gchar **
                if (READ_BOOL(*options, save_dialog_window_positions)) continue;
                if (READ_BOOL(*options, show_window_ids)) continue;
                if (READ_BOOL(*options, expand_menu_toolbar)) continue;
+               if (READ_BOOL(*options, hamburger_menu)) continue;
 
                if (READ_INT(*options, log_window_lines)) continue;
                if (READ_BOOL(*options, log_window.timer_data)) continue;
diff --git a/src/ui/menu-classic.ui b/src/ui/menu-classic.ui
new file mode 100644 (file)
index 0000000..286183d
--- /dev/null
@@ -0,0 +1,280 @@
+<ui>
+  <menubar name="MainMenu">
+      <menu action="FileMenu">
+        <menuitem action="NewCollection"/>
+        <menuitem action="OpenCollection"/>
+        <menuitem action="OpenRecent"/>
+        <placeholder name="OpenSection"/>
+        <separator/>
+        <menuitem action="Search"/>
+        <menuitem action="FindDupes"/>
+        <placeholder name="SearchSection"/>
+        <separator/>
+        <menuitem action="Print"/>
+        <placeholder name="PrintSection"/>
+        <separator/>
+        <menuitem action="NewFolder"/>
+        <menuitem action="Copy"/>
+        <menuitem action="Move"/>
+        <menuitem action="Rename"/>
+        <menuitem action="OpenWith"/>
+        <separator/>
+        <menuitem action="Delete"/>
+        <menuitem action="PermanentDelete"/>
+        <separator/>
+        <placeholder name="FileOpsSection"/>
+        <separator/>
+        <placeholder name="QuitSection"/>
+        <menuitem action="Quit"/>
+        <separator/>
+      </menu>
+      <menu action="GoMenu">
+        <menuitem action="FirstImage"/>
+        <menuitem action="PrevImage"/>
+        <menuitem action="NextImage"/>
+        <menuitem action="LastImage"/>
+        <menuitem action="ImageBack"/>
+        <menuitem action="ImageForward"/>
+        <separator/>
+        <menuitem action="Back"/>
+        <menuitem action="Forward"/>
+        <menuitem action="Up"/>
+        <menuitem action="Home"/>
+        <separator/>
+        <menuitem action="FirstPage"/>
+        <menuitem action="LastPage"/>
+        <menuitem action="NextPage"/>
+        <menuitem action="PrevPage"/>
+      </menu>
+      <menu action="SelectMenu">
+        <menuitem action="SelectAll"/>
+        <menuitem action="SelectNone"/>
+        <menuitem action="SelectInvert"/>
+        <menuitem action="RectangularSelection"/>
+        <menuitem action="ShowFileFilter"/>
+        <placeholder name="SelectSection"/>
+        <separator/>
+        <menuitem action="CopyPath"/>
+        <menuitem action="CopyPathUnquoted"/>
+        <placeholder name="ClipboardSection"/>
+        <separator/>
+        <menuitem action="ShowMarks"/>
+        <menuitem action="ClearMarks"/>
+        <placeholder name="MarksSection"/>
+        <separator/>
+      </menu>
+      <menu action="EditMenu">
+        <placeholder name="EditSection"/>
+        <separator/>
+        <menu action="OrientationMenu">
+          <menuitem action="RotateCW"/>
+          <menuitem action="RotateCCW"/>
+          <menuitem action="Rotate180"/>
+          <menuitem action="Mirror"/>
+          <menuitem action="Flip"/>
+          <menuitem action="AlterNone"/>
+          <separator/>
+          <menuitem action="ExifRotate"/>
+          <separator/>
+          <menuitem action="WriteRotation"/>
+          <menuitem action="WriteRotationKeepDate"/>
+          <separator/>
+        </menu>
+        <menu action="RatingMenu">
+          <menuitem action="Rating0"/>
+          <menuitem action="Rating1"/>
+          <menuitem action="Rating2"/>
+          <menuitem action="Rating3"/>
+          <menuitem action="Rating4"/>
+          <menuitem action="Rating5"/>
+          <menuitem action="RatingM1"/>
+          <separator/>
+        </menu>
+        <menuitem action="SaveMetadata"/>
+        <menuitem action="KeywordAutocomplete"/>
+        <placeholder name="PropertiesSection"/>
+        <separator/>
+        <menuitem action="DrawRectangle"/>
+        <separator/>
+        <menuitem action="Preferences"/>
+        <menuitem action="Plugins"/>
+        <menuitem action="LayoutConfig"/>
+        <menuitem action="Maintenance"/>
+        <placeholder name="PreferencesSection"/>
+        <separator/>
+        <separator/>
+      </menu>
+      <menu action="PluginsMenu"/>
+      <menu action="ViewMenu">
+        <menuitem action="ViewInNewWindow"/>
+        <menuitem action="PanView"/>
+        <menuitem action="ExifWin"/>
+        <menuitem action="OpenArchive"/>
+        <placeholder name="WindowSection"/>
+        <separator/>
+        <menu action="FileDirMenu">
+          <menuitem action="FolderTree"/>
+          <placeholder name="FolderSection"/>
+          <separator/>
+          <menuitem action="ViewList"/>
+          <menuitem action="ViewIcons"/>
+          <menuitem action="Thumbnails"/>
+          <placeholder name="ListSection"/>
+          <separator/>
+          <menuitem action="FloatTools"/>
+          <menuitem action="HideTools"/>
+        </menu>
+        <placeholder name="DirSection"/>
+        <separator/>
+        <menu action="ZoomMenu">
+          <menu action="ConnectZoomMenu">
+            <menuitem action="ConnectZoomIn"/>
+            <menuitem action="ConnectZoomOut"/>
+            <menuitem action="ConnectZoomFit"/>
+            <menuitem action="ConnectZoomFillHor"/>
+            <menuitem action="ConnectZoomFillVert"/>
+            <menuitem action="ConnectZoom100"/>
+            <menuitem action="ConnectZoom200"/>
+            <menuitem action="ConnectZoom300"/>
+            <menuitem action="ConnectZoom400"/>
+            <menuitem action="ConnectZoom50"/>
+            <menuitem action="ConnectZoom33"/>
+            <menuitem action="ConnectZoom25"/>
+          </menu>
+          <menuitem action="ZoomIn"/>
+          <menuitem action="ZoomOut"/>
+          <menuitem action="ZoomFit"/>
+          <menuitem action="ZoomFillHor"/>
+          <menuitem action="ZoomFillVert"/>
+          <menuitem action="Zoom100"/>
+          <menuitem action="Zoom200"/>
+          <menuitem action="Zoom300"/>
+          <menuitem action="Zoom400"/>
+          <menuitem action="Zoom50"/>
+          <menuitem action="Zoom33"/>
+          <menuitem action="Zoom25"/>
+        </menu>
+        <menu action="SplitMenu">
+          <menuitem action="SplitHorizontal"/>
+          <menuitem action="SplitVertical"/>
+          <menuitem action="SplitTriple"/>
+          <menuitem action="SplitQuad"/>
+          <menuitem action="SplitSingle"/>
+          <separator/>
+          <menuitem action="SplitNextPane"/>
+          <menuitem action="SplitPreviousPane"/>
+          <menuitem action="SplitUpPane"/>
+          <menuitem action="SplitDownPane"/>
+          <separator/>
+          <menuitem action="SplitPaneSync"/>
+        </menu>
+        <menu action="StereoMenu">
+          <menuitem action="StereoAuto"/>
+          <menuitem action="StereoSBS"/>
+          <menuitem action="StereoCross"/>
+          <menuitem action="StereoOff"/>
+          <separator/>
+          <menuitem action="StereoCycle"/>
+        </menu>
+        <menu action="ColorMenu">
+          <menuitem action="UseColorProfiles"/>
+          <menuitem action="UseImageProfile"/>
+          <menuitem action="ColorProfile0"/>
+          <menuitem action="ColorProfile1"/>
+          <menuitem action="ColorProfile2"/>
+          <menuitem action="ColorProfile3"/>
+          <menuitem action="ColorProfile4"/>
+          <menuitem action="ColorProfile5"/>
+          <separator/>
+          <menuitem action="Grayscale"/>
+        </menu>
+        <menu action="OverlayMenu">
+          <menuitem action="ImageOverlay"/>
+          <menuitem action="ImageHistogram"/>
+          <menuitem action="ImageOverlayCycle"/>
+          <separator/>
+          <menuitem action="HistogramChanR"/>
+          <menuitem action="HistogramChanG"/>
+          <menuitem action="HistogramChanB"/>
+          <menuitem action="HistogramChanRGB"/>
+          <menuitem action="HistogramChanV"/>
+          <menuitem action="HistogramChanCycle"/>
+          <separator/>
+          <menuitem action="HistogramModeLin"/>
+          <menuitem action="HistogramModeLog"/>
+          <menuitem action="HistogramModeCycle"/>
+        </menu>
+        <menuitem action="OverUnderExposed"/>
+        <menuitem action="FullScreen"/>
+        <placeholder name="ViewSection"/>
+        <separator/>
+        <menuitem action="SBar"/>
+        <menuitem action="SBarSort"/>
+        <menuitem action="HideBars"/>
+        <menuitem action="HideSelectableToolbars"/>
+        <menuitem action="ShowInfoPixel"/>
+        <menuitem action="IgnoreAlpha"/>
+        <placeholder name="ToolsSection"/>
+        <separator/>
+        <menuitem action="Animate"/>
+        <menuitem action="SlideShow"/>
+        <menuitem action="SlideShowPause"/>
+        <menuitem action="SlideShowFaster"/>
+        <menuitem action="SlideShowSlower"/>
+        <separator/>
+        <menuitem action="Refresh"/>
+        <placeholder name="SlideShowSection"/>
+        <separator/>
+      </menu>
+      <menu action="WindowsMenu">
+        <menu action="NewWindow">
+          <menuitem action="NewWindowDefault"/>
+          <menuitem action="NewWindowFromCurrent"/>
+          <separator/>
+        </menu>
+        <menuitem action="RenameWindow"/>
+        <menuitem action="DeleteWindow"/>
+        <menuitem action="CloseWindow"/>
+      </menu>
+      <menu action="HelpMenu">
+        <separator/>
+        <menuitem action="HelpContents"/>
+        <menuitem action="SearchAndRunCommand"/>
+        <menuitem action="HelpSearch"/>
+        <menuitem action="HelpShortcuts"/>
+        <menuitem action="HelpKbd"/>
+        <menuitem action="HelpNotes"/>
+        <menuitem action="HelpChangeLog"/>
+        <placeholder name="HelpSection"/>
+        <separator/>
+        <menuitem action="About"/>
+        <separator/>
+        <menuitem action="LogWindow"/>
+        <separator/>
+      </menu>
+  </menubar>
+
+  <toolbar name="ToolBar"/>
+  <toolbar name="StatusBar"/>
+
+  <accelerator action="PrevImageAlt1"/>
+  <accelerator action="PrevImageAlt2"/>
+  <accelerator action="NextImageAlt1"/>
+  <accelerator action="NextImageAlt2"/>
+  <accelerator action="DeleteAlt1"/>
+  <accelerator action="DeleteAlt2"/>
+  <accelerator action="FullScreenAlt1"/>
+  <accelerator action="FullScreenAlt2"/>
+  <accelerator action="Escape"/>
+  <accelerator action="EscapeAlt1"/>
+
+  <accelerator action="ZoomInAlt1"/>
+  <accelerator action="ZoomOutAlt1"/>
+  <accelerator action="Zoom100Alt1"/>
+  <accelerator action="ZoomFitAlt1"/>
+
+  <accelerator action="ConnectZoomInAlt1"/>
+  <accelerator action="ConnectZoomOutAlt1"/>
+  <accelerator action="ConnectZoom100Alt1"/>
+  <accelerator action="ConnectZoomFitAlt1"/>
+</ui>
similarity index 100%
rename from src/ui/menu.ui
rename to src/ui/menu-hamburger.ui
index 6736ad6..f688180 100644 (file)
@@ -25,7 +25,8 @@
   <gresource prefix="/org/geeqie/ui">
     <file>appimage-notification.ui</file>
     <file>custom.css</file>
-    <file>menu.ui</file>
+    <file>menu-classic.ui</file>
+    <file>menu-hamburger.ui</file>
     <file>search-and-run.ui</file>
   </gresource>
 </gresources>