[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:17:12 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