[Xfce4-commits] <ristretto:devel> Allow moving of the navigationbar via a popup-menu

Stephan Arts stephan at xfce.org
Sun Aug 16 09:42:03 CEST 2009


Updating branch refs/heads/devel
         to 0688c7f7b60fc140f8542a6dc21a0e3fd5770cac (commit)
       from d567f90a0d7e0c1de8d192e35219d4114e031ce7 (commit)

commit 0688c7f7b60fc140f8542a6dc21a0e3fd5770cac
Author: Stephan Arts <stephan at xfce.org>
Date:   Sun Aug 16 09:10:40 2009 +0200

    Allow moving of the navigationbar via a popup-menu

 src/Makefile.am       |    7 +-
 src/main.c            |  266 ++++++++++++++++++++++++++--
 src/main_window.glade |  480 ++++++++++++++++++++++++++++++++++++++-----------
 src/main_window.ui    |  424 +++++++++++++++++++++++++++++++-------------
 src/main_window_ui.h  |  356 ++++++++++++++++++++++--------------
 5 files changed, 1157 insertions(+), 376 deletions(-)

diff --git a/src/Makefile.am b/src/Makefile.am
index 3fc6f8c..b8c3cf9 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -40,7 +40,12 @@ ristretto_LDADD = \
 	$(CAIRO_LIBS) \
 	$(XFCONF_LIBS) \
 	$(LIBXFCE4UTIL_LIBS) \
-	$(LIBXFCEGUI4_LIBS)
+	$(LIBXFCEGUI4_LIBS) 
+
+ristretto_LDFLAGS = \
+	-export-dynamic
+  
+
 
 INCLUDES = \
 	-I${top_srcdir}
diff --git a/src/main.c b/src/main.c
index 88dc7fd..d4b3a4b 100644
--- a/src/main.c
+++ b/src/main.c
@@ -46,6 +46,9 @@ gboolean version = FALSE;
 gboolean start_fullscreen = FALSE;
 gboolean start_slideshow = FALSE;
 
+GtkBuilder *builder;
+RsttoSettings *settings;
+
 static GOptionEntry entries[] =
 {
     {    "version", 'V', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, &version,
@@ -63,33 +66,135 @@ static GOptionEntry entries[] =
     { NULL, ' ', 0, 0, NULL, NULL, NULL }
 };
 
+/*
 static void
+rstto_navbar_do_popup_menu (GtkWidget *widget, gpointer user_data)
+{
+    gint location = BOTTOM;
+    GdkEventButton *event = user_data;
+    GtkWidget *menu, *position_menu;
+    gint button, event_time;
+    GSList *group = NULL;
+    GtkMenuItem *top_menuitem, *position_menuitem, *bottom_menuitem, *left_menuitem, *right_menuitem;
+
+    menu = gtk_menu_new ();
+    g_signal_connect (menu, "deactivate", 
+                    G_CALLBACK (gtk_widget_destroy), NULL);
+
+    position_menuitem = gtk_menu_item_new_with_label (_("Position"));
+    position_menu = gtk_menu_new();
+    gtk_menu_item_set_submenu (position_menuitem, position_menu);
+
+    top_menuitem = gtk_radio_menu_item_new_with_label (group, _("Top"));
+    group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (top_menuitem));
+
+    bottom_menuitem = gtk_radio_menu_item_new_with_label (group, _("Bottom"));
+    group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (bottom_menuitem));
+
+    left_menuitem = gtk_radio_menu_item_new_with_label (group, _("Left"));
+    group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (left_menuitem));
+
+    right_menuitem = gtk_radio_menu_item_new_with_label (group, _("Right"));
+    group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (right_menuitem));
+
+    gtk_menu_shell_append (position_menu, top_menuitem);
+    gtk_menu_shell_append (position_menu, bottom_menuitem);
+    gtk_menu_shell_append (position_menu, left_menuitem);
+    gtk_menu_shell_append (position_menu, right_menuitem);
+
+    switch (location)
+    {
+        case BOTTOM:
+            gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (bottom_menuitem), TRUE);
+            break;
+        case TOP:
+            gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (top_menuitem), TRUE);
+            break;
+        case LEFT:
+            gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (left_menuitem), TRUE);
+            break;
+        case RIGHT:
+            gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (right_menuitem), TRUE);
+            break;
+    }
+    g_signal_connect(G_OBJECT(top_menuitem), "toggled", G_CALLBACK(cb_rstto_navbar_top), NULL);
+    g_signal_connect(G_OBJECT(bottom_menuitem), "toggled", G_CALLBACK(cb_rstto_navbar_bottom), NULL);
+    g_signal_connect(G_OBJECT(left_menuitem), "toggled", G_CALLBACK(cb_rstto_navbar_left), NULL);
+    g_signal_connect(G_OBJECT(right_menuitem), "toggled", G_CALLBACK(cb_rstto_navbar_right), NULL);
+
+    gtk_menu_shell_append (menu, position_menuitem);
+    gtk_widget_show_all (menu);
+
+    if (event)
+    {
+        button = event->button;
+        event_time = event->time;
+    }
+    else
+    {
+        button = 0;
+        event_time = gtk_get_current_event_time ();
+    }
+
+    gtk_menu_attach_to_widget (GTK_MENU (menu), widget, NULL);
+    gtk_menu_popup (GTK_MENU (menu), NULL, NULL, NULL, NULL, 
+                  button, event_time);
+
+}
+
+static gboolean
+cb_rstto_navbar_button_press_event (GtkWidget *widget, GdkEventButton *event)
+{
+  // Ignore double-clicks and triple-clicks
+  if (event->button == 3 && event->type == GDK_BUTTON_PRESS)
+    {
+      rstto_navbar_do_popup_menu (widget, event);
+      return TRUE;
+    }
+
+  return FALSE;
+}
+
+static gboolean
+cb_rstto_navbar_popup_menu(GtkWidget *widget)
+{
+  rstto_navbar_do_popup_menu (widget, NULL);
+  return TRUE;
+}
+
+static void
+cb_rstto_navbar_top (GtkWidget *widget, gpointer user_data)
+{
+    
+}
+*/
+
+
+void
 rstto_main_window_configure_widgets (GtkBuilder *builder)
 {
     gint location = BOTTOM;
 
     GtkWidget *nav_bar = GTK_WIDGET (gtk_builder_get_object (builder, "navbox"));
-    GtkWidget *table = GTK_WIDGET (gtk_builder_get_object (builder, "main_table"));
+    GtkWidget *menu = GTK_WIDGET (gtk_builder_get_object (builder, "navbar_popup_menu"));
+    gtk_menu_attach_to_widget (GTK_MENU (menu), nav_bar, NULL);
+
+    //g_signal_connect(G_OBJECT(nav_bar), "popup-menu", G_CALLBACK(cb_rstto_navbar_popup_menu), NULL);
+    //g_signal_connect(G_OBJECT(nav_bar), "button-press-event", G_CALLBACK(cb_rstto_navbar_button_press_event), NULL);
 
-    g_object_ref (nav_bar);
-    gtk_container_remove (GTK_CONTAINER(table), nav_bar);
     switch (location)
     {
         case TOP:
-            gtk_table_attach (GTK_TABLE(table), nav_bar, 0, 3, 0, 1, GTK_FILL, GTK_FILL, 0, 0);
-            gtk_toolbar_set_orientation (GTK_TOOLBAR(nav_bar), GTK_ORIENTATION_HORIZONTAL);
+            gtk_toggle_action_set_active (GTK_TOGGLE_ACTION(gtk_builder_get_object (builder, "menuitem_navbar_pos_top")), TRUE);
             break;
         case BOTTOM:
-            gtk_table_attach (GTK_TABLE(table), nav_bar, 0, 3, 2, 3, GTK_FILL, GTK_FILL, 0, 0);
-            gtk_toolbar_set_orientation (GTK_TOOLBAR (nav_bar), GTK_ORIENTATION_HORIZONTAL);
+            gtk_toggle_action_set_active (GTK_TOGGLE_ACTION(gtk_builder_get_object (builder, "menuitem_navbar_pos_bottom")), TRUE);
             break;
         case LEFT:
-            gtk_table_attach (GTK_TABLE(table), nav_bar, 0, 1, 0, 3, GTK_FILL, GTK_FILL, 0, 0);
-            gtk_toolbar_set_orientation (GTK_TOOLBAR (nav_bar), GTK_ORIENTATION_VERTICAL);
+            gtk_toggle_action_set_active (GTK_TOGGLE_ACTION(gtk_builder_get_object (builder, "menuitem_navbar_pos_left")), TRUE);
             break;
         case RIGHT:
-            gtk_table_attach (GTK_TABLE(table), nav_bar, 2, 3, 0, 3, GTK_FILL, GTK_FILL, 0, 0);
-            gtk_toolbar_set_orientation (GTK_TOOLBAR (nav_bar), GTK_ORIENTATION_VERTICAL);
+            gtk_toggle_action_set_active (GTK_TOGGLE_ACTION(gtk_builder_get_object (builder, "menuitem_navbar_pos_right")), TRUE);
             break;
     }
 
@@ -99,10 +204,8 @@ int
 main(int argc, char **argv)
 {
     GError *cli_error = NULL;
-    RsttoSettings *settings;
     GtkWidget *window;
     GtkWidget *nav_bar;
-    GtkBuilder *builder;
     GtkWidget *table;
     GError *error = NULL;
 
@@ -138,6 +241,7 @@ main(int argc, char **argv)
                                      main_window_ui_length, &error) != 0)
     {
         window = GTK_WIDGET (gtk_builder_get_object (builder, "mainwindow"));
+        gtk_builder_connect_signals (builder, NULL);  
         rstto_main_window_configure_widgets (builder);
         g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL);
     }
@@ -151,3 +255,139 @@ main(int argc, char **argv)
 
     return 0;
 }
+
+/*************/
+/* Callbacks */
+/*************/
+
+/* */
+void
+cb_btn_next_image_clicked (GtkWidget *widget, gpointer user_data)
+{
+    g_debug ("%s",__FUNCTION__);
+
+}
+
+void
+cb_btn_previous_image_clicked (GtkWidget *widget, gpointer user_data)
+{
+    g_debug ("%s",__FUNCTION__);
+
+}
+
+
+/* */
+void
+cb_menuitem_navbar_pos_bottom_toggled (GtkWidget *widget, gpointer user_data)
+{
+    GtkWidget *nav_bar = GTK_WIDGET (gtk_builder_get_object (builder, "navbox"));
+    GtkWidget *table = GTK_WIDGET (gtk_builder_get_object (builder, "main_table"));
+
+    if (gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (widget)))
+    {
+        g_object_ref (nav_bar);
+        gtk_container_remove (GTK_CONTAINER(table), nav_bar);
+
+        gtk_tool_button_set_stock_id(GTK_TOOL_BUTTON(gtk_builder_get_object (builder, "btn_previous_image")), GTK_STOCK_GO_BACK);
+        gtk_tool_button_set_stock_id(GTK_TOOL_BUTTON(gtk_builder_get_object (builder, "btn_next_image")), GTK_STOCK_GO_FORWARD);
+        gtk_table_attach (GTK_TABLE(table), nav_bar, 0, 3, 2, 3, GTK_FILL, GTK_FILL, 0, 0);
+        gtk_toolbar_set_orientation (GTK_TOOLBAR (nav_bar), GTK_ORIENTATION_HORIZONTAL);
+    }
+
+}
+
+void
+cb_menuitem_navbar_pos_top_toggled (GtkWidget *widget, gpointer user_data)
+{
+    GtkWidget *nav_bar = GTK_WIDGET (gtk_builder_get_object (builder, "navbox"));
+    GtkWidget *table = GTK_WIDGET (gtk_builder_get_object (builder, "main_table"));
+
+    if (gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (widget)))
+    {
+        g_object_ref (nav_bar);
+        gtk_container_remove (GTK_CONTAINER(table), nav_bar);
+
+        gtk_tool_button_set_stock_id(GTK_TOOL_BUTTON(gtk_builder_get_object (builder, "btn_previous_image")), GTK_STOCK_GO_BACK);
+        gtk_tool_button_set_stock_id(GTK_TOOL_BUTTON(gtk_builder_get_object (builder, "btn_next_image")), GTK_STOCK_GO_FORWARD);
+        gtk_table_attach (GTK_TABLE(table), nav_bar, 0, 3, 0, 1, GTK_FILL, GTK_FILL, 0, 0);
+        gtk_toolbar_set_orientation (GTK_TOOLBAR(nav_bar), GTK_ORIENTATION_HORIZONTAL);
+    }
+
+}
+
+void
+cb_menuitem_navbar_pos_left_toggled (GtkWidget *widget, gpointer user_data)
+{
+    GtkWidget *nav_bar = GTK_WIDGET (gtk_builder_get_object (builder, "navbox"));
+    GtkWidget *table = GTK_WIDGET (gtk_builder_get_object (builder, "main_table"));
+
+    if (gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (widget)))
+    {
+        g_object_ref (nav_bar);
+        gtk_container_remove (GTK_CONTAINER(table), nav_bar);
+
+        gtk_tool_button_set_stock_id(GTK_TOOL_BUTTON(gtk_builder_get_object (builder, "btn_previous_image")), GTK_STOCK_GO_UP);
+        gtk_tool_button_set_stock_id(GTK_TOOL_BUTTON(gtk_builder_get_object (builder, "btn_next_image")), GTK_STOCK_GO_DOWN);
+        gtk_table_attach (GTK_TABLE(table), nav_bar, 0, 1, 0, 3, GTK_FILL, GTK_FILL, 0, 0);
+        gtk_toolbar_set_orientation (GTK_TOOLBAR (nav_bar), GTK_ORIENTATION_VERTICAL);
+    }
+}
+
+void
+cb_menuitem_navbar_pos_right_toggled (GtkWidget *widget, gpointer user_data)
+{
+    GtkWidget *nav_bar = GTK_WIDGET (gtk_builder_get_object (builder, "navbox"));
+    GtkWidget *table = GTK_WIDGET (gtk_builder_get_object (builder, "main_table"));
+
+    if (gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (widget)))
+    {
+        g_object_ref (nav_bar);
+        gtk_container_remove (GTK_CONTAINER(table), nav_bar);
+
+        gtk_tool_button_set_stock_id(GTK_TOOL_BUTTON(gtk_builder_get_object (builder, "btn_previous_image")), GTK_STOCK_GO_UP);
+        gtk_tool_button_set_stock_id(GTK_TOOL_BUTTON(gtk_builder_get_object (builder, "btn_next_image")), GTK_STOCK_GO_DOWN);
+        gtk_table_attach (GTK_TABLE(table), nav_bar, 2, 3, 0, 3, GTK_FILL, GTK_FILL, 0, 0);
+        gtk_toolbar_set_orientation (GTK_TOOLBAR (nav_bar), GTK_ORIENTATION_VERTICAL);
+    }
+}
+
+/* */
+void
+cb_open_file_activate (GtkWidget *widget, gpointer user_data)
+{
+    g_debug ("%s",__FUNCTION__);
+
+}
+
+/* */
+void
+cb_navbox_popup_context_menu (GtkWidget *widget, gpointer user_data)
+{
+    g_debug ("%s",__FUNCTION__);
+
+}
+
+void
+cb_navbox_button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data)
+{
+    int button, event_time;
+    GtkWidget *menu = NULL;
+    if (event->button == 3 && event->type == GDK_BUTTON_PRESS)
+    {
+        if (event)
+        {
+            button = event->button;
+            event_time = event->time;
+        }
+        else
+        {
+            button = 0;
+            event_time = gtk_get_current_event_time ();
+        }
+
+
+        menu = GTK_WIDGET (gtk_builder_get_object (builder, "navbar_popup_menu"));
+        gtk_menu_popup (GTK_MENU (menu), NULL, NULL, NULL, NULL, 
+                  button, event_time);
+    }
+}
diff --git a/src/main_window.glade b/src/main_window.glade
index c1f2c56..8f8a16a 100644
--- a/src/main_window.glade
+++ b/src/main_window.glade
@@ -1,8 +1,11 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
-<!--Generated with glade3 3.4.5 on Fri Aug 14 16:55:23 2009 -->
+<!--Generated with glade3 3.4.5 on Sun Aug 16 08:17:14 2009 -->
 <glade-interface>
   <widget class="GtkWindow" id="mainwindow">
+    <property name="title" translatable="yes">Image Viewer</property>
+    <property name="icon_name">ristretto</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
     <child>
       <widget class="GtkVBox" id="vbox1">
         <property name="visible">True</property>
@@ -18,31 +21,48 @@
                   <widget class="GtkMenu" id="menu1">
                     <property name="visible">True</property>
                     <child>
-                      <widget class="GtkImageMenuItem" id="imagemenuitem1">
+                      <widget class="GtkImageMenuItem" id="menu_open_file">
                         <property name="visible">True</property>
-                        <property name="label" translatable="yes">gtk-new</property>
+                        <property name="label" translatable="yes">_Open</property>
                         <property name="use_underline">True</property>
-                        <property name="use_stock">True</property>
+                        <signal name="activate" handler="cb_open_file_activate"/>
+                        <child internal-child="image">
+                          <widget class="GtkImage" id="menu-item-image1">
+                            <property name="visible">True</property>
+                            <property name="icon_name">document-open</property>
+                          </widget>
+                        </child>
                       </widget>
                     </child>
                     <child>
-                      <widget class="GtkImageMenuItem" id="imagemenuitem2">
+                      <widget class="GtkImageMenuItem" id="menu_open_folder">
                         <property name="visible">True</property>
-                        <property name="label" translatable="yes">gtk-open</property>
+                        <property name="label" translatable="yes">Open _folder</property>
                         <property name="use_underline">True</property>
-                        <property name="use_stock">True</property>
+                        <child internal-child="image">
+                          <widget class="GtkImage" id="menu-item-image2">
+                            <property name="visible">True</property>
+                            <property name="icon_name">folder-open</property>
+                          </widget>
+                        </child>
                       </widget>
                     </child>
                     <child>
-                      <widget class="GtkImageMenuItem" id="imagemenuitem3">
+                      <widget class="GtkMenuItem" id="menu_open_recent">
                         <property name="visible">True</property>
-                        <property name="label" translatable="yes">gtk-save</property>
+                        <property name="label" translatable="yes">Open _recent</property>
                         <property name="use_underline">True</property>
-                        <property name="use_stock">True</property>
                       </widget>
                     </child>
                     <child>
-                      <widget class="GtkImageMenuItem" id="imagemenuitem4">
+                      <widget class="GtkSeparatorMenuItem" id="menuitem6">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes"><separator></property>
+                        <property name="use_underline">True</property>
+                      </widget>
+                    </child>
+                    <child>
+                      <widget class="GtkImageMenuItem" id="menu_save_copy">
                         <property name="visible">True</property>
                         <property name="label" translatable="yes">gtk-save-as</property>
                         <property name="use_underline">True</property>
@@ -50,16 +70,47 @@
                       </widget>
                     </child>
                     <child>
+                      <widget class="GtkSeparatorMenuItem" id="menuitem8">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes"><separator></property>
+                        <property name="use_underline">True</property>
+                      </widget>
+                    </child>
+                    <child>
+                      <widget class="GtkImageMenuItem" id="menuitem9">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">gtk-print</property>
+                        <property name="use_underline">True</property>
+                        <property name="use_stock">True</property>
+                      </widget>
+                    </child>
+                    <child>
                       <widget class="GtkSeparatorMenuItem" id="separatormenuitem1">
                         <property name="visible">True</property>
                       </widget>
                     </child>
                     <child>
-                      <widget class="GtkImageMenuItem" id="imagemenuitem5">
+                      <widget class="GtkImageMenuItem" id="close_file ">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">gtk-close</property>
+                        <property name="use_underline">True</property>
+                        <property name="use_stock">True</property>
+                      </widget>
+                    </child>
+                    <child>
+                      <widget class="GtkMenuItem" id="close_all">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">Close _all</property>
+                        <property name="use_underline">True</property>
+                      </widget>
+                    </child>
+                    <child>
+                      <widget class="GtkImageMenuItem" id="quit">
                         <property name="visible">True</property>
                         <property name="label" translatable="yes">gtk-quit</property>
                         <property name="use_underline">True</property>
                         <property name="use_stock">True</property>
+                        <signal name="activate" handler="gtk_main_quit"/>
                       </widget>
                     </child>
                   </widget>
@@ -75,33 +126,38 @@
                   <widget class="GtkMenu" id="menu2">
                     <property name="visible">True</property>
                     <child>
-                      <widget class="GtkImageMenuItem" id="imagemenuitem6">
+                      <widget class="GtkMenuItem" id="open_with">
                         <property name="visible">True</property>
-                        <property name="label" translatable="yes">gtk-cut</property>
+                        <property name="label" translatable="yes">Open with</property>
                         <property name="use_underline">True</property>
-                        <property name="use_stock">True</property>
                       </widget>
                     </child>
                     <child>
-                      <widget class="GtkImageMenuItem" id="imagemenuitem7">
+                      <widget class="GtkSeparatorMenuItem" id="menuitem12">
                         <property name="visible">True</property>
-                        <property name="label" translatable="yes">gtk-copy</property>
+                        <property name="label" translatable="yes">menuitem12</property>
                         <property name="use_underline">True</property>
-                        <property name="use_stock">True</property>
                       </widget>
                     </child>
                     <child>
-                      <widget class="GtkImageMenuItem" id="imagemenuitem8">
+                      <widget class="GtkImageMenuItem" id="menuitem13">
                         <property name="visible">True</property>
-                        <property name="label" translatable="yes">gtk-paste</property>
+                        <property name="label" translatable="yes">gtk-delete</property>
                         <property name="use_underline">True</property>
                         <property name="use_stock">True</property>
                       </widget>
                     </child>
                     <child>
-                      <widget class="GtkImageMenuItem" id="imagemenuitem9">
+                      <widget class="GtkSeparatorMenuItem" id="menuitem14">
                         <property name="visible">True</property>
-                        <property name="label" translatable="yes">gtk-delete</property>
+                        <property name="label" translatable="yes">menuitem14</property>
+                        <property name="use_underline">True</property>
+                      </widget>
+                    </child>
+                    <child>
+                      <widget class="GtkImageMenuItem" id="preferences">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">gtk-preferences</property>
                         <property name="use_underline">True</property>
                         <property name="use_stock">True</property>
                       </widget>
@@ -115,6 +171,163 @@
                 <property name="visible">True</property>
                 <property name="label" translatable="yes">_View</property>
                 <property name="use_underline">True</property>
+                <child>
+                  <widget class="GtkMenu" id="menu4">
+                    <property name="visible">True</property>
+                    <child>
+                      <widget class="GtkCheckMenuItem" id="menuitem15">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">Show File Toolbar</property>
+                        <property name="use_underline">True</property>
+                      </widget>
+                    </child>
+                    <child>
+                      <widget class="GtkCheckMenuItem" id="menuitem16">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">Show Navigation Toolbar</property>
+                        <property name="use_underline">True</property>
+                      </widget>
+                    </child>
+                    <child>
+                      <widget class="GtkCheckMenuItem" id="menuitem17">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">Show ThumbnailBar</property>
+                        <property name="use_underline">True</property>
+                      </widget>
+                    </child>
+                    <child>
+                      <widget class="GtkSeparatorMenuItem" id="menuitem28">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">menuitem28</property>
+                        <property name="use_underline">True</property>
+                      </widget>
+                    </child>
+                    <child>
+                      <widget class="GtkMenuItem" id="menuitem18">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">Zooming</property>
+                        <property name="use_underline">True</property>
+                        <child>
+                          <widget class="GtkMenu" id="menu5">
+                            <property name="visible">True</property>
+                            <child>
+                              <widget class="GtkImageMenuItem" id="menuitem19">
+                                <property name="visible">True</property>
+                                <property name="label" translatable="yes">Zoom fit</property>
+                                <property name="use_underline">True</property>
+                                <child internal-child="image">
+                                  <widget class="GtkImage" id="menu-item-image3">
+                                    <property name="visible">True</property>
+                                    <property name="icon_name">zoom-fit-best</property>
+                                  </widget>
+                                </child>
+                              </widget>
+                            </child>
+                            <child>
+                              <widget class="GtkImageMenuItem" id="menuitem20">
+                                <property name="visible">True</property>
+                                <property name="label" translatable="yes">Zoom 100%</property>
+                                <property name="use_underline">True</property>
+                                <child internal-child="image">
+                                  <widget class="GtkImage" id="menu-item-image4">
+                                    <property name="visible">True</property>
+                                    <property name="icon_name">zoom-p</property>
+                                  </widget>
+                                </child>
+                              </widget>
+                            </child>
+                            <child>
+                              <widget class="GtkImageMenuItem" id="menuitem21">
+                                <property name="visible">True</property>
+                                <property name="label" translatable="yes">Zoom in</property>
+                                <property name="use_underline">True</property>
+                                <child internal-child="image">
+                                  <widget class="GtkImage" id="menu-item-image5">
+                                    <property name="visible">True</property>
+                                    <property name="icon_name">zoom-in</property>
+                                  </widget>
+                                </child>
+                              </widget>
+                            </child>
+                            <child>
+                              <widget class="GtkImageMenuItem" id="menuitem22">
+                                <property name="visible">True</property>
+                                <property name="label" translatable="yes">Zoom out</property>
+                                <property name="use_underline">True</property>
+                                <child internal-child="image">
+                                  <widget class="GtkImage" id="menu-item-image6">
+                                    <property name="visible">True</property>
+                                    <property name="icon_name">zoom-out</property>
+                                  </widget>
+                                </child>
+                              </widget>
+                            </child>
+                          </widget>
+                        </child>
+                      </widget>
+                    </child>
+                    <child>
+                      <widget class="GtkMenuItem" id="menuitem23">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">Rotation</property>
+                        <property name="use_underline">True</property>
+                        <child>
+                          <widget class="GtkMenu" id="menu6">
+                            <property name="visible">True</property>
+                            <child>
+                              <widget class="GtkImageMenuItem" id="menuitem24">
+                                <property name="visible">True</property>
+                                <property name="label" translatable="yes">Rotate left</property>
+                                <property name="use_underline">True</property>
+                                <child internal-child="image">
+                                  <widget class="GtkImage" id="menu-item-image7">
+                                    <property name="visible">True</property>
+                                    <property name="icon_name">object-rotate-left</property>
+                                  </widget>
+                                </child>
+                              </widget>
+                            </child>
+                            <child>
+                              <widget class="GtkImageMenuItem" id="menuitem25">
+                                <property name="visible">True</property>
+                                <property name="label" translatable="yes">Rotate right</property>
+                                <property name="use_underline">True</property>
+                                <child internal-child="image">
+                                  <widget class="GtkImage" id="menu-item-image8">
+                                    <property name="visible">True</property>
+                                    <property name="icon_name">object-rotate-right</property>
+                                  </widget>
+                                </child>
+                              </widget>
+                            </child>
+                          </widget>
+                        </child>
+                      </widget>
+                    </child>
+                    <child>
+                      <widget class="GtkSeparatorMenuItem" id="menuitem29">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">menuitem29</property>
+                        <property name="use_underline">True</property>
+                      </widget>
+                    </child>
+                    <child>
+                      <widget class="GtkImageMenuItem" id="menuitem26">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">gtk-fullscreen</property>
+                        <property name="use_underline">True</property>
+                        <property name="use_stock">True</property>
+                      </widget>
+                    </child>
+                    <child>
+                      <widget class="GtkMenuItem" id="menuitem27">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">Set as wallpaper</property>
+                        <property name="use_underline">True</property>
+                      </widget>
+                    </child>
+                  </widget>
+                </child>
               </widget>
             </child>
             <child>
@@ -146,7 +359,7 @@
           <widget class="GtkToolbar" id="toolbar1">
             <property name="visible">True</property>
             <child>
-              <widget class="GtkToolButton" id="toolbutton1">
+              <widget class="GtkToolButton" id="open_fil">
                 <property name="visible">True</property>
                 <property name="icon_name">document-open</property>
               </widget>
@@ -155,7 +368,7 @@
               </packing>
             </child>
             <child>
-              <widget class="GtkToolButton" id="toolbutton2">
+              <widget class="GtkToolButton" id="open_folder ">
                 <property name="visible">True</property>
                 <property name="icon_name">folder-open</property>
               </widget>
@@ -172,7 +385,7 @@
               </packing>
             </child>
             <child>
-              <widget class="GtkToolButton" id="toolbutton4">
+              <widget class="GtkToolButton" id="save_copy">
                 <property name="visible">True</property>
                 <property name="stock_id">gtk-save-as</property>
               </widget>
@@ -181,7 +394,7 @@
               </packing>
             </child>
             <child>
-              <widget class="GtkToolButton" id="toolbutton5">
+              <widget class="GtkToolButton" id="close_file">
                 <property name="visible">True</property>
                 <property name="stock_id">gtk-close</property>
               </widget>
@@ -190,7 +403,7 @@
               </packing>
             </child>
             <child>
-              <widget class="GtkToolButton" id="toolbutton7">
+              <widget class="GtkToolButton" id="delete_file">
                 <property name="visible">True</property>
                 <property name="stock_id">gtk-delete</property>
               </widget>
@@ -225,90 +438,23 @@
               <placeholder/>
             </child>
             <child>
-              <widget class="GtkHPaned" id="hpaned1">
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <widget class="GtkHPaned" id="hpaned2">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <child>
-                      <widget class="GtkVPaned" id="vpaned1">
-                        <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <child>
-                          <placeholder/>
-                        </child>
-                        <child>
-                          <widget class="GtkVPaned" id="vpaned2">
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <child>
-                              <widget class="GtkScrolledWindow" id="center_wiindow">
-                                <property name="visible">True</property>
-                                <property name="can_focus">True</property>
-                                <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-                                <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-                                <property name="shadow_type">GTK_SHADOW_IN</property>
-                                <child>
-                                  <placeholder/>
-                                </child>
-                              </widget>
-                              <packing>
-                                <property name="resize">False</property>
-                                <property name="shrink">True</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <placeholder/>
-                            </child>
-                          </widget>
-                          <packing>
-                            <property name="resize">True</property>
-                            <property name="shrink">True</property>
-                          </packing>
-                        </child>
-                      </widget>
-                      <packing>
-                        <property name="resize">False</property>
-                        <property name="shrink">True</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <placeholder/>
-                    </child>
-                  </widget>
-                  <packing>
-                    <property name="resize">True</property>
-                    <property name="shrink">True</property>
-                  </packing>
-                </child>
-              </widget>
-              <packing>
-                <property name="left_attach">1</property>
-                <property name="right_attach">2</property>
-                <property name="top_attach">1</property>
-                <property name="bottom_attach">2</property>
-              </packing>
-            </child>
-            <child>
               <widget class="GtkToolbar" id="navbox">
                 <property name="visible">True</property>
                 <property name="orientation">GTK_ORIENTATION_VERTICAL</property>
+                <signal name="button_press_event" handler="cb_navbox_button_press_event"/>
+                <signal name="popup_context_menu" handler="cb_navbox_popup_context_menu"/>
                 <child>
                   <widget class="GtkToolButton" id="btn_previous_image">
                     <property name="visible">True</property>
                     <property name="stock_id">gtk-go-up</property>
+                    <signal name="clicked" handler="cb_btn_previous_image_clicked"/>
                   </widget>
                   <packing>
                     <property name="homogeneous">True</property>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkToolButton" id="toolbutton6">
+                  <widget class="GtkToolButton" id="btn_play_slideshow">
                     <property name="visible">True</property>
                     <property name="stock_id">gtk-media-play</property>
                   </widget>
@@ -320,6 +466,7 @@
                   <widget class="GtkToolButton" id="btn_next_image">
                     <property name="visible">True</property>
                     <property name="stock_id">gtk-go-down</property>
+                    <signal name="clicked" handler="cb_btn_next_image_clicked"/>
                   </widget>
                   <packing>
                     <property name="homogeneous">True</property>
@@ -335,7 +482,7 @@
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkToolButton" id="toolbutton9">
+                  <widget class="GtkToolButton" id="btn_rotate_left">
                     <property name="visible">True</property>
                     <property name="icon_name">object-rotate-left</property>
                   </widget>
@@ -344,7 +491,7 @@
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkToolButton" id="toolbutton10">
+                  <widget class="GtkToolButton" id="btn_rotate_right">
                     <property name="visible">True</property>
                     <property name="icon_name">object-rotate-right</property>
                   </widget>
@@ -361,7 +508,7 @@
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkToolButton" id="toolbutton12">
+                  <widget class="GtkToolButton" id="btn_zoom_in">
                     <property name="visible">True</property>
                     <property name="icon_name">zoom-in</property>
                   </widget>
@@ -370,7 +517,7 @@
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkToolButton" id="toolbutton13">
+                  <widget class="GtkToolButton" id="btn_zoom_out">
                     <property name="visible">True</property>
                     <property name="icon_name">zoom-out</property>
                   </widget>
@@ -379,7 +526,7 @@
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkToolButton" id="toolbutton14">
+                  <widget class="GtkToolButton" id="btn_zoom_origin">
                     <property name="visible">True</property>
                     <property name="icon_name">zoom-original</property>
                   </widget>
@@ -388,7 +535,7 @@
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkToolButton" id="toolbutton15">
+                  <widget class="GtkToolButton" id="btn_zoom_fit">
                     <property name="visible">True</property>
                     <property name="icon_name">zoom-fit-best</property>
                   </widget>
@@ -419,6 +566,76 @@
                 <property name="x_options">GTK_FILL</property>
               </packing>
             </child>
+            <child>
+              <widget class="GtkHPaned" id="hpaned1">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <widget class="GtkHPaned" id="hpaned2">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <child>
+                      <widget class="GtkVPaned" id="vpaned1">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <child>
+                          <placeholder/>
+                        </child>
+                        <child>
+                          <widget class="GtkVPaned" id="vpaned2">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <child>
+                              <widget class="GtkScrolledWindow" id="center_wiindow">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                                <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                                <property name="shadow_type">GTK_SHADOW_IN</property>
+                                <child>
+                                  <placeholder/>
+                                </child>
+                              </widget>
+                              <packing>
+                                <property name="resize">False</property>
+                                <property name="shrink">True</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <placeholder/>
+                            </child>
+                          </widget>
+                          <packing>
+                            <property name="resize">True</property>
+                            <property name="shrink">True</property>
+                          </packing>
+                        </child>
+                      </widget>
+                      <packing>
+                        <property name="resize">False</property>
+                        <property name="shrink">True</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <placeholder/>
+                    </child>
+                  </widget>
+                  <packing>
+                    <property name="resize">True</property>
+                    <property name="shrink">True</property>
+                  </packing>
+                </child>
+              </widget>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="right_attach">2</property>
+                <property name="top_attach">1</property>
+                <property name="bottom_attach">2</property>
+              </packing>
+            </child>
           </widget>
           <packing>
             <property name="position">2</property>
@@ -437,4 +654,59 @@
       </widget>
     </child>
   </widget>
+  <widget class="GtkMenu" id="navbar_popup_menu">
+    <property name="visible">True</property>
+    <child>
+      <widget class="GtkMenuItem" id="menuitem30">
+        <property name="visible">True</property>
+        <property name="label" translatable="yes">Position</property>
+        <property name="use_underline">True</property>
+        <child>
+          <widget class="GtkMenu" id="menu8">
+            <property name="visible">True</property>
+            <child>
+              <widget class="GtkRadioMenuItem" id="menuitem_navbar_pos_left">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">_Left</property>
+                <property name="use_underline">True</property>
+                <property name="active">True</property>
+                <property name="draw_as_radio">True</property>
+                <signal name="toggled" handler="cb_menuitem_navbar_pos_left_toggled"/>
+              </widget>
+            </child>
+            <child>
+              <widget class="GtkRadioMenuItem" id="menuitem_navbar_pos_right">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">_Right</property>
+                <property name="use_underline">True</property>
+                <property name="draw_as_radio">True</property>
+                <property name="group">menuitem_navbar_pos_left</property>
+                <signal name="toggled" handler="cb_menuitem_navbar_pos_right_toggled"/>
+              </widget>
+            </child>
+            <child>
+              <widget class="GtkRadioMenuItem" id="menuitem_navbar_pos_top">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">_Top</property>
+                <property name="use_underline">True</property>
+                <property name="draw_as_radio">True</property>
+                <property name="group">menuitem_navbar_pos_left</property>
+                <signal name="toggled" handler="cb_menuitem_navbar_pos_top_toggled"/>
+              </widget>
+            </child>
+            <child>
+              <widget class="GtkRadioMenuItem" id="menuitem_navbar_pos_bottom">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">_Bottom</property>
+                <property name="use_underline">True</property>
+                <property name="draw_as_radio">True</property>
+                <property name="group">menuitem_navbar_pos_left</property>
+                <signal name="toggled" handler="cb_menuitem_navbar_pos_bottom_toggled"/>
+              </widget>
+            </child>
+          </widget>
+        </child>
+      </widget>
+    </child>
+  </widget>
 </glade-interface>
diff --git a/src/main_window.ui b/src/main_window.ui
index 6442e1c..723aca9 100644
--- a/src/main_window.ui
+++ b/src/main_window.ui
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!--Generated with glade3 3.4.5 on Fri Aug 14 16:55:23 2009 -->
+<!--Generated with glade3 3.4.5 on Sun Aug 16 08:17:14 2009 -->
 <interface>
   <object class="GtkUIManager" id="uimanager1">
     <child>
@@ -11,63 +11,77 @@
           </object>
         </child>
         <child>
-          <object class="GtkAction" id="imagemenuitem1">
-            <property name="stock_id" translatable="yes">gtk-new</property>
-            <property name="name">imagemenuitem1</property>
+          <object class="GtkAction" id="menu_open_file">
+            <property name="name">menu_open_file</property>
+            <property name="label" translatable="yes">_Open</property>
+            <signal handler="cb_open_file_activate" name="activate"/>
           </object>
         </child>
         <child>
-          <object class="GtkAction" id="imagemenuitem2">
-            <property name="stock_id" translatable="yes">gtk-open</property>
-            <property name="name">imagemenuitem2</property>
+          <object class="GtkAction" id="menu_open_folder">
+            <property name="name">menu_open_folder</property>
+            <property name="label" translatable="yes">Open _folder</property>
           </object>
         </child>
         <child>
-          <object class="GtkAction" id="imagemenuitem3">
-            <property name="stock_id" translatable="yes">gtk-save</property>
-            <property name="name">imagemenuitem3</property>
+          <object class="GtkAction" id="menu_open_recent">
+            <property name="name">menu_open_recent</property>
+            <property name="label" translatable="yes">Open _recent</property>
           </object>
         </child>
         <child>
-          <object class="GtkAction" id="imagemenuitem4">
+          <object class="GtkAction" id="menu_save_copy">
             <property name="stock_id" translatable="yes">gtk-save-as</property>
-            <property name="name">imagemenuitem4</property>
+            <property name="name">menu_save_copy</property>
           </object>
         </child>
         <child>
-          <object class="GtkAction" id="imagemenuitem5">
-            <property name="stock_id" translatable="yes">gtk-quit</property>
-            <property name="name">imagemenuitem5</property>
+          <object class="GtkAction" id="menuitem9">
+            <property name="stock_id" translatable="yes">gtk-print</property>
+            <property name="name">menuitem9</property>
           </object>
         </child>
         <child>
-          <object class="GtkAction" id="menuitem2">
-            <property name="name">menuitem2</property>
-            <property name="label" translatable="yes">_Edit</property>
+          <object class="GtkAction" id="close_file ">
+            <property name="stock_id" translatable="yes">gtk-close</property>
+            <property name="name">close_file </property>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="close_all">
+            <property name="name">close_all</property>
+            <property name="label" translatable="yes">Close _all</property>
           </object>
         </child>
         <child>
-          <object class="GtkAction" id="imagemenuitem6">
-            <property name="stock_id" translatable="yes">gtk-cut</property>
-            <property name="name">imagemenuitem6</property>
+          <object class="GtkAction" id="quit">
+            <property name="stock_id" translatable="yes">gtk-quit</property>
+            <property name="name">quit</property>
+            <signal handler="gtk_main_quit" name="activate"/>
           </object>
         </child>
         <child>
-          <object class="GtkAction" id="imagemenuitem7">
-            <property name="stock_id" translatable="yes">gtk-copy</property>
-            <property name="name">imagemenuitem7</property>
+          <object class="GtkAction" id="menuitem2">
+            <property name="name">menuitem2</property>
+            <property name="label" translatable="yes">_Edit</property>
           </object>
         </child>
         <child>
-          <object class="GtkAction" id="imagemenuitem8">
-            <property name="stock_id" translatable="yes">gtk-paste</property>
-            <property name="name">imagemenuitem8</property>
+          <object class="GtkAction" id="open_with">
+            <property name="name">open_with</property>
+            <property name="label" translatable="yes">Open with</property>
           </object>
         </child>
         <child>
-          <object class="GtkAction" id="imagemenuitem9">
+          <object class="GtkAction" id="menuitem13">
             <property name="stock_id" translatable="yes">gtk-delete</property>
-            <property name="name">imagemenuitem9</property>
+            <property name="name">menuitem13</property>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="preferences">
+            <property name="stock_id" translatable="yes">gtk-preferences</property>
+            <property name="name">preferences</property>
           </object>
         </child>
         <child>
@@ -77,6 +91,84 @@
           </object>
         </child>
         <child>
+          <object class="GtkToggleAction" id="menuitem15">
+            <property name="name">menuitem15</property>
+            <property name="label" translatable="yes">Show File Toolbar</property>
+          </object>
+        </child>
+        <child>
+          <object class="GtkToggleAction" id="menuitem16">
+            <property name="name">menuitem16</property>
+            <property name="label" translatable="yes">Show Navigation Toolbar</property>
+          </object>
+        </child>
+        <child>
+          <object class="GtkToggleAction" id="menuitem17">
+            <property name="name">menuitem17</property>
+            <property name="label" translatable="yes">Show ThumbnailBar</property>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="menuitem18">
+            <property name="name">menuitem18</property>
+            <property name="label" translatable="yes">Zooming</property>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="menuitem19">
+            <property name="name">menuitem19</property>
+            <property name="label" translatable="yes">Zoom fit</property>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="menuitem20">
+            <property name="name">menuitem20</property>
+            <property name="label" translatable="yes">Zoom 100%</property>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="menuitem21">
+            <property name="name">menuitem21</property>
+            <property name="label" translatable="yes">Zoom in</property>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="menuitem22">
+            <property name="name">menuitem22</property>
+            <property name="label" translatable="yes">Zoom out</property>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="menuitem23">
+            <property name="name">menuitem23</property>
+            <property name="label" translatable="yes">Rotation</property>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="menuitem24">
+            <property name="name">menuitem24</property>
+            <property name="label" translatable="yes">Rotate left</property>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="menuitem25">
+            <property name="name">menuitem25</property>
+            <property name="label" translatable="yes">Rotate right</property>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="menuitem26">
+            <property name="stock_id" translatable="yes">gtk-fullscreen</property>
+            <property name="name">menuitem26</property>
+          </object>
+        </child>
+        <child>
+          <object class="GtkAction" id="menuitem27">
+            <property name="name">menuitem27</property>
+            <property name="label" translatable="yes">Set as wallpaper</property>
+          </object>
+        </child>
+        <child>
           <object class="GtkAction" id="menuitem4">
             <property name="name">menuitem4</property>
             <property name="label" translatable="yes">_Help</property>
@@ -93,29 +185,110 @@
     <ui>
       <menubar name="menubar1">
         <menu action="menuitem1">
-          <menuitem action="imagemenuitem1"/>
-          <menuitem action="imagemenuitem2"/>
-          <menuitem action="imagemenuitem3"/>
-          <menuitem action="imagemenuitem4"/>
+          <menuitem action="menu_open_file"/>
+          <menuitem action="menu_open_folder"/>
+          <menuitem action="menu_open_recent"/>
           <separator/>
-          <menuitem action="imagemenuitem5"/>
+          <menuitem action="menu_save_copy"/>
+          <separator/>
+          <menuitem action="menuitem9"/>
+          <separator/>
+          <menuitem action="close_file "/>
+          <menuitem action="close_all"/>
+          <menuitem action="quit"/>
         </menu>
         <menu action="menuitem2">
-          <menuitem action="imagemenuitem6"/>
-          <menuitem action="imagemenuitem7"/>
-          <menuitem action="imagemenuitem8"/>
-          <menuitem action="imagemenuitem9"/>
+          <menuitem action="open_with"/>
+          <separator/>
+          <menuitem action="menuitem13"/>
+          <separator/>
+          <menuitem action="preferences"/>
+        </menu>
+        <menu action="menuitem3">
+          <menuitem action="menuitem15"/>
+          <menuitem action="menuitem16"/>
+          <menuitem action="menuitem17"/>
+          <separator/>
+          <menu action="menuitem18">
+            <menuitem action="menuitem19"/>
+            <menuitem action="menuitem20"/>
+            <menuitem action="menuitem21"/>
+            <menuitem action="menuitem22"/>
+          </menu>
+          <menu action="menuitem23">
+            <menuitem action="menuitem24"/>
+            <menuitem action="menuitem25"/>
+          </menu>
+          <separator/>
+          <menuitem action="menuitem26"/>
+          <menuitem action="menuitem27"/>
         </menu>
-        <menuitem action="menuitem3"/>
         <menu action="menuitem4">
           <menuitem action="imagemenuitem10"/>
         </menu>
       </menubar>
     </ui>
   </object>
+  <object class="GtkUIManager" id="uimanager2">
+    <child>
+      <object class="GtkActionGroup" id="actiongroup2">
+        <child>
+          <object class="GtkAction" id="menuitem30">
+            <property name="name">menuitem30</property>
+            <property name="label" translatable="yes">Position</property>
+          </object>
+        </child>
+        <child>
+          <object class="GtkRadioAction" id="menuitem_navbar_pos_left">
+            <property name="active">True</property>
+            <property name="name">menuitem_navbar_pos_left</property>
+            <property name="label" translatable="yes">_Left</property>
+            <signal handler="cb_menuitem_navbar_pos_left_toggled" name="toggled"/>
+          </object>
+        </child>
+        <child>
+          <object class="GtkRadioAction" id="menuitem_navbar_pos_right">
+            <property name="group">menuitem_navbar_pos_left</property>
+            <property name="name">menuitem_navbar_pos_right</property>
+            <property name="label" translatable="yes">_Right</property>
+            <signal handler="cb_menuitem_navbar_pos_right_toggled" name="toggled"/>
+          </object>
+        </child>
+        <child>
+          <object class="GtkRadioAction" id="menuitem_navbar_pos_top">
+            <property name="group">menuitem_navbar_pos_left</property>
+            <property name="name">menuitem_navbar_pos_top</property>
+            <property name="label" translatable="yes">_Top</property>
+            <signal handler="cb_menuitem_navbar_pos_top_toggled" name="toggled"/>
+          </object>
+        </child>
+        <child>
+          <object class="GtkRadioAction" id="menuitem_navbar_pos_bottom">
+            <property name="group">menuitem_navbar_pos_left</property>
+            <property name="name">menuitem_navbar_pos_bottom</property>
+            <property name="label" translatable="yes">_Bottom</property>
+            <signal handler="cb_menuitem_navbar_pos_bottom_toggled" name="toggled"/>
+          </object>
+        </child>
+      </object>
+    </child>
+    <ui>
+      <popup name="navbar_popup_menu">
+        <menu action="menuitem30">
+          <menuitem action="menuitem_navbar_pos_left"/>
+          <menuitem action="menuitem_navbar_pos_right"/>
+          <menuitem action="menuitem_navbar_pos_top"/>
+          <menuitem action="menuitem_navbar_pos_bottom"/>
+        </menu>
+      </popup>
+    </ui>
+  </object>
   <object class="GtkWindow" id="mainwindow">
+    <property name="title" translatable="yes">Image Viewer</property>
+    <property name="icon_name">ristretto</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
     <child>
-      <object class="GtkVBox" id="main_vbox">
+      <object class="GtkVBox" id="vbox1">
         <property name="visible">True</property>
         <child>
           <object class="GtkMenuBar" constructor="uimanager1" id="menubar1">
@@ -129,7 +302,7 @@
           <object class="GtkToolbar" id="toolbar1">
             <property name="visible">True</property>
             <child>
-              <object class="GtkToolButton" id="toolbutton1">
+              <object class="GtkToolButton" id="open_fil">
                 <property name="visible">True</property>
                 <property name="icon_name">document-open</property>
               </object>
@@ -138,7 +311,7 @@
               </packing>
             </child>
             <child>
-              <object class="GtkToolButton" id="toolbutton2">
+              <object class="GtkToolButton" id="open_folder ">
                 <property name="visible">True</property>
                 <property name="icon_name">folder-open</property>
               </object>
@@ -155,7 +328,7 @@
               </packing>
             </child>
             <child>
-              <object class="GtkToolButton" id="toolbutton4">
+              <object class="GtkToolButton" id="save_copy">
                 <property name="visible">True</property>
                 <property name="stock_id">gtk-save-as</property>
               </object>
@@ -164,7 +337,7 @@
               </packing>
             </child>
             <child>
-              <object class="GtkToolButton" id="toolbutton5">
+              <object class="GtkToolButton" id="close_file">
                 <property name="visible">True</property>
                 <property name="stock_id">gtk-close</property>
               </object>
@@ -173,7 +346,7 @@
               </packing>
             </child>
             <child>
-              <object class="GtkToolButton" id="toolbutton7">
+              <object class="GtkToolButton" id="delete_file">
                 <property name="visible">True</property>
                 <property name="stock_id">gtk-delete</property>
               </object>
@@ -208,90 +381,23 @@
               <placeholder/>
             </child>
             <child>
-              <object class="GtkHPaned" id="hpaned1">
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <child>
-                  <placeholder/>
-                </child>
-                <child>
-                  <object class="GtkHPaned" id="hpaned2">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <child>
-                      <object class="GtkVPaned" id="vpaned1">
-                        <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <child>
-                          <placeholder/>
-                        </child>
-                        <child>
-                          <object class="GtkVPaned" id="vpaned2">
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <child>
-                              <object class="GtkScrolledWindow" id="center_wiindow">
-                                <property name="visible">True</property>
-                                <property name="can_focus">True</property>
-                                <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-                                <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-                                <property name="shadow_type">GTK_SHADOW_IN</property>
-                                <child>
-                                  <placeholder/>
-                                </child>
-                              </object>
-                              <packing>
-                                <property name="resize">False</property>
-                                <property name="shrink">True</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <placeholder/>
-                            </child>
-                          </object>
-                          <packing>
-                            <property name="resize">True</property>
-                            <property name="shrink">True</property>
-                          </packing>
-                        </child>
-                      </object>
-                      <packing>
-                        <property name="resize">False</property>
-                        <property name="shrink">True</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <placeholder/>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="resize">True</property>
-                    <property name="shrink">True</property>
-                  </packing>
-                </child>
-              </object>
-              <packing>
-                <property name="left_attach">1</property>
-                <property name="right_attach">2</property>
-                <property name="top_attach">1</property>
-                <property name="bottom_attach">2</property>
-              </packing>
-            </child>
-            <child>
               <object class="GtkToolbar" id="navbox">
                 <property name="visible">True</property>
                 <property name="orientation">GTK_ORIENTATION_VERTICAL</property>
+                <signal handler="cb_navbox_button_press_event" name="button_press_event"/>
+                <signal handler="cb_navbox_popup_context_menu" name="popup_context_menu"/>
                 <child>
                   <object class="GtkToolButton" id="btn_previous_image">
                     <property name="visible">True</property>
                     <property name="stock_id">gtk-go-up</property>
+                    <signal handler="cb_btn_previous_image_clicked" name="clicked"/>
                   </object>
                   <packing>
                     <property name="homogeneous">True</property>
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkToolButton" id="toolbutton6">
+                  <object class="GtkToolButton" id="btn_play_slideshow">
                     <property name="visible">True</property>
                     <property name="stock_id">gtk-media-play</property>
                   </object>
@@ -303,6 +409,7 @@
                   <object class="GtkToolButton" id="btn_next_image">
                     <property name="visible">True</property>
                     <property name="stock_id">gtk-go-down</property>
+                    <signal handler="cb_btn_next_image_clicked" name="clicked"/>
                   </object>
                   <packing>
                     <property name="homogeneous">True</property>
@@ -318,7 +425,7 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkToolButton" id="toolbutton9">
+                  <object class="GtkToolButton" id="btn_rotate_left">
                     <property name="visible">True</property>
                     <property name="icon_name">object-rotate-left</property>
                   </object>
@@ -327,7 +434,7 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkToolButton" id="toolbutton10">
+                  <object class="GtkToolButton" id="btn_rotate_right">
                     <property name="visible">True</property>
                     <property name="icon_name">object-rotate-right</property>
                   </object>
@@ -344,7 +451,7 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkToolButton" id="toolbutton12">
+                  <object class="GtkToolButton" id="btn_zoom_in">
                     <property name="visible">True</property>
                     <property name="icon_name">zoom-in</property>
                   </object>
@@ -353,7 +460,7 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkToolButton" id="toolbutton13">
+                  <object class="GtkToolButton" id="btn_zoom_out">
                     <property name="visible">True</property>
                     <property name="icon_name">zoom-out</property>
                   </object>
@@ -362,7 +469,7 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkToolButton" id="toolbutton14">
+                  <object class="GtkToolButton" id="btn_zoom_origin">
                     <property name="visible">True</property>
                     <property name="icon_name">zoom-original</property>
                   </object>
@@ -371,7 +478,7 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkToolButton" id="toolbutton15">
+                  <object class="GtkToolButton" id="btn_zoom_fit">
                     <property name="visible">True</property>
                     <property name="icon_name">zoom-fit-best</property>
                   </object>
@@ -402,6 +509,76 @@
                 <property name="x_options">GTK_FILL</property>
               </packing>
             </child>
+            <child>
+              <object class="GtkHPaned" id="hpaned1">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <child>
+                  <placeholder/>
+                </child>
+                <child>
+                  <object class="GtkHPaned" id="hpaned2">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <child>
+                      <object class="GtkVPaned" id="vpaned1">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <child>
+                          <placeholder/>
+                        </child>
+                        <child>
+                          <object class="GtkVPaned" id="vpaned2">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <child>
+                              <object class="GtkScrolledWindow" id="center_wiindow">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                                <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                                <property name="shadow_type">GTK_SHADOW_IN</property>
+                                <child>
+                                  <placeholder/>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="resize">False</property>
+                                <property name="shrink">True</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <placeholder/>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="resize">True</property>
+                            <property name="shrink">True</property>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="resize">False</property>
+                        <property name="shrink">True</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <placeholder/>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="resize">True</property>
+                    <property name="shrink">True</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="right_attach">2</property>
+                <property name="top_attach">1</property>
+                <property name="bottom_attach">2</property>
+              </packing>
+            </child>
           </object>
           <packing>
             <property name="position">2</property>
@@ -420,4 +597,7 @@
       </object>
     </child>
   </object>
+  <object class="GtkMenu" constructor="uimanager2" id="navbar_popup_menu">
+    <property name="visible">True</property>
+  </object>
 </interface>
diff --git a/src/main_window_ui.h b/src/main_window_ui.h
index a6ba654..77dcab2 100644
--- a/src/main_window_ui.h
+++ b/src/main_window_ui.h
@@ -13,139 +13,197 @@ static const char main_window_ui[] =
   "><child><object class=\"GtkAction\" id=\"menuitem1\"><property name=\"n"
   "ame\">menuitem1</property><property name=\"label\" translatable=\"yes\""
   ">_File</property></object></child><child><object class=\"GtkAction\" id"
-  "=\"imagemenuitem1\"><property name=\"stock_id\" translatable=\"yes\">gt"
-  "k-new</property><property name=\"name\">imagemenuitem1</property></obje"
-  "ct></child><child><object class=\"GtkAction\" id=\"imagemenuitem2\"><pr"
-  "operty name=\"stock_id\" translatable=\"yes\">gtk-open</property><prope"
-  "rty name=\"name\">imagemenuitem2</property></object></child><child><obj"
-  "ect class=\"GtkAction\" id=\"imagemenuitem3\"><property name=\"stock_id"
-  "\" translatable=\"yes\">gtk-save</property><property name=\"name\">imag"
-  "emenuitem3</property></object></child><child><object class=\"GtkAction\""
-  " id=\"imagemenuitem4\"><property name=\"stock_id\" translatable=\"yes\""
-  ">gtk-save-as</property><property name=\"name\">imagemenuitem4</property"
-  "></object></child><child><object class=\"GtkAction\" id=\"imagemenuitem"
-  "5\"><property name=\"stock_id\" translatable=\"yes\">gtk-quit</property"
-  "><property name=\"name\">imagemenuitem5</property></object></child><chi"
-  "ld><object class=\"GtkAction\" id=\"menuitem2\"><property name=\"name\""
-  ">menuitem2</property><property name=\"label\" translatable=\"yes\">_Edi"
-  "t</property></object></child><child><object class=\"GtkAction\" id=\"im"
-  "agemenuitem6\"><property name=\"stock_id\" translatable=\"yes\">gtk-cut"
-  "</property><property name=\"name\">imagemenuitem6</property></object></"
-  "child><child><object class=\"GtkAction\" id=\"imagemenuitem7\"><propert"
-  "y name=\"stock_id\" translatable=\"yes\">gtk-copy</property><property n"
-  "ame=\"name\">imagemenuitem7</property></object></child><child><object c"
-  "lass=\"GtkAction\" id=\"imagemenuitem8\"><property name=\"stock_id\" tr"
-  "anslatable=\"yes\">gtk-paste</property><property name=\"name\">imagemen"
-  "uitem8</property></object></child><child><object class=\"GtkAction\" id"
-  "=\"imagemenuitem9\"><property name=\"stock_id\" translatable=\"yes\">gt"
-  "k-delete</property><property name=\"name\">imagemenuitem9</property></o"
-  "bject></child><child><object class=\"GtkAction\" id=\"menuitem3\"><prop"
-  "erty name=\"name\">menuitem3</property><property name=\"label\" transla"
-  "table=\"yes\">_View</property></object></child><child><object class=\"G"
-  "tkAction\" id=\"menuitem4\"><property name=\"name\">menuitem4</property"
-  "><property name=\"label\" translatable=\"yes\">_Help</property></object"
-  "></child><child><object class=\"GtkAction\" id=\"imagemenuitem10\"><pro"
-  "perty name=\"stock_id\" translatable=\"yes\">gtk-about</property><prope"
-  "rty name=\"name\">imagemenuitem10</property></object></child></object><"
-  "/child><ui><menubar name=\"menubar1\"><menu action=\"menuitem1\"><menui"
-  "tem action=\"imagemenuitem1\"/><menuitem action=\"imagemenuitem2\"/><me"
-  "nuitem action=\"imagemenuitem3\"/><menuitem action=\"imagemenuitem4\"/>"
-  "<separator/><menuitem action=\"imagemenuitem5\"/></menu><menu action=\""
-  "menuitem2\"><menuitem action=\"imagemenuitem6\"/><menuitem action=\"ima"
-  "gemenuitem7\"/><menuitem action=\"imagemenuitem8\"/><menuitem action=\""
-  "imagemenuitem9\"/></menu><menuitem action=\"menuitem3\"/><menu action=\""
-  "menuitem4\"><menuitem action=\"imagemenuitem10\"/></menu></menubar></ui"
-  "></object><object class=\"GtkWindow\" id=\"mainwindow\"><child><object "
-  "class=\"GtkVBox\" id=\"main_vbox\"><property name=\"visible\">True</pro"
-  "perty><child><object class=\"GtkMenuBar\" constructor=\"uimanager1\" id"
-  "=\"menubar1\"><property name=\"visible\">True</property></object><packi"
-  "ng><property name=\"expand\">False</property></packing></child><child><"
-  "object class=\"GtkToolbar\" id=\"toolbar1\"><property name=\"visible\">"
-  "True</property><child><object class=\"GtkToolButton\" id=\"toolbutton1\""
-  "><property name=\"visible\">True</property><property name=\"icon_name\""
-  ">document-open</property></object><packing><property name=\"homogeneous"
-  "\">True</property></packing></child><child><object class=\"GtkToolButto"
-  "n\" id=\"toolbutton2\"><property name=\"visible\">True</property><prope"
-  "rty name=\"icon_name\">folder-open</property></object><packing><propert"
+  "=\"menu_open_file\"><property name=\"name\">menu_open_file</property><p"
+  "roperty name=\"label\" translatable=\"yes\">_Open</property><signal han"
+  "dler=\"cb_open_file_activate\" name=\"activate\"/></object></child><chi"
+  "ld><object class=\"GtkAction\" id=\"menu_open_folder\"><property name=\""
+  "name\">menu_open_folder</property><property name=\"label\" translatable"
+  "=\"yes\">Open _folder</property></object></child><child><object class=\""
+  "GtkAction\" id=\"menu_open_recent\"><property name=\"name\">menu_open_r"
+  "ecent</property><property name=\"label\" translatable=\"yes\">Open _rec"
+  "ent</property></object></child><child><object class=\"GtkAction\" id=\""
+  "menu_save_copy\"><property name=\"stock_id\" translatable=\"yes\">gtk-s"
+  "ave-as</property><property name=\"name\">menu_save_copy</property></obj"
+  "ect></child><child><object class=\"GtkAction\" id=\"menuitem9\"><proper"
+  "ty name=\"stock_id\" translatable=\"yes\">gtk-print</property><property"
+  " name=\"name\">menuitem9</property></object></child><child><object clas"
+  "s=\"GtkAction\" id=\"close_file \"><property name=\"stock_id\" translat"
+  "able=\"yes\">gtk-close</property><property name=\"name\">close_file </p"
+  "roperty></object></child><child><object class=\"GtkAction\" id=\"close_"
+  "all\"><property name=\"name\">close_all</property><property name=\"labe"
+  "l\" translatable=\"yes\">Close _all</property></object></child><child><"
+  "object class=\"GtkAction\" id=\"quit\"><property name=\"stock_id\" tran"
+  "slatable=\"yes\">gtk-quit</property><property name=\"name\">quit</prope"
+  "rty><signal handler=\"gtk_main_quit\" name=\"activate\"/></object></chi"
+  "ld><child><object class=\"GtkAction\" id=\"menuitem2\"><property name=\""
+  "name\">menuitem2</property><property name=\"label\" translatable=\"yes\""
+  ">_Edit</property></object></child><child><object class=\"GtkAction\" id"
+  "=\"open_with\"><property name=\"name\">open_with</property><property na"
+  "me=\"label\" translatable=\"yes\">Open with</property></object></child>"
+  "<child><object class=\"GtkAction\" id=\"menuitem13\"><property name=\"s"
+  "tock_id\" translatable=\"yes\">gtk-delete</property><property name=\"na"
+  "me\">menuitem13</property></object></child><child><object class=\"GtkAc"
+  "tion\" id=\"preferences\"><property name=\"stock_id\" translatable=\"ye"
+  "s\">gtk-preferences</property><property name=\"name\">preferences</prop"
+  "erty></object></child><child><object class=\"GtkAction\" id=\"menuitem3"
+  "\"><property name=\"name\">menuitem3</property><property name=\"label\""
+  " translatable=\"yes\">_View</property></object></child><child><object c"
+  "lass=\"GtkToggleAction\" id=\"menuitem15\"><property name=\"name\">menu"
+  "item15</property><property name=\"label\" translatable=\"yes\">Show Fil"
+  "e Toolbar</property></object></child><child><object class=\"GtkToggleAc"
+  "tion\" id=\"menuitem16\"><property name=\"name\">menuitem16</property><"
+  "property name=\"label\" translatable=\"yes\">Show Navigation Toolbar</p"
+  "roperty></object></child><child><object class=\"GtkToggleAction\" id=\""
+  "menuitem17\"><property name=\"name\">menuitem17</property><property nam"
+  "e=\"label\" translatable=\"yes\">Show ThumbnailBar</property></object><"
+  "/child><child><object class=\"GtkAction\" id=\"menuitem18\"><property n"
+  "ame=\"name\">menuitem18</property><property name=\"label\" translatable"
+  "=\"yes\">Zooming</property></object></child><child><object class=\"GtkA"
+  "ction\" id=\"menuitem19\"><property name=\"name\">menuitem19</property>"
+  "<property name=\"label\" translatable=\"yes\">Zoom fit</property></obje"
+  "ct></child><child><object class=\"GtkAction\" id=\"menuitem20\"><proper"
+  "ty name=\"name\">menuitem20</property><property name=\"label\" translat"
+  "able=\"yes\">Zoom 100%</property></object></child><child><object class="
+  "\"GtkAction\" id=\"menuitem21\"><property name=\"name\">menuitem21</pro"
+  "perty><property name=\"label\" translatable=\"yes\">Zoom in</property><"
+  "/object></child><child><object class=\"GtkAction\" id=\"menuitem22\"><p"
+  "roperty name=\"name\">menuitem22</property><property name=\"label\" tra"
+  "nslatable=\"yes\">Zoom out</property></object></child><child><object cl"
+  "ass=\"GtkAction\" id=\"menuitem23\"><property name=\"name\">menuitem23<"
+  "/property><property name=\"label\" translatable=\"yes\">Rotation</prope"
+  "rty></object></child><child><object class=\"GtkAction\" id=\"menuitem24"
+  "\"><property name=\"name\">menuitem24</property><property name=\"label\""
+  " translatable=\"yes\">Rotate left</property></object></child><child><ob"
+  "ject class=\"GtkAction\" id=\"menuitem25\"><property name=\"name\">menu"
+  "item25</property><property name=\"label\" translatable=\"yes\">Rotate r"
+  "ight</property></object></child><child><object class=\"GtkAction\" id=\""
+  "menuitem26\"><property name=\"stock_id\" translatable=\"yes\">gtk-fulls"
+  "creen</property><property name=\"name\">menuitem26</property></object><"
+  "/child><child><object class=\"GtkAction\" id=\"menuitem27\"><property n"
+  "ame=\"name\">menuitem27</property><property name=\"label\" translatable"
+  "=\"yes\">Set as wallpaper</property></object></child><child><object cla"
+  "ss=\"GtkAction\" id=\"menuitem4\"><property name=\"name\">menuitem4</pr"
+  "operty><property name=\"label\" translatable=\"yes\">_Help</property></"
+  "object></child><child><object class=\"GtkAction\" id=\"imagemenuitem10\""
+  "><property name=\"stock_id\" translatable=\"yes\">gtk-about</property><"
+  "property name=\"name\">imagemenuitem10</property></object></child></obj"
+  "ect></child><ui><menubar name=\"menubar1\"><menu action=\"menuitem1\"><"
+  "menuitem action=\"menu_open_file\"/><menuitem action=\"menu_open_folder"
+  "\"/><menuitem action=\"menu_open_recent\"/><separator/><menuitem action"
+  "=\"menu_save_copy\"/><separator/><menuitem action=\"menuitem9\"/><separ"
+  "ator/><menuitem action=\"close_file \"/><menuitem action=\"close_all\"/"
+  "><menuitem action=\"quit\"/></menu><menu action=\"menuitem2\"><menuitem"
+  " action=\"open_with\"/><separator/><menuitem action=\"menuitem13\"/><se"
+  "parator/><menuitem action=\"preferences\"/></menu><menu action=\"menuit"
+  "em3\"><menuitem action=\"menuitem15\"/><menuitem action=\"menuitem16\"/"
+  "><menuitem action=\"menuitem17\"/><separator/><menu action=\"menuitem18"
+  "\"><menuitem action=\"menuitem19\"/><menuitem action=\"menuitem20\"/><m"
+  "enuitem action=\"menuitem21\"/><menuitem action=\"menuitem22\"/></menu>"
+  "<menu action=\"menuitem23\"><menuitem action=\"menuitem24\"/><menuitem "
+  "action=\"menuitem25\"/></menu><separator/><menuitem action=\"menuitem26"
+  "\"/><menuitem action=\"menuitem27\"/></menu><menu action=\"menuitem4\">"
+  "<menuitem action=\"imagemenuitem10\"/></menu></menubar></ui></object><o"
+  "bject class=\"GtkUIManager\" id=\"uimanager2\"><child><object class=\"G"
+  "tkActionGroup\" id=\"actiongroup2\"><child><object class=\"GtkAction\" "
+  "id=\"menuitem30\"><property name=\"name\">menuitem30</property><propert"
+  "y name=\"label\" translatable=\"yes\">Position</property></object></chi"
+  "ld><child><object class=\"GtkRadioAction\" id=\"menuitem_navbar_pos_lef"
+  "t\"><property name=\"active\">True</property><property name=\"name\">me"
+  "nuitem_navbar_pos_left</property><property name=\"label\" translatable="
+  "\"yes\">_Left</property><signal handler=\"cb_menuitem_navbar_pos_left_t"
+  "oggled\" name=\"toggled\"/></object></child><child><object class=\"GtkR"
+  "adioAction\" id=\"menuitem_navbar_pos_right\"><property name=\"group\">"
+  "menuitem_navbar_pos_left</property><property name=\"name\">menuitem_nav"
+  "bar_pos_right</property><property name=\"label\" translatable=\"yes\">_"
+  "Right</property><signal handler=\"cb_menuitem_navbar_pos_right_toggled\""
+  " name=\"toggled\"/></object></child><child><object class=\"GtkRadioActi"
+  "on\" id=\"menuitem_navbar_pos_top\"><property name=\"group\">menuitem_n"
+  "avbar_pos_left</property><property name=\"name\">menuitem_navbar_pos_to"
+  "p</property><property name=\"label\" translatable=\"yes\">_Top</propert"
+  "y><signal handler=\"cb_menuitem_navbar_pos_top_toggled\" name=\"toggled"
+  "\"/></object></child><child><object class=\"GtkRadioAction\" id=\"menui"
+  "tem_navbar_pos_bottom\"><property name=\"group\">menuitem_navbar_pos_le"
+  "ft</property><property name=\"name\">menuitem_navbar_pos_bottom</proper"
+  "ty><property name=\"label\" translatable=\"yes\">_Bottom</property><sig"
+  "nal handler=\"cb_menuitem_navbar_pos_bottom_toggled\" name=\"toggled\"/"
+  "></object></child></object></child><ui><popup name=\"navbar_popup_menu\""
+  "><menu action=\"menuitem30\"><menuitem action=\"menuitem_navbar_pos_lef"
+  "t\"/><menuitem action=\"menuitem_navbar_pos_right\"/><menuitem action=\""
+  "menuitem_navbar_pos_top\"/><menuitem action=\"menuitem_navbar_pos_botto"
+  "m\"/></menu></popup></ui></object><object class=\"GtkWindow\" id=\"main"
+  "window\"><property name=\"title\" translatable=\"yes\">Image Viewer</pr"
+  "operty><property name=\"icon_name\">ristretto</property><property name="
+  "\"type_hint\">GDK_WINDOW_TYPE_HINT_DIALOG</property><child><object clas"
+  "s=\"GtkVBox\" id=\"vbox1\"><property name=\"visible\">True</property><c"
+  "hild><object class=\"GtkMenuBar\" constructor=\"uimanager1\" id=\"menub"
+  "ar1\"><property name=\"visible\">True</property></object><packing><prop"
+  "erty name=\"expand\">False</property></packing></child><child><object c"
+  "lass=\"GtkToolbar\" id=\"toolbar1\"><property name=\"visible\">True</pr"
+  "operty><child><object class=\"GtkToolButton\" id=\"open_fil\"><property"
+  " name=\"visible\">True</property><property name=\"icon_name\">document-"
+  "open</property></object><packing><property name=\"homogeneous\">True</p"
+  "roperty></packing></child><child><object class=\"GtkToolButton\" id=\"o"
+  "pen_folder \"><property name=\"visible\">True</property><property name="
+  "\"icon_name\">folder-open</property></object><packing><property name=\""
+  "homogeneous\">True</property></packing></child><child><object class=\"G"
+  "tkSeparatorToolItem\" id=\"toolbutton3\"><property name=\"visible\">Tru"
+  "e</property></object><packing><property name=\"homogeneous\">True</prop"
+  "erty></packing></child><child><object class=\"GtkToolButton\" id=\"save"
+  "_copy\"><property name=\"visible\">True</property><property name=\"stoc"
+  "k_id\">gtk-save-as</property></object><packing><property name=\"homogen"
+  "eous\">True</property></packing></child><child><object class=\"GtkToolB"
+  "utton\" id=\"close_file\"><property name=\"visible\">True</property><pr"
+  "operty name=\"stock_id\">gtk-close</property></object><packing><propert"
   "y name=\"homogeneous\">True</property></packing></child><child><object "
-  "class=\"GtkSeparatorToolItem\" id=\"toolbutton3\"><property name=\"visi"
-  "ble\">True</property></object><packing><property name=\"homogeneous\">T"
-  "rue</property></packing></child><child><object class=\"GtkToolButton\" "
-  "id=\"toolbutton4\"><property name=\"visible\">True</property><property "
-  "name=\"stock_id\">gtk-save-as</property></object><packing><property nam"
+  "class=\"GtkToolButton\" id=\"delete_file\"><property name=\"visible\">T"
+  "rue</property><property name=\"stock_id\">gtk-delete</property></object"
+  "><packing><property name=\"homogeneous\">True</property></packing></chi"
+  "ld></object><packing><property name=\"expand\">False</property><propert"
+  "y name=\"position\">1</property></packing></child><child><object class="
+  "\"GtkTable\" id=\"main_table\"><property name=\"visible\">True</propert"
+  "y><property name=\"n_rows\">3</property><property name=\"n_columns\">3<"
+  "/property><child><placeholder/></child><child><placeholder/></child><ch"
+  "ild><placeholder/></child><child><placeholder/></child><child><placehol"
+  "der/></child><child><object class=\"GtkToolbar\" id=\"navbox\"><propert"
+  "y name=\"visible\">True</property><property name=\"orientation\">GTK_OR"
+  "IENTATION_VERTICAL</property><signal handler=\"cb_navbox_button_press_e"
+  "vent\" name=\"button_press_event\"/><signal handler=\"cb_navbox_popup_c"
+  "ontext_menu\" name=\"popup_context_menu\"/><child><object class=\"GtkTo"
+  "olButton\" id=\"btn_previous_image\"><property name=\"visible\">True</p"
+  "roperty><property name=\"stock_id\">gtk-go-up</property><signal handler"
+  "=\"cb_btn_previous_image_clicked\" name=\"clicked\"/></object><packing>"
+  "<property name=\"homogeneous\">True</property></packing></child><child>"
+  "<object class=\"GtkToolButton\" id=\"btn_play_slideshow\"><property nam"
+  "e=\"visible\">True</property><property name=\"stock_id\">gtk-media-play"
+  "</property></object><packing><property name=\"homogeneous\">True</prope"
+  "rty></packing></child><child><object class=\"GtkToolButton\" id=\"btn_n"
+  "ext_image\"><property name=\"visible\">True</property><property name=\""
+  "stock_id\">gtk-go-down</property><signal handler=\"cb_btn_next_image_cl"
+  "icked\" name=\"clicked\"/></object><packing><property name=\"homogeneou"
+  "s\">True</property></packing></child><child><object class=\"GtkSeparato"
+  "rToolItem\" id=\"toolbutton8\"><property name=\"visible\">True</propert"
+  "y><property name=\"draw\">False</property></object><packing><property n"
+  "ame=\"expand\">True</property></packing></child><child><object class=\""
+  "GtkToolButton\" id=\"btn_rotate_left\"><property name=\"visible\">True<"
+  "/property><property name=\"icon_name\">object-rotate-left</property></o"
+  "bject><packing><property name=\"homogeneous\">True</property></packing>"
+  "</child><child><object class=\"GtkToolButton\" id=\"btn_rotate_right\">"
+  "<property name=\"visible\">True</property><property name=\"icon_name\">"
+  "object-rotate-right</property></object><packing><property name=\"homoge"
+  "neous\">True</property></packing></child><child><object class=\"GtkSepa"
+  "ratorToolItem\" id=\"toolbutton11\"><property name=\"visible\">True</pr"
+  "operty></object><packing><property name=\"homogeneous\">True</property>"
+  "</packing></child><child><object class=\"GtkToolButton\" id=\"btn_zoom_"
+  "in\"><property name=\"visible\">True</property><property name=\"icon_na"
+  "me\">zoom-in</property></object><packing><property name=\"homogeneous\""
+  ">True</property></packing></child><child><object class=\"GtkToolButton\""
+  " id=\"btn_zoom_out\"><property name=\"visible\">True</property><propert"
+  "y name=\"icon_name\">zoom-out</property></object><packing><property nam"
   "e=\"homogeneous\">True</property></packing></child><child><object class"
-  "=\"GtkToolButton\" id=\"toolbutton5\"><property name=\"visible\">True</"
-  "property><property name=\"stock_id\">gtk-close</property></object><pack"
-  "ing><property name=\"homogeneous\">True</property></packing></child><ch"
-  "ild><object class=\"GtkToolButton\" id=\"toolbutton7\"><property name=\""
-  "visible\">True</property><property name=\"stock_id\">gtk-delete</proper"
-  "ty></object><packing><property name=\"homogeneous\">True</property></pa"
-  "cking></child></object><packing><property name=\"expand\">False</proper"
-  "ty><property name=\"position\">1</property></packing></child><child><ob"
-  "ject class=\"GtkTable\" id=\"main_table\"><property name=\"visible\">Tr"
-  "ue</property><property name=\"n_rows\">3</property><property name=\"n_c"
-  "olumns\">3</property><child><placeholder/></child><child><placeholder/>"
-  "</child><child><placeholder/></child><child><placeholder/></child><chil"
-  "d><placeholder/></child><child><object class=\"GtkHPaned\" id=\"hpaned1"
-  "\"><property name=\"visible\">True</property><property name=\"can_focus"
-  "\">True</property><child><placeholder/></child><child><object class=\"G"
-  "tkHPaned\" id=\"hpaned2\"><property name=\"visible\">True</property><pr"
-  "operty name=\"can_focus\">True</property><child><object class=\"GtkVPan"
-  "ed\" id=\"vpaned1\"><property name=\"visible\">True</property><property"
-  " name=\"can_focus\">True</property><child><placeholder/></child><child>"
-  "<object class=\"GtkVPaned\" id=\"vpaned2\"><property name=\"visible\">T"
-  "rue</property><property name=\"can_focus\">True</property><child><objec"
-  "t class=\"GtkScrolledWindow\" id=\"center_wiindow\"><property name=\"vi"
-  "sible\">True</property><property name=\"can_focus\">True</property><pro"
-  "perty name=\"hscrollbar_policy\">GTK_POLICY_AUTOMATIC</property><proper"
-  "ty name=\"vscrollbar_policy\">GTK_POLICY_AUTOMATIC</property><property "
-  "name=\"shadow_type\">GTK_SHADOW_IN</property><child><placeholder/></chi"
-  "ld></object><packing><property name=\"resize\">False</property><propert"
-  "y name=\"shrink\">True</property></packing></child><child><placeholder/"
-  "></child></object><packing><property name=\"resize\">True</property><pr"
-  "operty name=\"shrink\">True</property></packing></child></object><packi"
-  "ng><property name=\"resize\">False</property><property name=\"shrink\">"
-  "True</property></packing></child><child><placeholder/></child></object>"
-  "<packing><property name=\"resize\">True</property><property name=\"shri"
-  "nk\">True</property></packing></child></object><packing><property name="
-  "\"left_attach\">1</property><property name=\"right_attach\">2</property"
-  "><property name=\"top_attach\">1</property><property name=\"bottom_atta"
-  "ch\">2</property></packing></child><child><object class=\"GtkToolbar\" "
-  "id=\"navbox\"><property name=\"visible\">True</property><property name="
-  "\"orientation\">GTK_ORIENTATION_VERTICAL</property><child><object class"
-  "=\"GtkToolButton\" id=\"btn_previous_image\"><property name=\"visible\""
-  ">True</property><property name=\"stock_id\">gtk-go-up</property></objec"
-  "t><packing><property name=\"homogeneous\">True</property></packing></ch"
-  "ild><child><object class=\"GtkToolButton\" id=\"toolbutton6\"><property"
-  " name=\"visible\">True</property><property name=\"stock_id\">gtk-media-"
-  "play</property></object><packing><property name=\"homogeneous\">True</p"
-  "roperty></packing></child><child><object class=\"GtkToolButton\" id=\"b"
-  "tn_next_image\"><property name=\"visible\">True</property><property nam"
-  "e=\"stock_id\">gtk-go-down</property></object><packing><property name=\""
-  "homogeneous\">True</property></packing></child><child><object class=\"G"
-  "tkSeparatorToolItem\" id=\"toolbutton8\"><property name=\"visible\">Tru"
-  "e</property><property name=\"draw\">False</property></object><packing><"
-  "property name=\"expand\">True</property></packing></child><child><objec"
-  "t class=\"GtkToolButton\" id=\"toolbutton9\"><property name=\"visible\""
-  ">True</property><property name=\"icon_name\">object-rotate-left</proper"
-  "ty></object><packing><property name=\"homogeneous\">True</property></pa"
-  "cking></child><child><object class=\"GtkToolButton\" id=\"toolbutton10\""
-  "><property name=\"visible\">True</property><property name=\"icon_name\""
-  ">object-rotate-right</property></object><packing><property name=\"homog"
-  "eneous\">True</property></packing></child><child><object class=\"GtkSep"
-  "aratorToolItem\" id=\"toolbutton11\"><property name=\"visible\">True</p"
-  "roperty></object><packing><property name=\"homogeneous\">True</property"
-  "></packing></child><child><object class=\"GtkToolButton\" id=\"toolbutt"
-  "on12\"><property name=\"visible\">True</property><property name=\"icon_"
-  "name\">zoom-in</property></object><packing><property name=\"homogeneous"
-  "\">True</property></packing></child><child><object class=\"GtkToolButto"
-  "n\" id=\"toolbutton13\"><property name=\"visible\">True</property><prop"
-  "erty name=\"icon_name\">zoom-out</property></object><packing><property "
-  "name=\"homogeneous\">True</property></packing></child><child><object cl"
-  "ass=\"GtkToolButton\" id=\"toolbutton14\"><property name=\"visible\">Tr"
+  "=\"GtkToolButton\" id=\"btn_zoom_origin\"><property name=\"visible\">Tr"
   "ue</property><property name=\"icon_name\">zoom-original</property></obj"
   "ect><packing><property name=\"homogeneous\">True</property></packing></"
-  "child><child><object class=\"GtkToolButton\" id=\"toolbutton15\"><prope"
+  "child><child><object class=\"GtkToolButton\" id=\"btn_zoom_fit\"><prope"
   "rty name=\"visible\">True</property><property name=\"icon_name\">zoom-f"
   "it-best</property></object><packing><property name=\"homogeneous\">True"
   "</property></packing></child><child><object class=\"GtkSeparatorToolIte"
@@ -156,13 +214,39 @@ static const char main_window_ui[] =
   "lscreen</property></object><packing><property name=\"homogeneous\">True"
   "</property></packing></child></object><packing><property name=\"bottom_"
   "attach\">3</property><property name=\"x_options\">GTK_FILL</property></"
-  "packing></child></object><packing><property name=\"position\">2</proper"
-  "ty></packing></child><child><object class=\"GtkStatusbar\" id=\"statusb"
-  "ar1\"><property name=\"visible\">True</property><property name=\"spacin"
-  "g\">2</property></object><packing><property name=\"expand\">False</prop"
-  "erty><property name=\"position\">3</property></packing></child></object"
-  "></child></object></interface>"
+  "packing></child><child><object class=\"GtkHPaned\" id=\"hpaned1\"><prop"
+  "erty name=\"visible\">True</property><property name=\"can_focus\">True<"
+  "/property><child><placeholder/></child><child><object class=\"GtkHPaned"
+  "\" id=\"hpaned2\"><property name=\"visible\">True</property><property n"
+  "ame=\"can_focus\">True</property><child><object class=\"GtkVPaned\" id="
+  "\"vpaned1\"><property name=\"visible\">True</property><property name=\""
+  "can_focus\">True</property><child><placeholder/></child><child><object "
+  "class=\"GtkVPaned\" id=\"vpaned2\"><property name=\"visible\">True</pro"
+  "perty><property name=\"can_focus\">True</property><child><object class="
+  "\"GtkScrolledWindow\" id=\"center_wiindow\"><property name=\"visible\">"
+  "True</property><property name=\"can_focus\">True</property><property na"
+  "me=\"hscrollbar_policy\">GTK_POLICY_AUTOMATIC</property><property name="
+  "\"vscrollbar_policy\">GTK_POLICY_AUTOMATIC</property><property name=\"s"
+  "hadow_type\">GTK_SHADOW_IN</property><child><placeholder/></child></obj"
+  "ect><packing><property name=\"resize\">False</property><property name=\""
+  "shrink\">True</property></packing></child><child><placeholder/></child>"
+  "</object><packing><property name=\"resize\">True</property><property na"
+  "me=\"shrink\">True</property></packing></child></object><packing><prope"
+  "rty name=\"resize\">False</property><property name=\"shrink\">True</pro"
+  "perty></packing></child><child><placeholder/></child></object><packing>"
+  "<property name=\"resize\">True</property><property name=\"shrink\">True"
+  "</property></packing></child></object><packing><property name=\"left_at"
+  "tach\">1</property><property name=\"right_attach\">2</property><propert"
+  "y name=\"top_attach\">1</property><property name=\"bottom_attach\">2</p"
+  "roperty></packing></child></object><packing><property name=\"position\""
+  ">2</property></packing></child><child><object class=\"GtkStatusbar\" id"
+  "=\"statusbar1\"><property name=\"visible\">True</property><property nam"
+  "e=\"spacing\">2</property></object><packing><property name=\"expand\">F"
+  "alse</property><property name=\"position\">3</property></packing></chil"
+  "d></object></child></object><object class=\"GtkMenu\" constructor=\"uim"
+  "anager2\" id=\"navbar_popup_menu\"><property name=\"visible\">True</pro"
+  "perty></object></interface>"
 };
 
-static const unsigned main_window_ui_length = 10399u;
+static const unsigned main_window_ui_length = 16052u;
 



More information about the Xfce4-commits mailing list