[Xfce4-commits] <ristretto:stephan/icon-bar> Make sure the scrolled-window is toggled instead of the icon-bar

Stephan Arts noreply at xfce.org
Tue Jan 17 19:48:01 CET 2012


Updating branch refs/heads/stephan/icon-bar
         to b047e7f031a80a38df626599c42803737f942329 (commit)
       from 0323aa33cd49db6f435816be75a8a01c51df583d (commit)

commit b047e7f031a80a38df626599c42803737f942329
Author: Stephan Arts <stephan at xfce.org>
Date:   Sun Jan 15 07:55:43 2012 +0100

    Make sure the scrolled-window is toggled instead of the icon-bar

 src/main_window.c |   59 +++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 48 insertions(+), 11 deletions(-)

diff --git a/src/main_window.c b/src/main_window.c
index e46459e..d7c68da 100644
--- a/src/main_window.c
+++ b/src/main_window.c
@@ -142,6 +142,11 @@ key_press_event (
         GtkWidget *widget,
         GdkEventKey *event);
 
+static void
+cb_icon_bar_selection_changed (
+        ExoIconBar *icon_bar,
+        gpointer user_data);
+
 static gboolean
 rstto_window_save_geometry_timer (gpointer user_data);
 
@@ -203,7 +208,7 @@ static void
 cb_rstto_main_window_sorting_function_changed (GtkRadioAction *action, GtkRadioAction *current,  RsttoMainWindow *window);
 static void
 cb_rstto_main_window_navigationtoolbar_position_changed (GtkRadioAction *, GtkRadioAction *,  RsttoMainWindow *window);
-static void
+static gboolean
 cb_rstto_main_window_navigationtoolbar_button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data);
 static void
 cb_rstto_main_window_update_statusbar (GtkWidget *widget, RsttoMainWindow *window);
@@ -617,6 +622,9 @@ rstto_main_window_init (RsttoMainWindow *window)
         GTK_MENU(window->priv->image_viewer_menu));
 
     window->priv->thumbnailbar = exo_icon_bar_new();
+    exo_icon_bar_set_show_text (EXO_ICON_BAR (window->priv->thumbnailbar), FALSE);
+
+    g_signal_connect(G_OBJECT(window->priv->thumbnailbar), "selection-changed", G_CALLBACK(cb_icon_bar_selection_changed), window);
 
     window->priv->t_bar_s_window = gtk_scrolled_window_new (NULL, NULL);
     gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (window->priv->t_bar_s_window), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
@@ -624,6 +632,7 @@ rstto_main_window_init (RsttoMainWindow *window)
 
     exo_icon_bar_set_text_column (EXO_ICON_BAR (window->priv->thumbnailbar), 0);
     exo_icon_bar_set_pixbuf_column (EXO_ICON_BAR (window->priv->thumbnailbar), 1);
+    exo_icon_bar_set_item_width (EXO_ICON_BAR (window->priv->thumbnailbar), 96);
 
     window->priv->hpaned_left = gtk_hpaned_new();
     window->priv->hpaned_right = gtk_hpaned_new();
@@ -658,6 +667,8 @@ rstto_main_window_init (RsttoMainWindow *window)
     gtk_widget_set_no_show_all (window->priv->toolbar, TRUE);
     gtk_widget_set_no_show_all (window->priv->image_list_toolbar, TRUE);
     gtk_widget_set_no_show_all (window->priv->t_bar_s_window, TRUE);
+    gtk_widget_show_all (window->priv->thumbnailbar);
+
     gtk_widget_set_no_show_all ( gtk_ui_manager_get_widget (window->priv->ui_manager, "/main-menu/view-menu/show-nav-toolbar"), TRUE);
 
     rstto_main_window_set_navigationbar_position (window, navigationbar_position);
@@ -737,7 +748,7 @@ rstto_main_window_init (RsttoMainWindow *window)
                 GTK_CHECK_MENU_ITEM (
                         gtk_ui_manager_get_widget (window->priv->ui_manager, "/main-menu/view-menu/show-thumbnailbar")),
                 TRUE);
-        gtk_widget_show (window->priv->thumbnailbar);
+        gtk_widget_show (window->priv->t_bar_s_window);
     }
     else
     {
@@ -745,7 +756,7 @@ rstto_main_window_init (RsttoMainWindow *window)
                 GTK_CHECK_MENU_ITEM (
                         gtk_ui_manager_get_widget (window->priv->ui_manager, "/main-menu/view-menu/show-thumbnailbar")),
                 FALSE);
-        gtk_widget_hide (window->priv->thumbnailbar);
+        gtk_widget_hide (window->priv->t_bar_s_window);
     }
 
     /**
@@ -986,6 +997,8 @@ rstto_main_window_image_list_iter_changed (RsttoMainWindow *window)
         cur_file = rstto_image_list_iter_get_file (window->priv->iter);
         if (NULL != cur_file)
         {
+            exo_icon_bar_set_active (EXO_ICON_BAR (window->priv->thumbnailbar), position);
+            exo_icon_bar_show_active (EXO_ICON_BAR (window->priv->thumbnailbar));
             content_type  = rstto_file_get_content_type (cur_file);
 
             rstto_image_viewer_set_file (
@@ -1159,7 +1172,7 @@ rstto_main_window_update_buttons (RsttoMainWindow *window)
                     gtk_widget_show (window->priv->toolbar);
                 }
             }
-            gtk_widget_hide (window->priv->thumbnailbar);
+            gtk_widget_hide (window->priv->t_bar_s_window);
             gtk_widget_set_sensitive ( gtk_ui_manager_get_widget ( window->priv->ui_manager, "/main-menu/file-menu/save-copy"), FALSE);
             /*
             gtk_widget_set_sensitive ( gtk_ui_manager_get_widget ( window->priv->ui_manager, "/main-menu/file-menu/print"), FALSE);
@@ -1259,7 +1272,7 @@ rstto_main_window_update_buttons (RsttoMainWindow *window)
             {
                 if ( 0 == (gdk_window_get_state (GTK_WIDGET (window)->window) & GDK_WINDOW_STATE_FULLSCREEN ))
                 {
-                    gtk_widget_show (window->priv->thumbnailbar);
+                    gtk_widget_show (window->priv->t_bar_s_window);
                 }
                 else
                 {
@@ -1267,11 +1280,11 @@ rstto_main_window_update_buttons (RsttoMainWindow *window)
                             window->priv->settings_manager,
                             "hide-thumbnailbar-fullscreen"))
                     {
-                        gtk_widget_hide (window->priv->thumbnailbar);
+                        gtk_widget_hide (window->priv->t_bar_s_window);
                     }
                     else
                     {
-                        gtk_widget_show (window->priv->thumbnailbar);
+                        gtk_widget_show (window->priv->t_bar_s_window);
                     }
                 
                 }
@@ -1386,7 +1399,7 @@ rstto_main_window_update_buttons (RsttoMainWindow *window)
             {
                 if ( 0 == (gdk_window_get_state (GTK_WIDGET (window)->window) & GDK_WINDOW_STATE_FULLSCREEN ))
                 {
-                    gtk_widget_show (window->priv->thumbnailbar);
+                    gtk_widget_show (window->priv->t_bar_s_window);
                 }
                 else
                 {
@@ -1394,11 +1407,11 @@ rstto_main_window_update_buttons (RsttoMainWindow *window)
                             window->priv->settings_manager,
                             "hide-thumbnailbar-fullscreen"))
                     {
-                        gtk_widget_hide (window->priv->thumbnailbar);
+                        gtk_widget_hide (window->priv->t_bar_s_window);
                     }
                     else
                     {
-                        gtk_widget_show (window->priv->thumbnailbar);
+                        gtk_widget_show (window->priv->t_bar_s_window);
                     }
                 
                 }
@@ -1788,6 +1801,8 @@ rstto_main_window_set_navigationbar_position (RsttoMainWindow *window, guint ori
 
             gtk_container_remove (GTK_CONTAINER (gtk_widget_get_parent (window->priv->t_bar_s_window)), window->priv->t_bar_s_window);
             gtk_paned_pack1 (GTK_PANED (window->priv->hpaned_left), window->priv->t_bar_s_window, FALSE, FALSE);
+            gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (window->priv->t_bar_s_window), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
+            gtk_scrolled_window_set_placement (GTK_SCROLLED_WINDOW (window->priv->t_bar_s_window), GTK_CORNER_BOTTOM_RIGHT);
 
             gtk_container_remove (GTK_CONTAINER (window->priv->table), window->priv->image_list_toolbar);
             gtk_table_attach (GTK_TABLE (window->priv->table), window->priv->image_list_toolbar, 0, 1, 0, 3, GTK_FILL, GTK_EXPAND|GTK_FILL, 0, 0);
@@ -1804,6 +1819,8 @@ rstto_main_window_set_navigationbar_position (RsttoMainWindow *window, guint ori
 
             gtk_container_remove (GTK_CONTAINER (gtk_widget_get_parent (window->priv->t_bar_s_window)), window->priv->t_bar_s_window);
             gtk_paned_pack2 (GTK_PANED (window->priv->hpaned_right), window->priv->t_bar_s_window, FALSE, FALSE);
+            gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (window->priv->t_bar_s_window), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
+            gtk_scrolled_window_set_placement (GTK_SCROLLED_WINDOW (window->priv->t_bar_s_window), GTK_CORNER_BOTTOM_LEFT);
 
             gtk_container_remove (GTK_CONTAINER (window->priv->table), window->priv->image_list_toolbar);
             gtk_table_attach (GTK_TABLE (window->priv->table), window->priv->image_list_toolbar, 2, 3, 0, 3, GTK_FILL,GTK_EXPAND|GTK_FILL, 0, 0);
@@ -1820,6 +1837,8 @@ rstto_main_window_set_navigationbar_position (RsttoMainWindow *window, guint ori
 
             gtk_container_remove (GTK_CONTAINER (gtk_widget_get_parent (window->priv->t_bar_s_window)), window->priv->t_bar_s_window);
             gtk_paned_pack1 (GTK_PANED (window->priv->vpaned_top), window->priv->t_bar_s_window, FALSE, FALSE);
+            gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (window->priv->t_bar_s_window), GTK_POLICY_AUTOMATIC, GTK_POLICY_NEVER);
+            gtk_scrolled_window_set_placement (GTK_SCROLLED_WINDOW (window->priv->t_bar_s_window), GTK_CORNER_BOTTOM_RIGHT);
 
             gtk_container_remove (GTK_CONTAINER (window->priv->table), window->priv->image_list_toolbar);
             gtk_table_attach (GTK_TABLE (window->priv->table), window->priv->image_list_toolbar, 0, 3, 0, 1, GTK_EXPAND|GTK_FILL,GTK_FILL, 0, 0);
@@ -1835,6 +1854,8 @@ rstto_main_window_set_navigationbar_position (RsttoMainWindow *window, guint ori
 
             gtk_container_remove (GTK_CONTAINER (gtk_widget_get_parent (window->priv->t_bar_s_window)), window->priv->t_bar_s_window);
             gtk_paned_pack2 (GTK_PANED (window->priv->vpaned_bottom), window->priv->t_bar_s_window, FALSE, FALSE);
+            gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (window->priv->t_bar_s_window), GTK_POLICY_AUTOMATIC, GTK_POLICY_NEVER);
+            gtk_scrolled_window_set_placement (GTK_SCROLLED_WINDOW (window->priv->t_bar_s_window), GTK_CORNER_TOP_RIGHT);
 
             gtk_container_remove (GTK_CONTAINER (window->priv->table), window->priv->image_list_toolbar);
             gtk_table_attach (GTK_TABLE (window->priv->table), window->priv->image_list_toolbar, 0, 3, 2, 3, GTK_EXPAND|GTK_FILL,GTK_FILL, 0, 0);
@@ -1853,7 +1874,7 @@ rstto_main_window_set_navigationbar_position (RsttoMainWindow *window, guint ori
 /**                    **/
 /************************/
 
-static void
+static gboolean
 cb_rstto_main_window_navigationtoolbar_button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data)
 {
     int button, event_time;
@@ -1877,6 +1898,7 @@ cb_rstto_main_window_navigationtoolbar_button_press_event (GtkWidget *widget, Gd
         gtk_menu_popup (GTK_MENU (menu), NULL, NULL, NULL, NULL, 
                   button, event_time);
     }
+    return FALSE;
 }
 
 static void
@@ -3513,3 +3535,18 @@ cb_rstto_desktop_type_changed (
     rstto_main_window_update_buttons (window);
 }
 
+
+static void
+cb_icon_bar_selection_changed (
+        ExoIconBar *icon_bar,
+        gpointer user_data)
+{
+    RsttoMainWindow *window = RSTTO_MAIN_WINDOW (user_data);
+    gint position = rstto_image_list_iter_get_position (window->priv->iter);
+    gint selection = exo_icon_bar_get_active (EXO_ICON_BAR(window->priv->thumbnailbar));
+
+    if (position != selection )
+    {
+        rstto_image_list_iter_set_position (window->priv->iter, selection);
+    }
+}


More information about the Xfce4-commits mailing list