[Xfce4-commits] <ristretto:master> Mak sure bgcolor is not initialised with random color
Stephan Arts
stephan at xfce.org
Wed Aug 12 12:18:19 CEST 2009
Updating branch refs/heads/master
to c0eae3ec6f54a57bfde0666bbeddd55a41c8a049 (commit)
from be4b10beab50a7a9e3ceb6e84fbfd65cd223395f (commit)
commit c0eae3ec6f54a57bfde0666bbeddd55a41c8a049
Author: Stephan Arts <stephan at xfce.org>
Date: Thu Apr 23 00:11:54 2009 +0200
Mak sure bgcolor is not initialised with random color
src/picture_viewer.c | 3 +-
src/preferences_dialog.c | 57 +++++++++++++++++++++++++++++++++-------------
src/preferences_dialog.h | 3 ++
src/settings.c | 14 +++++++++-
4 files changed, 58 insertions(+), 19 deletions(-)
diff --git a/src/picture_viewer.c b/src/picture_viewer.c
index 9b803a1..b2c2bad 100644
--- a/src/picture_viewer.c
+++ b/src/picture_viewer.c
@@ -416,7 +416,8 @@ rstto_picture_viewer_paint (GtkWidget *widget)
if (g_value_get_boxed (&bg_color) && g_value_get_boolean (&bg_color_override))
{
- gdk_gc_set_foreground(gc, g_value_get_boxed (&bg_color));
+ // gdk_gc_set_foreground(gc, g_value_get_boxed (&bg_color));
+ gdk_gc_set_rgb_fg_color (gc, g_value_get_boxed (&bg_color));
}
else
{
diff --git a/src/preferences_dialog.c b/src/preferences_dialog.c
index 917c89f..2c61ae2 100644
--- a/src/preferences_dialog.c
+++ b/src/preferences_dialog.c
@@ -37,6 +37,22 @@ cb_rstto_preferences_dialog_bgcolor_color_set (GtkColorButton *, gpointer);
static GtkWidgetClass *parent_class = NULL;
+struct _RsttoPreferencesDialogPriv
+{
+ struct
+ {
+ GtkWidget *bgcolor_frame;
+ GtkWidget *bgcolor_vbox;
+ GtkWidget *bgcolor_hbox;
+ GtkWidget *bgcolor_color_button;
+ GtkWidget *bgcolor_override_check_button;
+
+ GtkWidget *cache_spin_button;
+
+ GtkWidget *cache_preload_check_button;
+ } display_tab;
+};
+
GType
rstto_preferences_dialog_get_type ()
{
@@ -66,12 +82,13 @@ rstto_preferences_dialog_get_type ()
static void
rstto_preferences_dialog_init(RsttoPreferencesDialog *dialog)
{
+ dialog->priv = g_new0 (RsttoPreferencesDialogPriv, 1);
+
RsttoSettings *settings_manager = rstto_settings_new ();
GtkWidget *notebook = gtk_notebook_new ();
GtkWidget *scroll_frame, *scroll_vbox;
GtkWidget *timeout_frame, *timeout_vbox, *timeout_lbl, *timeout_hscale;
GtkWidget *slideshow_bgcolor_frame, *slideshow_bgcolor_vbox, *slideshow_bgcolor_hbox, *slideshow_bgcolor_button;
- GtkWidget *bgcolor_frame, *bgcolor_vbox, *bgcolor_hbox, *bgcolor_button;
GtkWidget *cache_frame, *cache_vbox;
GtkWidget *scaling_frame, *scaling_vbox;
GtkWidget *cache_hbox, *cache_adjustment, *cache_spin_button, *cache_preload_check_button;
@@ -84,21 +101,29 @@ rstto_preferences_dialog_init(RsttoPreferencesDialog *dialog)
GtkWidget *display_main_lbl = gtk_label_new(_("Display"));
gtk_notebook_append_page(GTK_NOTEBOOK(notebook), display_main_vbox, display_main_lbl);
- bgcolor_vbox = gtk_vbox_new(FALSE, 0);
- bgcolor_frame = xfce_create_framebox_with_content (_("Background color"), bgcolor_vbox);
- gtk_box_pack_start (GTK_BOX (display_main_vbox), bgcolor_frame, FALSE, FALSE, 0);
-
- widget = gtk_check_button_new_with_label (_("Override background color:"));
- bgcolor_hbox = gtk_hbox_new(FALSE, 4);
- bgcolor_button = gtk_color_button_new();
- 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);
+ dialog->priv->display_tab.bgcolor_vbox = gtk_vbox_new(FALSE, 0);
+ dialog->priv->display_tab.bgcolor_frame = xfce_create_framebox_with_content (_("Background color"),
+ dialog->priv->display_tab.bgcolor_vbox);
+ gtk_box_pack_start (GTK_BOX (display_main_vbox), dialog->priv->display_tab.bgcolor_frame, FALSE, FALSE, 0);
+
+ dialog->priv->display_tab.bgcolor_override_check_button = gtk_check_button_new_with_label (_("Override background color:"));
+ dialog->priv->display_tab.bgcolor_hbox = gtk_hbox_new(FALSE, 4);
+ dialog->priv->display_tab.bgcolor_color_button = gtk_color_button_new();
+
+ gtk_box_pack_start (GTK_BOX (dialog->priv->display_tab.bgcolor_hbox),
+ dialog->priv->display_tab.bgcolor_override_check_button, FALSE, FALSE, 0);
+ gtk_box_pack_start (GTK_BOX (dialog->priv->display_tab.bgcolor_hbox),
+ dialog->priv->display_tab.bgcolor_color_button, FALSE, FALSE, 0);
+ gtk_box_pack_start (GTK_BOX (dialog->priv->display_tab.bgcolor_vbox),
+ dialog->priv->display_tab.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);
+ g_signal_connect (G_OBJECT (dialog->priv->display_tab.bgcolor_override_check_button),
+ "toggled", (GCallback)cb_rstto_preferences_dialog_bgcolor_override_toggled, dialog);
+ g_signal_connect (G_OBJECT (dialog->priv->display_tab.bgcolor_color_button),
+ "color-set", G_CALLBACK (cb_rstto_preferences_dialog_bgcolor_color_set), dialog);
+/************/
cache_vbox = gtk_vbox_new(FALSE, 0);
cache_frame = xfce_create_framebox_with_content (_("Image cache"), cache_vbox);
gtk_box_pack_start (GTK_BOX (display_main_vbox), cache_frame, FALSE, FALSE, 0);
@@ -215,7 +240,7 @@ static void
cb_rstto_preferences_dialog_bgcolor_override_toggled (GtkToggleButton *button,
gpointer user_data)
{
- GtkWidget *color_button = GTK_WIDGET (user_data);
+ RsttoPreferencesDialog *dialog = GTK_WIDGET (user_data);
RsttoSettings *settings = rstto_settings_new();
GValue bgcolor_override_val = {0, };
@@ -224,12 +249,12 @@ cb_rstto_preferences_dialog_bgcolor_override_toggled (GtkToggleButton *button,
if (gtk_toggle_button_get_active (button))
{
g_value_set_boolean (&bgcolor_override_val, TRUE);
- gtk_widget_set_sensitive (color_button, TRUE);
+ gtk_widget_set_sensitive (dialog->priv->display_tab.bgcolor_color_button, TRUE);
}
else
{
g_value_set_boolean (&bgcolor_override_val, FALSE);
- gtk_widget_set_sensitive (color_button, FALSE);
+ gtk_widget_set_sensitive (dialog->priv->display_tab.bgcolor_color_button, FALSE);
}
g_object_set_property (G_OBJECT (settings), "bgcolor-override", &bgcolor_override_val);
diff --git a/src/preferences_dialog.h b/src/preferences_dialog.h
index f1ff652..1ba2506 100644
--- a/src/preferences_dialog.h
+++ b/src/preferences_dialog.h
@@ -43,9 +43,12 @@ G_BEGIN_DECLS
typedef struct _RsttoPreferencesDialog RsttoPreferencesDialog;
+typedef struct _RsttoPreferencesDialogPriv RsttoPreferencesDialogPriv;
+
struct _RsttoPreferencesDialog
{
XfceTitledDialog parent;
+ RsttoPreferencesDialogPriv *priv;
};
typedef struct _RsttoPreferencesDialogClass RsttoPreferencesDialogClass;
diff --git a/src/settings.c b/src/settings.c
index 03abe00..3f9c059 100644
--- a/src/settings.c
+++ b/src/settings.c
@@ -353,6 +353,7 @@ rstto_settings_set_property (GObject *object,
const GValue *value,
GParamSpec *pspec)
{
+ GdkColor *color;
RsttoSettings *settings = RSTTO_SETTINGS (object);
switch (property_id)
@@ -373,7 +374,10 @@ rstto_settings_set_property (GObject *object,
settings->priv->window_height = g_value_get_uint (value);
break;
case PROP_BGCOLOR:
- settings->priv->bgcolor = g_value_get_boxed (value);
+ color = g_value_get_boxed (value);
+ settings->priv->bgcolor->red = color->red;
+ settings->priv->bgcolor->green = color->green;
+ settings->priv->bgcolor->blue = color->blue;
break;
case PROP_BGCOLOR_OVERRIDE:
settings->priv->bgcolor_override = g_value_get_boolean (value);
@@ -387,7 +391,10 @@ rstto_settings_set_property (GObject *object,
settings->priv->slideshow_timeout = g_value_get_uint (value);
break;
case PROP_SLIDESHOW_BGCOLOR:
- settings->priv->slideshow_bgcolor = g_value_get_boxed (value);
+ color = g_value_get_boxed (value);
+ settings->priv->slideshow_bgcolor->red = color->red;
+ settings->priv->slideshow_bgcolor->green = color->green;
+ settings->priv->slideshow_bgcolor->blue = color->blue;
break;
case PROP_SCROLLWHEEL_ACTION:
if (settings->priv->scrollwheel_action)
@@ -431,6 +438,9 @@ rstto_settings_get_property (GObject *object,
case PROP_SLIDESHOW_TIMEOUT:
g_value_set_uint (value, settings->priv->slideshow_timeout);
break;
+ case PROP_SLIDESHOW_BGCOLOR:
+ g_value_set_boxed (value, settings->priv->slideshow_bgcolor);
+ break;
case PROP_BGCOLOR:
g_value_set_boxed (value, settings->priv->bgcolor);
break;
More information about the Xfce4-commits
mailing list