[Xfce4-commits] <ristretto:ristretto-0.0> Place navigation-toolbar and thumbnail-bar next to eachother, regardless of orientation

Stephan Arts noreply at xfce.org
Sun Oct 23 19:20:15 CEST 2011


Updating branch refs/heads/ristretto-0.0
         to 1f629afbfbf65b23fd27e97fae36cc47c5002f2e (commit)
       from 3f2f75e12dad09580ab774901b9f09151d3565eb (commit)

commit 1f629afbfbf65b23fd27e97fae36cc47c5002f2e
Author: Stephan Arts <stephan at xfce.org>
Date:   Sun Aug 30 11:36:48 2009 +0200

    Place navigation-toolbar and thumbnail-bar next to eachother, regardless of orientation

 src/main_window.c |   90 +++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 84 insertions(+), 6 deletions(-)

diff --git a/src/main_window.c b/src/main_window.c
index 4e8078c..30cb546 100644
--- a/src/main_window.c
+++ b/src/main_window.c
@@ -77,7 +77,11 @@ struct _RsttoMainWindowPriv
     GtkWidget *image_list_toolbar_menu;
     GtkWidget *picture_viewer;
     GtkWidget *p_viewer_s_window;
-    GtkWidget *hpaned;
+    GtkWidget *table;
+    GtkWidget *hpaned_left;
+    GtkWidget *hpaned_right;
+    GtkWidget *vpaned_top;
+    GtkWidget *vpaned_bottom;
     GtkWidget *thumbnailbar;
     GtkWidget *statusbar;
 
@@ -231,6 +235,8 @@ cb_rstto_main_window_picture_viewer_motion_notify_event (RsttoPictureViewer *vie
 
 static void
 rstto_main_window_update_buttons (RsttoMainWindow *window);
+static void
+rstto_main_window_set_navigationbar_orientation (RsttoMainWindow *window, guint orientation);
 
 static GtkWidgetClass *parent_class = NULL;
 
@@ -441,9 +447,19 @@ rstto_main_window_init (RsttoMainWindow *window)
     gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (window->priv->p_viewer_s_window), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
     gtk_container_add (GTK_CONTAINER (window->priv->p_viewer_s_window), window->priv->picture_viewer);
     window->priv->thumbnailbar = rstto_thumbnail_bar_new (NULL);
-    window->priv->hpaned = gtk_hpaned_new();
-    gtk_paned_pack1 (GTK_PANED (window->priv->hpaned), window->priv->p_viewer_s_window, TRUE, FALSE);
-    gtk_paned_pack2 (GTK_PANED (window->priv->hpaned), window->priv->thumbnailbar, FALSE, FALSE);
+
+    window->priv->hpaned_left = gtk_hpaned_new();
+    window->priv->hpaned_right = gtk_hpaned_new();
+    window->priv->vpaned_top = gtk_vpaned_new();
+    window->priv->vpaned_bottom = gtk_vpaned_new();
+    window->priv->table = gtk_table_new (3, 3, FALSE);
+
+    gtk_paned_pack2 (GTK_PANED (window->priv->hpaned_left), window->priv->hpaned_right, TRUE, FALSE);
+    gtk_paned_pack1 (GTK_PANED (window->priv->hpaned_right), window->priv->vpaned_top, TRUE, FALSE);
+    gtk_paned_pack2 (GTK_PANED (window->priv->vpaned_top), window->priv->vpaned_bottom, TRUE, FALSE);
+
+    gtk_paned_pack1 (GTK_PANED (window->priv->vpaned_bottom), window->priv->p_viewer_s_window, TRUE, FALSE);
+    gtk_paned_pack2 (GTK_PANED (window->priv->hpaned_right), window->priv->thumbnailbar, FALSE, FALSE);
 
     window->priv->statusbar = gtk_statusbar_new();
 
@@ -464,15 +480,19 @@ rstto_main_window_init (RsttoMainWindow *window)
     gtk_box_pack_start(GTK_BOX(main_vbox), window->priv->menubar, FALSE, FALSE, 0);
     gtk_box_pack_start(GTK_BOX(main_vbox), window->priv->toolbar, FALSE, FALSE, 0);
     gtk_box_pack_start(GTK_BOX(main_vbox), window->priv->message_bar, FALSE,FALSE, 0);
-    gtk_box_pack_start(GTK_BOX(main_vbox), window->priv->hpaned, TRUE, TRUE, 0);
-    gtk_box_pack_start(GTK_BOX(main_vbox), window->priv->image_list_toolbar, FALSE, FALSE, 0);
+    gtk_box_pack_start(GTK_BOX(main_vbox), window->priv->table, TRUE, TRUE, 0);
     gtk_box_pack_start(GTK_BOX(main_vbox), window->priv->statusbar, FALSE, FALSE, 0);
 
+    gtk_table_attach_defaults (GTK_TABLE (window->priv->table), window->priv->hpaned_left, 1, 2, 1, 2);
+    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);
+
     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->message_bar, TRUE);
     gtk_widget_set_no_show_all (window->priv->thumbnailbar, TRUE);
 
+    rstto_main_window_set_navigationbar_orientation (window, 3);
+
     /**
      * Add missing pieces to the UI
      */
@@ -2077,6 +2097,64 @@ cb_rstto_main_window_message_bar_open (GtkWidget *widget, RsttoMainWindow *windo
     }
 }
 
+static void
+rstto_main_window_set_navigationbar_orientation (RsttoMainWindow *window, guint orientation)
+{
+    switch (orientation)
+    {
+        case 0:
+            g_object_ref (window->priv->image_list_toolbar);
+            g_object_ref (window->priv->thumbnailbar);
+
+            gtk_container_remove (GTK_CONTAINER (gtk_widget_get_parent (window->priv->thumbnailbar)), window->priv->thumbnailbar);
+            gtk_paned_pack1 (GTK_PANED (window->priv->hpaned_left), window->priv->thumbnailbar, FALSE, FALSE);
+
+            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);
+            gtk_toolbar_set_orientation (GTK_TOOLBAR (window->priv->image_list_toolbar), GTK_ORIENTATION_VERTICAL);
+            rstto_thumbnail_bar_set_orientation (RSTTO_THUMBNAIL_BAR(window->priv->thumbnailbar), GTK_ORIENTATION_VERTICAL);
+            break;
+        case 1:
+            g_object_ref (window->priv->image_list_toolbar);
+            g_object_ref (window->priv->thumbnailbar);
+
+            gtk_container_remove (GTK_CONTAINER (gtk_widget_get_parent (window->priv->thumbnailbar)), window->priv->thumbnailbar);
+            gtk_paned_pack1 (GTK_PANED (window->priv->vpaned_top), window->priv->thumbnailbar, FALSE, FALSE);
+
+            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);
+            gtk_toolbar_set_orientation (GTK_TOOLBAR (window->priv->image_list_toolbar), GTK_ORIENTATION_HORIZONTAL);
+            rstto_thumbnail_bar_set_orientation (RSTTO_THUMBNAIL_BAR(window->priv->thumbnailbar), GTK_ORIENTATION_HORIZONTAL);
+            break;
+        case 2:
+            g_object_ref (window->priv->image_list_toolbar);
+            g_object_ref (window->priv->thumbnailbar);
+
+            gtk_container_remove (GTK_CONTAINER (gtk_widget_get_parent (window->priv->thumbnailbar)), window->priv->thumbnailbar);
+            gtk_paned_pack2 (GTK_PANED (window->priv->hpaned_right), window->priv->thumbnailbar, FALSE, FALSE);
+
+            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);
+            gtk_toolbar_set_orientation (GTK_TOOLBAR (window->priv->image_list_toolbar), GTK_ORIENTATION_VERTICAL);
+            rstto_thumbnail_bar_set_orientation (RSTTO_THUMBNAIL_BAR(window->priv->thumbnailbar), GTK_ORIENTATION_VERTICAL);
+            break;
+        case 3:
+            g_object_ref (window->priv->image_list_toolbar);
+            g_object_ref (window->priv->thumbnailbar);
+
+            gtk_container_remove (GTK_CONTAINER (gtk_widget_get_parent (window->priv->thumbnailbar)), window->priv->thumbnailbar);
+            gtk_paned_pack2 (GTK_PANED (window->priv->vpaned_bottom), window->priv->thumbnailbar, FALSE, FALSE);
+
+            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);
+            gtk_toolbar_set_orientation (GTK_TOOLBAR (window->priv->image_list_toolbar), GTK_ORIENTATION_HORIZONTAL);
+            rstto_thumbnail_bar_set_orientation (RSTTO_THUMBNAIL_BAR(window->priv->thumbnailbar), GTK_ORIENTATION_HORIZONTAL);
+            break;
+        default:
+            break;
+    }
+}
+
 /*
 static gboolean
 cb_rstto_main_window_image_list_toolbar_popup_context_menu (GtkToolbar *toolbar,


More information about the Xfce4-commits mailing list