[Xfce4-commits] ristretto:ristretto-0.0 Implement bgcolor settings
Updating branch refs/heads/ristretto-0.0 to be4b10beab50a7a9e3ceb6e84fbfd65cd223395f (commit) from c2a9945bcada416a23698705f6402560405c756c (commit) commit be4b10beab50a7a9e3ceb6e84fbfd65cd223395f Author: Stephan Arts step...@xfce.org Date: Wed Apr 22 00:40:08 2009 +0200 Implement bgcolor settings src/picture_viewer.c | 14 - src/preferences_dialog.c | 71 ++ src/settings.c | 127 -- 3 files changed, 184 insertions(+), 28 deletions(-) diff --git a/src/picture_viewer.c b/src/picture_viewer.c index 1d5d0b1..9b803a1 100644 --- a/src/picture_viewer.c +++ b/src/picture_viewer.c @@ -27,6 +27,7 @@ #include image.h #include picture_viewer.h +#include settings.h typedef enum { @@ -389,10 +390,18 @@ rstto_picture_viewer_expose(GtkWidget *widget, GdkEventExpose *event) static void rstto_picture_viewer_paint (GtkWidget *widget) { +RsttoSettings *settings_manager = rstto_settings_new(); RsttoPictureViewer *viewer = RSTTO_PICTURE_VIEWER(widget); GdkPixbuf *pixbuf = viewer-priv-dst_pixbuf; GdkColor color; GdkColor line_color; +GValue bg_color = {0, }, bg_color_override = {0, }; +g_value_init (bg_color, GDK_TYPE_COLOR); +g_value_init (bg_color_override, G_TYPE_BOOLEAN); + +g_object_get_property (G_OBJECT(settings_manager), bgcolor, bg_color); +g_object_get_property (G_OBJECT(settings_manager), bgcolor-override, bg_color_override); + color.pixel = 0x0; line_color.pixel = 0x0; @@ -405,9 +414,9 @@ rstto_picture_viewer_paint (GtkWidget *widget) GdkPixmap *buffer = gdk_pixmap_new(NULL, widget-allocation.width, widget-allocation.height, gdk_drawable_get_depth(widget-window)); GdkGC *gc = gdk_gc_new(GDK_DRAWABLE(buffer)); -if (viewer-priv-bg_color) +if (g_value_get_boxed (bg_color) g_value_get_boolean (bg_color_override)) { -gdk_gc_set_foreground(gc, viewer-priv-bg_color); +gdk_gc_set_foreground(gc, g_value_get_boxed (bg_color)); } else { @@ -561,6 +570,7 @@ rstto_picture_viewer_paint (GtkWidget *widget) widget-allocation.height); g_object_unref(buffer); } + g_object_unref (settings_manager); } static void diff --git a/src/preferences_dialog.c b/src/preferences_dialog.c index 62559b7..917c89f 100644 --- a/src/preferences_dialog.c +++ b/src/preferences_dialog.c @@ -29,6 +29,12 @@ rstto_preferences_dialog_init(RsttoPreferencesDialog *); static void rstto_preferences_dialog_class_init(RsttoPreferencesDialogClass *); + +static void +cb_rstto_preferences_dialog_bgcolor_override_toggled (GtkToggleButton *, gpointer); +static void +cb_rstto_preferences_dialog_bgcolor_color_set (GtkColorButton *, gpointer); + static GtkWidgetClass *parent_class = NULL; GType @@ -68,7 +74,7 @@ rstto_preferences_dialog_init(RsttoPreferencesDialog *dialog) GtkWidget *bgcolor_frame, *bgcolor_vbox, *bgcolor_hbox, *bgcolor_button; GtkWidget *cache_frame, *cache_vbox; GtkWidget *scaling_frame, *scaling_vbox; -GtkObject *cache_hbox, *cache_adjustment, *cache_spin_button, *cache_preload_check_button; +GtkWidget *cache_hbox, *cache_adjustment, *cache_spin_button, *cache_preload_check_button; GtkWidget *toolbar_vbox, *toolbar_frame; GtkWidget *widget; @@ -85,9 +91,13 @@ rstto_preferences_dialog_init(RsttoPreferencesDialog *dialog) widget = gtk_check_button_new_with_label (_(Override background color:)); bgcolor_hbox = gtk_hbox_new(FALSE, 4); bgcolor_button = gtk_color_button_new(); -gtk_container_add (GTK_CONTAINER (bgcolor_hbox), widget); -gtk_container_add (GTK_CONTAINER (bgcolor_hbox), bgcolor_button); -gtk_container_add (GTK_CONTAINER (bgcolor_vbox), bgcolor_hbox); +gtk_box_pack_start (GTK_BOX (bgcolor_hbox), widget, FALSE, FALSE, 0); +gtk_box_pack_start (GTK_BOX (bgcolor_hbox), bgcolor_button, FALSE, FALSE, 0); +gtk_box_pack_start (GTK_BOX (bgcolor_vbox), bgcolor_hbox, FALSE, FALSE, 0); + +/* connect signals */ +g_signal_connect (G_OBJECT (widget), toggled, (GCallback)cb_rstto_preferences_dialog_bgcolor_override_toggled, bgcolor_button); +g_signal_connect (G_OBJECT (bgcolor_button), color-set, G_CALLBACK (cb_rstto_preferences_dialog_bgcolor_color_set), NULL); cache_vbox = gtk_vbox_new(FALSE, 0); cache_frame = xfce_create_framebox_with_content (_(Image cache), cache_vbox); @@ -98,8 +108,8 @@ rstto_preferences_dialog_init(RsttoPreferencesDialog *dialog) cache_hbox = gtk_hbox_new(FALSE, 4); cache_spin_button = gtk_spin_button_new(GTK_ADJUSTMENT(cache_adjustment), 1.0, 0); cache_preload_check_button = gtk_check_button_new_with_label (_(Preload images)); -gtk_container_add (GTK_CONTAINER (cache_hbox), widget); -gtk_container_add (GTK_CONTAINER (cache_hbox), cache_spin_button); +
[Xfce4-commits] ristretto:ristretto-0.0 Implement bgcolor settings
Updating branch refs/heads/ristretto-0.0 to be4b10beab50a7a9e3ceb6e84fbfd65cd223395f (commit) from c2a9945bcada416a23698705f6402560405c756c (commit) commit be4b10beab50a7a9e3ceb6e84fbfd65cd223395f Author: Stephan Arts step...@xfce.org Date: Wed Apr 22 00:40:08 2009 +0200 Implement bgcolor settings src/picture_viewer.c | 14 - src/preferences_dialog.c | 71 ++ src/settings.c | 127 -- 3 files changed, 184 insertions(+), 28 deletions(-) diff --git a/src/picture_viewer.c b/src/picture_viewer.c index 1d5d0b1..9b803a1 100644 --- a/src/picture_viewer.c +++ b/src/picture_viewer.c @@ -27,6 +27,7 @@ #include image.h #include picture_viewer.h +#include settings.h typedef enum { @@ -389,10 +390,18 @@ rstto_picture_viewer_expose(GtkWidget *widget, GdkEventExpose *event) static void rstto_picture_viewer_paint (GtkWidget *widget) { +RsttoSettings *settings_manager = rstto_settings_new(); RsttoPictureViewer *viewer = RSTTO_PICTURE_VIEWER(widget); GdkPixbuf *pixbuf = viewer-priv-dst_pixbuf; GdkColor color; GdkColor line_color; +GValue bg_color = {0, }, bg_color_override = {0, }; +g_value_init (bg_color, GDK_TYPE_COLOR); +g_value_init (bg_color_override, G_TYPE_BOOLEAN); + +g_object_get_property (G_OBJECT(settings_manager), bgcolor, bg_color); +g_object_get_property (G_OBJECT(settings_manager), bgcolor-override, bg_color_override); + color.pixel = 0x0; line_color.pixel = 0x0; @@ -405,9 +414,9 @@ rstto_picture_viewer_paint (GtkWidget *widget) GdkPixmap *buffer = gdk_pixmap_new(NULL, widget-allocation.width, widget-allocation.height, gdk_drawable_get_depth(widget-window)); GdkGC *gc = gdk_gc_new(GDK_DRAWABLE(buffer)); -if (viewer-priv-bg_color) +if (g_value_get_boxed (bg_color) g_value_get_boolean (bg_color_override)) { -gdk_gc_set_foreground(gc, viewer-priv-bg_color); +gdk_gc_set_foreground(gc, g_value_get_boxed (bg_color)); } else { @@ -561,6 +570,7 @@ rstto_picture_viewer_paint (GtkWidget *widget) widget-allocation.height); g_object_unref(buffer); } + g_object_unref (settings_manager); } static void diff --git a/src/preferences_dialog.c b/src/preferences_dialog.c index 62559b7..917c89f 100644 --- a/src/preferences_dialog.c +++ b/src/preferences_dialog.c @@ -29,6 +29,12 @@ rstto_preferences_dialog_init(RsttoPreferencesDialog *); static void rstto_preferences_dialog_class_init(RsttoPreferencesDialogClass *); + +static void +cb_rstto_preferences_dialog_bgcolor_override_toggled (GtkToggleButton *, gpointer); +static void +cb_rstto_preferences_dialog_bgcolor_color_set (GtkColorButton *, gpointer); + static GtkWidgetClass *parent_class = NULL; GType @@ -68,7 +74,7 @@ rstto_preferences_dialog_init(RsttoPreferencesDialog *dialog) GtkWidget *bgcolor_frame, *bgcolor_vbox, *bgcolor_hbox, *bgcolor_button; GtkWidget *cache_frame, *cache_vbox; GtkWidget *scaling_frame, *scaling_vbox; -GtkObject *cache_hbox, *cache_adjustment, *cache_spin_button, *cache_preload_check_button; +GtkWidget *cache_hbox, *cache_adjustment, *cache_spin_button, *cache_preload_check_button; GtkWidget *toolbar_vbox, *toolbar_frame; GtkWidget *widget; @@ -85,9 +91,13 @@ rstto_preferences_dialog_init(RsttoPreferencesDialog *dialog) widget = gtk_check_button_new_with_label (_(Override background color:)); bgcolor_hbox = gtk_hbox_new(FALSE, 4); bgcolor_button = gtk_color_button_new(); -gtk_container_add (GTK_CONTAINER (bgcolor_hbox), widget); -gtk_container_add (GTK_CONTAINER (bgcolor_hbox), bgcolor_button); -gtk_container_add (GTK_CONTAINER (bgcolor_vbox), bgcolor_hbox); +gtk_box_pack_start (GTK_BOX (bgcolor_hbox), widget, FALSE, FALSE, 0); +gtk_box_pack_start (GTK_BOX (bgcolor_hbox), bgcolor_button, FALSE, FALSE, 0); +gtk_box_pack_start (GTK_BOX (bgcolor_vbox), bgcolor_hbox, FALSE, FALSE, 0); + +/* connect signals */ +g_signal_connect (G_OBJECT (widget), toggled, (GCallback)cb_rstto_preferences_dialog_bgcolor_override_toggled, bgcolor_button); +g_signal_connect (G_OBJECT (bgcolor_button), color-set, G_CALLBACK (cb_rstto_preferences_dialog_bgcolor_color_set), NULL); cache_vbox = gtk_vbox_new(FALSE, 0); cache_frame = xfce_create_framebox_with_content (_(Image cache), cache_vbox); @@ -98,8 +108,8 @@ rstto_preferences_dialog_init(RsttoPreferencesDialog *dialog) cache_hbox = gtk_hbox_new(FALSE, 4); cache_spin_button = gtk_spin_button_new(GTK_ADJUSTMENT(cache_adjustment), 1.0, 0); cache_preload_check_button = gtk_check_button_new_with_label (_(Preload images)); -gtk_container_add (GTK_CONTAINER (cache_hbox), widget); -gtk_container_add (GTK_CONTAINER (cache_hbox), cache_spin_button); +