[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