Updating branch refs/heads/ristretto-0.0 to 1b71f80354aecfebee9fe7bb2fdd064b81074a2f (commit) from 527692577906730757dea30dbb640f1f12ff5cd8 (commit)
commit 1b71f80354aecfebee9fe7bb2fdd064b81074a2f Author: Stephan Arts <step...@xfce.org> Date: Sun Aug 30 10:38:23 2009 +0200 Fix errors when the 'ristretto' icon is not available. Add toggle-button for hiding navigation-toolbar src/main_window.c | 82 ++++++++++++++++++++++++++++++++++++++--------- src/main_window_ui.xml | 3 +- src/picture_viewer.c | 41 +++++++++++++----------- src/settings.c | 36 ++++++++++++++++----- 4 files changed, 117 insertions(+), 45 deletions(-) diff --git a/src/main_window.c b/src/main_window.c index 84153ef..82b7ac9 100644 --- a/src/main_window.c +++ b/src/main_window.c @@ -205,7 +205,9 @@ cb_rstto_main_window_message_bar_cancel (GtkWidget *widget, RsttoMainWindow *win static void -cb_rstto_main_window_toggle_show_toolbar (GtkWidget *widget, RsttoMainWindow *window); +cb_rstto_main_window_toggle_show_file_toolbar (GtkWidget *widget, RsttoMainWindow *window); +static void +cb_rstto_main_window_toggle_show_nav_toolbar (GtkWidget *widget, RsttoMainWindow *window); static void cb_rstto_main_window_fullscreen (GtkWidget *widget, RsttoMainWindow *window); static void @@ -289,7 +291,8 @@ static GtkActionEntry action_entries[] = static const GtkToggleActionEntry toggle_action_entries[] = { - { "show-toolbar", NULL, N_ ("Show _Toolbar"), NULL, NULL, G_CALLBACK (cb_rstto_main_window_toggle_show_toolbar), TRUE, }, + { "show-file-toolbar", NULL, N_ ("Show File _Toolbar"), NULL, NULL, G_CALLBACK (cb_rstto_main_window_toggle_show_file_toolbar), TRUE, }, + { "show-nav-toolbar", NULL, N_ ("Show Nav _Toolbar"), NULL, NULL, G_CALLBACK (cb_rstto_main_window_toggle_show_nav_toolbar), TRUE, }, { "show-thumbnailbar", NULL, N_ ("Show Thumb_nailbar"), NULL, NULL, NULL, FALSE}, }; @@ -330,7 +333,7 @@ static void rstto_main_window_init (RsttoMainWindow *window) { GtkAccelGroup *accel_group; - GValue show_toolbar_val = {0,}, window_width = {0, }, window_height = {0, }; + GValue show_file_toolbar_val = {0,}, show_nav_toolbar_val = {0, }, window_width = {0, }, window_height = {0, }; GtkWidget *separator, *back, *forward; GtkWidget *main_vbox = gtk_vbox_new (FALSE, 0); GtkRecentFilter *recent_filter; @@ -464,6 +467,7 @@ rstto_main_window_init (RsttoMainWindow *window) gtk_box_pack_start(GTK_BOX(main_vbox), window->priv->statusbar, FALSE, FALSE, 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); /** @@ -511,13 +515,13 @@ rstto_main_window_init (RsttoMainWindow *window) /** * Retrieve the toolbar state from the settings-manager */ - g_value_init (&show_toolbar_val, G_TYPE_BOOLEAN); - g_object_get_property (G_OBJECT(window->priv->settings_manager), "show-toolbar", &show_toolbar_val); - if (g_value_get_boolean (&show_toolbar_val)) + g_value_init (&show_file_toolbar_val, G_TYPE_BOOLEAN); + g_object_get_property (G_OBJECT(window->priv->settings_manager), "show-file-toolbar", &show_file_toolbar_val); + if (g_value_get_boolean (&show_file_toolbar_val)) { gtk_check_menu_item_set_active ( GTK_CHECK_MENU_ITEM ( - gtk_ui_manager_get_widget (window->priv->ui_manager, "/main-menu/view-menu/show-toolbar")), + gtk_ui_manager_get_widget (window->priv->ui_manager, "/main-menu/view-menu/show-file-toolbar")), TRUE); gtk_widget_show (window->priv->toolbar); } @@ -525,10 +529,30 @@ rstto_main_window_init (RsttoMainWindow *window) { gtk_check_menu_item_set_active ( GTK_CHECK_MENU_ITEM ( - gtk_ui_manager_get_widget (window->priv->ui_manager, "/main-menu/view-menu/show-toolbar")), + gtk_ui_manager_get_widget (window->priv->ui_manager, "/main-menu/view-menu/show-file-toolbar")), FALSE); gtk_widget_hide (window->priv->toolbar); } + g_value_init (&show_nav_toolbar_val, G_TYPE_BOOLEAN); + g_object_get_property (G_OBJECT(window->priv->settings_manager), "show-nav-toolbar", &show_nav_toolbar_val); + if (g_value_get_boolean (&show_nav_toolbar_val)) + { + gtk_check_menu_item_set_active ( + GTK_CHECK_MENU_ITEM ( + gtk_ui_manager_get_widget (window->priv->ui_manager, "/main-menu/view-menu/show-nav-toolbar")), + TRUE); + gtk_widget_show (window->priv->image_list_toolbar); + } + 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-nav-toolbar")), + FALSE); + gtk_widget_hide (window->priv->image_list_toolbar); + } + g_value_reset (&show_file_toolbar_val); + g_value_reset (&show_nav_toolbar_val); g_signal_connect(G_OBJECT(window->priv->picture_viewer), "motion-notify-event", G_CALLBACK(cb_rstto_main_window_picture_viewer_motion_notify_event), window); g_signal_connect(G_OBJECT(window), "configure-event", G_CALLBACK(cb_rstto_main_window_configure_event), NULL); @@ -1700,14 +1724,14 @@ cb_rstto_main_window_delete (GtkWidget *widget, RsttoMainWindow *window) } /** - * cb_rstto_main_window_toggle_show_toolbar: + * cb_rstto_main_window_toggle_show_file_toolbar: * @widget: * @window: * * */ static void -cb_rstto_main_window_toggle_show_toolbar (GtkWidget *widget, RsttoMainWindow *window) +cb_rstto_main_window_toggle_show_file_toolbar (GtkWidget *widget, RsttoMainWindow *window) { GValue val = {0,}; g_value_init (&val, G_TYPE_BOOLEAN); @@ -1722,7 +1746,33 @@ cb_rstto_main_window_toggle_show_toolbar (GtkWidget *widget, RsttoMainWindow *wi gtk_widget_hide (window->priv->toolbar); g_value_set_boolean (&val, FALSE); } - g_object_set_property (G_OBJECT (window->priv->settings_manager), "show-toolbar", &val); + g_object_set_property (G_OBJECT (window->priv->settings_manager), "show-file-toolbar", &val); +} + +/** + * cb_rstto_main_window_toggle_show_nav_toolbar: + * @widget: + * @window: + * + * + */ +static void +cb_rstto_main_window_toggle_show_nav_toolbar (GtkWidget *widget, RsttoMainWindow *window) +{ + GValue val = {0,}; + g_value_init (&val, G_TYPE_BOOLEAN); + + if (gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (widget))) + { + gtk_widget_show (window->priv->image_list_toolbar); + g_value_set_boolean (&val, TRUE); + } + else + { + gtk_widget_hide (window->priv->image_list_toolbar); + g_value_set_boolean (&val, FALSE); + } + g_object_set_property (G_OBJECT (window->priv->settings_manager), "show-nav-toolbar", &val); } /** @@ -1801,7 +1851,7 @@ static void cb_rstto_main_window_state_event(GtkWidget *widget, GdkEventWindowState *event, gpointer user_data) { RsttoMainWindow *window = RSTTO_MAIN_WINDOW(widget); - GValue show_toolbar_val = {0,}; + GValue show_file_toolbar_val = {0,}; if(event->changed_mask & GDK_WINDOW_STATE_FULLSCREEN) { @@ -1854,16 +1904,16 @@ cb_rstto_main_window_state_event(GtkWidget *widget, GdkEventWindowState *event, } gtk_widget_show (window->priv->image_list_toolbar); - g_value_init (&show_toolbar_val, G_TYPE_BOOLEAN); - g_object_get_property (G_OBJECT(window->priv->settings_manager), "show-toolbar", &show_toolbar_val); + g_value_init (&show_file_toolbar_val, G_TYPE_BOOLEAN); + g_object_get_property (G_OBJECT(window->priv->settings_manager), "show-file-toolbar", &show_file_toolbar_val); gtk_widget_show (window->priv->menubar); gtk_widget_show (window->priv->statusbar); - if (g_value_get_boolean (&show_toolbar_val)) + if (g_value_get_boolean (&show_file_toolbar_val)) gtk_widget_show (window->priv->toolbar); - g_value_reset (&show_toolbar_val); + g_value_reset (&show_file_toolbar_val); } } if (event->changed_mask & GDK_WINDOW_STATE_MAXIMIZED) diff --git a/src/main_window_ui.xml b/src/main_window_ui.xml index 6b5760b..0ab4824 100644 --- a/src/main_window_ui.xml +++ b/src/main_window_ui.xml @@ -31,7 +31,8 @@ <menuitem action="preferences"/> </menu> <menu action="view-menu"> - <menuitem action="show-toolbar"/> + <menuitem action="show-file-toolbar"/> + <menuitem action="show-nav-toolbar"/> <menuitem action="show-thumbnailbar"/> <separator/> <menu action="zoom-menu"> diff --git a/src/picture_viewer.c b/src/picture_viewer.c index 9fc6201..a5ea1fa 100644 --- a/src/picture_viewer.c +++ b/src/picture_viewer.c @@ -611,25 +611,28 @@ rstto_picture_viewer_paint (GtkWidget *widget) "ristretto", (size*0.8), GTK_ICON_LOOKUP_FORCE_SIZE, NULL); - gdk_pixbuf_saturate_and_pixelate (pixbuf, pixbuf, 0, TRUE); - pixbuf = gdk_pixbuf_composite_color_simple (pixbuf, (size*0.8), (size*0.8), GDK_INTERP_BILINEAR, 40, 40, bg_color->pixel, bg_color->pixel); - - x1 = (widget->allocation.width-gdk_pixbuf_get_width(pixbuf))<0?0:(widget->allocation.width-gdk_pixbuf_get_width(pixbuf))/2; - y1 = (widget->allocation.height-gdk_pixbuf_get_height(pixbuf))<0?0:(widget->allocation.height-gdk_pixbuf_get_height(pixbuf))/2; - x2 = gdk_pixbuf_get_width(pixbuf); - y2 = gdk_pixbuf_get_height(pixbuf); - - gdk_draw_pixbuf(GDK_DRAWABLE(buffer), - NULL, - pixbuf, - 0, - 0, - x1, - y1, - x2, - y2, - GDK_RGB_DITHER_NONE, - 0,0); + if (pixbuf) + { + gdk_pixbuf_saturate_and_pixelate (pixbuf, pixbuf, 0, TRUE); + pixbuf = gdk_pixbuf_composite_color_simple (pixbuf, (size*0.8), (size*0.8), GDK_INTERP_BILINEAR, 40, 40, bg_color->pixel, bg_color->pixel); + + x1 = (widget->allocation.width-gdk_pixbuf_get_width(pixbuf))<0?0:(widget->allocation.width-gdk_pixbuf_get_width(pixbuf))/2; + y1 = (widget->allocation.height-gdk_pixbuf_get_height(pixbuf))<0?0:(widget->allocation.height-gdk_pixbuf_get_height(pixbuf))/2; + x2 = gdk_pixbuf_get_width(pixbuf); + y2 = gdk_pixbuf_get_height(pixbuf); + + gdk_draw_pixbuf(GDK_DRAWABLE(buffer), + NULL, + pixbuf, + 0, + 0, + x1, + y1, + x2, + y2, + GDK_RGB_DITHER_NONE, + 0,0); + } } gdk_draw_drawable(GDK_DRAWABLE(widget->window), gdk_gc_new(widget->window), diff --git a/src/settings.c b/src/settings.c index 1bf543d..7fa0b53 100644 --- a/src/settings.c +++ b/src/settings.c @@ -53,7 +53,8 @@ static RsttoSettings *settings_object; enum { PROP_0, - PROP_SHOW_TOOLBAR, + PROP_SHOW_FILE_TOOLBAR, + PROP_SHOW_NAV_TOOLBAR, PROP_TOOLBAR_OPEN, PROP_ENABLE_CACHE, PROP_PRELOAD_IMAGES, @@ -99,7 +100,8 @@ struct _RsttoSettingsPriv { XfconfChannel *channel; - gboolean show_toolbar; + gboolean show_file_toolbar; + gboolean show_nav_toolbar; guint preload_images; gboolean enable_cache; guint cache_size; @@ -143,7 +145,8 @@ rstto_settings_init (GObject *object) xfconf_g_property_bind (settings->priv->channel, "/file/current-uri", G_TYPE_STRING, settings, "current-uri"); - xfconf_g_property_bind (settings->priv->channel, "/window/show-toolbar", G_TYPE_BOOLEAN, settings, "show-toolbar"); + 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/scrollwheel-action", G_TYPE_STRING, settings, "scrollwheel-action"); xfconf_g_property_bind (settings->priv->channel, "/slideshow/timeout", G_TYPE_UINT, settings, "slideshow-timeout"); @@ -196,13 +199,22 @@ rstto_settings_class_init (GObjectClass *object_class) PROP_WINDOW_HEIGHT, pspec); - pspec = g_param_spec_boolean ("show-toolbar", + pspec = g_param_spec_boolean ("show-file-toolbar", "", "", TRUE, G_PARAM_READWRITE); g_object_class_install_property (object_class, - PROP_SHOW_TOOLBAR, + PROP_SHOW_FILE_TOOLBAR, + pspec); + + pspec = g_param_spec_boolean ("show-nav-toolbar", + "", + "", + TRUE, + G_PARAM_READWRITE); + g_object_class_install_property (object_class, + PROP_SHOW_NAV_TOOLBAR, pspec); pspec = g_param_spec_uint ("preload-images", @@ -377,8 +389,11 @@ rstto_settings_set_property (GObject *object, switch (property_id) { - case PROP_SHOW_TOOLBAR: - settings->priv->show_toolbar = g_value_get_boolean (value); + case PROP_SHOW_FILE_TOOLBAR: + settings->priv->show_file_toolbar = g_value_get_boolean (value); + break; + case PROP_SHOW_NAV_TOOLBAR: + settings->priv->show_nav_toolbar = g_value_get_boolean (value); break; case PROP_PRELOAD_IMAGES: settings->priv->preload_images = g_value_get_uint (value); @@ -442,8 +457,11 @@ rstto_settings_get_property (GObject *object, switch (property_id) { - case PROP_SHOW_TOOLBAR: - g_value_set_boolean (value, settings->priv->show_toolbar); + case PROP_SHOW_FILE_TOOLBAR: + g_value_set_boolean (value, settings->priv->show_file_toolbar); + break; + case PROP_SHOW_NAV_TOOLBAR: + g_value_set_boolean (value, settings->priv->show_nav_toolbar); break; case PROP_PRELOAD_IMAGES: g_value_set_uint (value, settings->priv->preload_images); _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org https://mail.xfce.org/mailman/listinfo/xfce4-commits