[Xfce4-commits] <ristretto:master> Added status bar toggling.

Stephan Arts noreply at xfce.org
Mon Feb 20 19:48:04 CET 2012


Updating branch refs/heads/master
         to 6c7744ab87c0a446a7267a5724b2aa0113430ad0 (commit)
       from b6952f26054d7a935c8c340acf82afe0a34d1e5e (commit)

commit 6c7744ab87c0a446a7267a5724b2aa0113430ad0
Author: David Schneider <dnschneid at gmail.com>
Date:   Thu Feb 16 11:29:17 2012 -0800

    Added status bar toggling.

 src/main_window.c      |   45 +++++++++++++++++++++++++++++++++++++++++++++
 src/main_window_ui.xml |    1 +
 src/settings.c         |   27 +++++++++++++++++++++++++++
 3 files changed, 73 insertions(+), 0 deletions(-)

diff --git a/src/main_window.c b/src/main_window.c
index ed71513..909bec4 100644
--- a/src/main_window.c
+++ b/src/main_window.c
@@ -239,6 +239,10 @@ static void
 cb_rstto_main_window_toggle_show_thumbnailbar (
         GtkWidget *widget,
         RsttoMainWindow *window);
+static void
+cb_rstto_main_window_toggle_show_statusbar (
+        GtkWidget *widget,
+        RsttoMainWindow *window);
 
 static void
 cb_rstto_main_window_fullscreen (
@@ -390,6 +394,8 @@ static const GtkToggleActionEntry toggle_action_entries[] =
     { "show-nav-toolbar", NULL, N_ ("Show _Navigation Toolbar"), NULL, NULL, G_CALLBACK (cb_rstto_main_window_toggle_show_nav_toolbar), TRUE, },
     /* Toggle visibility of the thumbnailbar*/
     { "show-thumbnailbar", NULL, N_ ("Show _Thumbnail Bar"), "<control>M", NULL, G_CALLBACK (cb_rstto_main_window_toggle_show_thumbnailbar), TRUE, },
+    /* Toggle visibility of the statusbar*/
+    { "show-statusbar", NULL, N_ ("Show _Status Bar"), NULL, NULL, G_CALLBACK (cb_rstto_main_window_toggle_show_statusbar), TRUE, },
 };
 
 /** Image sorting options*/
@@ -679,6 +685,7 @@ 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_set_no_show_all (window->priv->statusbar, 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);
@@ -770,6 +777,22 @@ rstto_main_window_init (RsttoMainWindow *window)
                 FALSE);
         gtk_widget_hide (window->priv->t_bar_s_window);
     }
+    if (rstto_settings_get_boolean_property (RSTTO_SETTINGS (window->priv->settings_manager), "show-statusbar"))
+    {
+        gtk_check_menu_item_set_active (
+                GTK_CHECK_MENU_ITEM (
+                        gtk_ui_manager_get_widget (window->priv->ui_manager, "/main-menu/view-menu/show-statusbar")),
+                TRUE);
+        gtk_widget_show (window->priv->statusbar);
+    }
+    else
+    {
+        gtk_check_menu_item_set_active (
+                GTK_CHECK_MENU_ITEM (
+                        gtk_ui_manager_get_widget (window->priv->ui_manager, "/main-menu/view-menu/show-statusbar")),
+                FALSE);
+        gtk_widget_hide (window->priv->statusbar);
+    }
 
     /**
      * Set sort-type
@@ -3450,6 +3473,28 @@ cb_rstto_main_window_toggle_show_thumbnailbar (GtkWidget *widget, RsttoMainWindo
     }
 }
 
+/**
+ * cb_rstto_main_window_toggle_show_statusbar:
+ * @widget:
+ * @window:
+ *
+ *
+ */
+static void
+cb_rstto_main_window_toggle_show_statusbar (GtkWidget *widget, RsttoMainWindow *window)
+{
+    if (gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (widget)))
+    {
+        gtk_widget_show (window->priv->statusbar);
+        rstto_settings_set_boolean_property (RSTTO_SETTINGS (window->priv->settings_manager), "show-statusbar", TRUE);
+    }
+    else
+    {
+        gtk_widget_hide (window->priv->statusbar);
+        rstto_settings_set_boolean_property (RSTTO_SETTINGS (window->priv->settings_manager), "show-statusbar", FALSE);
+    }
+}
+
 RsttoImageListIter *
 rstto_main_window_get_iter (
         RsttoMainWindow *window)
diff --git a/src/main_window_ui.xml b/src/main_window_ui.xml
index 2521d54..a9d9e45 100644
--- a/src/main_window_ui.xml
+++ b/src/main_window_ui.xml
@@ -35,6 +35,7 @@
         <menu action="view-menu">
             <menuitem action="show-file-toolbar"/>
             <menuitem action="show-nav-toolbar"/>
+            <menuitem action="show-statusbar"/>
             <menuitem action="show-thumbnailbar"/>
             <menu action="thumbnailbar-position-menu">
                 <menuitem action="pos-left"/>
diff --git a/src/settings.c b/src/settings.c
index d34d1c5..0fc04fa 100644
--- a/src/settings.c
+++ b/src/settings.c
@@ -58,6 +58,7 @@ enum
     PROP_SHOW_NAV_TOOLBAR,
     PROP_NAVBAR_POSITION,
     PROP_SHOW_THUMBNAILBAR,
+    PROP_SHOW_STATUSBAR,
     PROP_HIDE_THUMBNAILBAR_FULLSCREEN,
     PROP_WINDOW_WIDTH,
     PROP_WINDOW_HEIGHT,
@@ -110,6 +111,7 @@ struct _RsttoSettingsPriv
     gboolean  show_file_toolbar;
     gboolean  show_nav_toolbar;
     gboolean  show_thumbnailbar;
+    gboolean  show_statusbar;
     gboolean  hide_thumbnailbar_fullscreen;
     gchar    *navigationbar_position;
     gboolean  revert_zoom_direction;
@@ -163,6 +165,7 @@ rstto_settings_init (GObject *object)
     settings->priv->window_height = 440;
     settings->priv->wrap_images = TRUE;
     settings->priv->show_thumbnailbar = TRUE;
+    settings->priv->show_statusbar = TRUE;
     settings->priv->use_thunar_properties = TRUE;
     settings->priv->maximize_on_startup = TRUE;
     settings->priv->hide_thumbnailbar_fullscreen = TRUE;
@@ -226,6 +229,13 @@ rstto_settings_init (GObject *object)
 
     xfconf_g_property_bind (
             settings->priv->channel,
+            "/window/statusbar/show",
+            G_TYPE_BOOLEAN,
+            settings,
+            "show-statusbar");
+
+    xfconf_g_property_bind (
+            settings->priv->channel,
             "/window/thumbnails/size",
             G_TYPE_UINT,
             settings,
@@ -390,6 +400,17 @@ rstto_settings_class_init (GObjectClass *object_class)
             pspec);
 
     pspec = g_param_spec_boolean (
+            "show-statusbar",
+            "",
+            "",
+            TRUE,
+            G_PARAM_READWRITE);
+    g_object_class_install_property (
+            object_class,
+            PROP_SHOW_STATUSBAR,
+            pspec);
+
+    pspec = g_param_spec_boolean (
             "hide-thumbnailbar-fullscreen",
             "",
             "",
@@ -661,6 +682,9 @@ rstto_settings_set_property    (GObject      *object,
         case PROP_SHOW_THUMBNAILBAR:
             settings->priv->show_thumbnailbar = g_value_get_boolean (value);
             break;
+        case PROP_SHOW_STATUSBAR:
+            settings->priv->show_statusbar = g_value_get_boolean (value);
+            break;
         case PROP_HIDE_THUMBNAILBAR_FULLSCREEN:
             settings->priv->hide_thumbnailbar_fullscreen = g_value_get_boolean (value);
             break;
@@ -760,6 +784,9 @@ rstto_settings_get_property    (GObject    *object,
         case PROP_SHOW_THUMBNAILBAR:
             g_value_set_boolean (value, settings->priv->show_thumbnailbar);
             break;
+        case PROP_SHOW_STATUSBAR:
+            g_value_set_boolean (value, settings->priv->show_statusbar);
+            break;
         case PROP_HIDE_THUMBNAILBAR_FULLSCREEN:
             g_value_set_boolean (value, settings->priv->hide_thumbnailbar_fullscreen);
             break;


More information about the Xfce4-commits mailing list