From fc2a591bf4741da353b1419a02e45e7a96295903 Mon Sep 17 00:00:00 2001 From: David Schneider Date: Thu, 16 Feb 2012 11:29:17 -0800 Subject: [PATCH] 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 f28fb13..df277b8 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"), "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 @@ -3449,6 +3472,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 @@ + 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; -- 1.7.5.4