[Xfce4-commits] <ristretto:master> Implement option to hide thumbnailbar when fullscreen

Stephan Arts stephan at xfce.org
Sat Sep 5 11:44:01 CEST 2009


Updating branch refs/heads/master
         to 79277392c9dd1e1ae4a493a54b001dbcdf980efd (commit)
       from 54560c4bab54160935322d2f2bc796def94f86e3 (commit)

commit 79277392c9dd1e1ae4a493a54b001dbcdf980efd
Author: Stephan Arts <stephan at xfce.org>
Date:   Sat Sep 5 11:41:58 2009 +0200

    Implement option to hide thumbnailbar when fullscreen

 ChangeLog                |    6 ++++++
 src/main_window.c        |   10 ++++++++++
 src/preferences_dialog.c |   38 ++++++++++++++++++++++++++++++++++++++
 src/settings.c           |   20 +++++++++++++++++++-
 4 files changed, 73 insertions(+), 1 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 794e17b..8730756 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 2009-09-05  Stephan Arts <stephan at xfce.org>
 
+	* src/preferences_dialog.c,
+	  src/settings.c,
+	  src/main_window.c: Implement option to hide thumbnail-bar when fullscreen
+
+2009-09-05  Stephan Arts <stephan at xfce.org>
+
 	* src/preferences_dialog.c
 	  src/settings.c,
 	  src/main_window.c: Implement slideshow timeout slider
diff --git a/src/main_window.c b/src/main_window.c
index 1755c15..5c6f5fd 100644
--- a/src/main_window.c
+++ b/src/main_window.c
@@ -1249,6 +1249,11 @@ cb_rstto_main_window_state_event(GtkWidget *widget, GdkEventWindowState *event,
                 gtk_widget_hide (window->priv->image_list_toolbar);
             }
 
+            if (rstto_settings_get_boolean_property (window->priv->settings_manager, "hide-thumbnailbar-fullscreen"))
+            {
+                gtk_widget_hide (window->priv->thumbnailbar);
+            }
+
             rstto_picture_viewer_zoom_fit (RSTTO_PICTURE_VIEWER (window->priv->picture_viewer));
 
             gtk_ui_manager_add_ui (window->priv->ui_manager,
@@ -1288,6 +1293,11 @@ cb_rstto_main_window_state_event(GtkWidget *widget, GdkEventWindowState *event,
                 gtk_widget_show (window->priv->image_list_toolbar);
             else
                 gtk_widget_hide(window->priv->image_list_toolbar);
+
+            if (rstto_settings_get_boolean_property (window->priv->settings_manager, "show-thumbnailbar"))
+            {
+                gtk_widget_show (window->priv->thumbnailbar);
+            }
             
         }
     }
diff --git a/src/preferences_dialog.c b/src/preferences_dialog.c
index ef3de73..aed517d 100644
--- a/src/preferences_dialog.c
+++ b/src/preferences_dialog.c
@@ -59,6 +59,11 @@ static void
 cb_rstto_preferences_dialog_switch_scrollwheel_action_radio_button_toggled (GtkToggleButton *, gpointer );
 
 static void
+cb_rstto_preferences_dialog_hide_thumbnails_fullscreen_check_button_toggled (
+                                                        GtkToggleButton *button, 
+                                                        gpointer user_data);
+
+static void
 cb_rstto_preferences_dialog_slideshow_timeout_value_changed (GtkRange *, gpointer);
 
 static GtkWidgetClass *parent_class = NULL;
@@ -87,6 +92,10 @@ struct _RsttoPreferencesDialogPriv
     {
         GtkWidget *timeout_vbox;
         GtkWidget *timeout_frame;
+        GtkWidget *thumbnail_vbox;
+        GtkWidget *thumbnail_frame;
+        GtkWidget *hide_thumbnails_fullscreen_lbl;
+        GtkWidget *hide_thumbnails_fullscreen_check_button;
     } slideshow_tab;
 
     struct
@@ -150,9 +159,11 @@ rstto_preferences_dialog_init(RsttoPreferencesDialog *dialog)
     gboolean bool_bgcolor_override;
     gchar *scrollwheel_primary_action;
     guint uint_slideshow_timeout;
+    gboolean bool_hide_thumbnailbar_fullscreen;
 
     GdkColor *bgcolor;
     GtkWidget *timeout_lbl, *timeout_hscale;
+    GtkWidget *thumbnail_lbl;
     GtkWidget *scaling_frame, *scaling_vbox;
     GtkWidget *widget;
     GtkObject *cache_adjustment;
@@ -179,6 +190,7 @@ rstto_preferences_dialog_init(RsttoPreferencesDialog *dialog)
                   "bgcolor", &bgcolor,
                   "scrollwheel-primary-action", &scrollwheel_primary_action,
                   "slideshow-timeout", &uint_slideshow_timeout,
+                  "hide-thumbnailbar-fullscreen", &bool_hide_thumbnailbar_fullscreen,
                   NULL);
 
 /*****************/
@@ -290,6 +302,22 @@ rstto_preferences_dialog_init(RsttoPreferencesDialog *dialog)
     g_signal_connect (G_OBJECT (timeout_hscale),
                       "value-changed", (GCallback)cb_rstto_preferences_dialog_slideshow_timeout_value_changed, dialog);
 
+    
+    dialog->priv->slideshow_tab.thumbnail_vbox = gtk_vbox_new(FALSE, 0);
+    dialog->priv->slideshow_tab.thumbnail_frame = xfce_create_framebox_with_content (_("Thumbnails"), dialog->priv->slideshow_tab.thumbnail_vbox);
+    gtk_box_pack_start (GTK_BOX (slideshow_main_vbox), dialog->priv->slideshow_tab.thumbnail_frame, FALSE, FALSE, 0);
+
+    dialog->priv->slideshow_tab.hide_thumbnails_fullscreen_lbl = gtk_label_new(_("The thumbnailbar can be automatically hidden \nwhen the image-viewer is fullscreen."));
+    dialog->priv->slideshow_tab.hide_thumbnails_fullscreen_check_button = gtk_check_button_new_with_label (_("Hide thumbnailbar when fullscreen"));
+    gtk_box_pack_start (GTK_BOX (dialog->priv->slideshow_tab.thumbnail_vbox), dialog->priv->slideshow_tab.hide_thumbnails_fullscreen_lbl, FALSE, FALSE, 0);
+    gtk_box_pack_start (GTK_BOX (dialog->priv->slideshow_tab.thumbnail_vbox), dialog->priv->slideshow_tab.hide_thumbnails_fullscreen_check_button, FALSE, FALSE, 0);
+
+    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (dialog->priv->slideshow_tab.hide_thumbnails_fullscreen_check_button),
+                                  bool_hide_thumbnailbar_fullscreen);
+
+    g_signal_connect (G_OBJECT (dialog->priv->slideshow_tab.hide_thumbnails_fullscreen_check_button), 
+                      "toggled", (GCallback)cb_rstto_preferences_dialog_hide_thumbnails_fullscreen_check_button_toggled, dialog);
+
 
 /********************************************/
     control_main_vbox = gtk_vbox_new(FALSE, 0);
@@ -621,3 +649,13 @@ cb_rstto_preferences_dialog_slideshow_timeout_value_changed (GtkRange *range, gp
     rstto_settings_set_uint_property (dialog->priv->settings, "slideshow-timeout", (guint)gtk_range_get_value (range));
 
 }
+
+static void
+cb_rstto_preferences_dialog_hide_thumbnails_fullscreen_check_button_toggled (
+                                                        GtkToggleButton *button, 
+                                                        gpointer user_data)
+{
+    RsttoPreferencesDialog *dialog = RSTTO_PREFERENCES_DIALOG (user_data);
+
+    rstto_settings_set_boolean_property (dialog->priv->settings, "hide-thumbnailbar-fullscreen", gtk_toggle_button_get_active(button));
+}
diff --git a/src/settings.c b/src/settings.c
index 7abb621..fdeb36f 100644
--- a/src/settings.c
+++ b/src/settings.c
@@ -57,6 +57,7 @@ enum
     PROP_SHOW_NAV_TOOLBAR,
     PROP_NAVBAR_POSITION,
     PROP_SHOW_THUMBNAILBAR,
+    PROP_HIDE_THUMBNAILBAR_FULLSCREEN,
     PROP_TOOLBAR_OPEN,
     PROP_ENABLE_CACHE,
     PROP_PRELOAD_IMAGES,
@@ -106,6 +107,7 @@ struct _RsttoSettingsPriv
     gboolean  show_file_toolbar;
     gboolean  show_nav_toolbar;
     gboolean  show_thumbnailbar;
+    gboolean  hide_thumbnailbar_fullscreen;
     gchar    *navigationbar_position;
     guint     preload_images;
     gboolean  enable_cache;
@@ -154,6 +156,7 @@ rstto_settings_init (GObject *object)
     xfconf_g_property_bind (settings->priv->channel, "/window/show-file-toolbar", G_TYPE_BOOLEAN, settings, "show-file-toolbar");
     xfconf_g_property_bind (settings->priv->channel, "/window/show-navigation-toolbar", G_TYPE_BOOLEAN, settings, "show-nav-toolbar");
     xfconf_g_property_bind (settings->priv->channel, "/window/show-thumbnailbar", G_TYPE_BOOLEAN, settings, "show-thumbnailbar");
+    xfconf_g_property_bind (settings->priv->channel, "/window/hide-thumbnailbar-fullscreen", G_TYPE_BOOLEAN, settings, "hide-thumbnailbar-fullscreen");
     xfconf_g_property_bind (settings->priv->channel, "/window/navigationbar-position", G_TYPE_STRING, settings, "navigationbar-position");
     xfconf_g_property_bind (settings->priv->channel, "/window/scrollwheel-primary-action", G_TYPE_STRING, settings, "scrollwheel-primary-action");
     xfconf_g_property_bind (settings->priv->channel, "/window/scrollwheel-secondary-action", G_TYPE_STRING, settings, "scrollwheel-secondary-action");
@@ -235,6 +238,15 @@ rstto_settings_class_init (GObjectClass *object_class)
                                      PROP_SHOW_THUMBNAILBAR,
                                      pspec);
 
+    pspec = g_param_spec_boolean ("hide-thumbnailbar-fullscreen",
+                                  "",
+                                  "",
+                                  TRUE,
+                                  G_PARAM_READWRITE);
+    g_object_class_install_property (object_class,
+                                     PROP_HIDE_THUMBNAILBAR_FULLSCREEN,
+                                     pspec);
+
     pspec = g_param_spec_string  ("navigationbar-position",
                                   "",
                                   "",
@@ -433,7 +445,10 @@ rstto_settings_set_property    (GObject      *object,
             settings->priv->show_nav_toolbar = g_value_get_boolean (value);
             break;
         case PROP_SHOW_THUMBNAILBAR:
-            settings->priv->show_thumbnailbar= g_value_get_boolean (value);
+            settings->priv->show_thumbnailbar = g_value_get_boolean (value);
+            break;
+        case PROP_HIDE_THUMBNAILBAR_FULLSCREEN:
+            settings->priv->hide_thumbnailbar_fullscreen = g_value_get_boolean (value);
             break;
         case PROP_NAVBAR_POSITION:
             str_val = g_value_get_string (value);
@@ -524,6 +539,9 @@ rstto_settings_get_property    (GObject    *object,
         case PROP_SHOW_THUMBNAILBAR:
             g_value_set_boolean (value, settings->priv->show_thumbnailbar);
             break;
+        case PROP_HIDE_THUMBNAILBAR_FULLSCREEN:
+            g_value_set_boolean (value, settings->priv->hide_thumbnailbar_fullscreen);
+            break;
         case PROP_NAVBAR_POSITION:
             g_value_set_string (value, settings->priv->navigationbar_position);
             break;



More information about the Xfce4-commits mailing list