[gthumb] using GdkRGBA instead of GdkColor



commit db14af0b1ad02796a2ab50ca43ec948ed787d0f9
Author: Paolo Bacchilega <paobac src gnome org>
Date:   Sun Nov 4 14:32:30 2012 +0100

    using GdkRGBA instead of GdkColor

 .../contact_sheet/gth-contact-sheet-creator.c      |    4 +-
 .../contact_sheet/gth-contact-sheet-theme-dialog.c |  104 ++++++++++----------
 extensions/contact_sheet/gth-contact-sheet-theme.c |   77 +++++++--------
 extensions/contact_sheet/gth-contact-sheet-theme.h |   16 ++--
 gthumb/cairo-utils.c                               |   31 ++++--
 gthumb/cairo-utils.h                               |   13 ++-
 6 files changed, 126 insertions(+), 119 deletions(-)
---
diff --git a/extensions/contact_sheet/gth-contact-sheet-creator.c b/extensions/contact_sheet/gth-contact-sheet-creator.c
index 3a4a6ea..ab1cec0 100644
--- a/extensions/contact_sheet/gth-contact-sheet-creator.c
+++ b/extensions/contact_sheet/gth-contact-sheet-creator.c
@@ -478,7 +478,7 @@ get_text (GthContactSheetCreator *self,
 static void
 paint_text (GthContactSheetCreator *self,
 	    const char             *font_name,
-	    GdkColor               *color,
+	    GdkRGBA                *color,
 	    int                     x,
 	    int                     y,
 	    int                     width,
@@ -501,7 +501,7 @@ paint_text (GthContactSheetCreator *self,
 	x += self->priv->theme->frame_border;
 
 	cairo_save (self->priv->cr);
-	gdk_cairo_set_source_color (self->priv->cr, color);
+	gdk_cairo_set_source_rgba (self->priv->cr, color);
 	pango_cairo_update_layout (self->priv->cr, self->priv->pango_layout);
 	cairo_move_to (self->priv->cr, x, y);
 	pango_cairo_show_layout (self->priv->cr, self->priv->pango_layout);
diff --git a/extensions/contact_sheet/gth-contact-sheet-theme-dialog.c b/extensions/contact_sheet/gth-contact-sheet-theme-dialog.c
index 36287e5..d60eb4e 100644
--- a/extensions/contact_sheet/gth-contact-sheet-theme-dialog.c
+++ b/extensions/contact_sheet/gth-contact-sheet-theme-dialog.c
@@ -90,7 +90,7 @@ update_theme_from_controls (GthContactSheetThemeDialog *self)
 
 	if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (GET_WIDGET ("solid_color_radiobutton")))) {
 		self->priv->theme->background_type = GTH_CONTACT_SHEET_BACKGROUND_TYPE_SOLID;
-		gtk_color_button_get_color (GTK_COLOR_BUTTON (GET_WIDGET ("solid_color_colorpicker")), &self->priv->theme->background_color1);
+		gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (GET_WIDGET ("solid_color_colorpicker")), &self->priv->theme->background_color1);
 	}
 	else {
 		gboolean h_gradient_active = FALSE;
@@ -101,42 +101,42 @@ update_theme_from_controls (GthContactSheetThemeDialog *self)
 
 		if (h_gradient_active && v_gradient_active) {
 			self->priv->theme->background_type = GTH_CONTACT_SHEET_BACKGROUND_TYPE_FULL;
-			gtk_color_button_get_color (GTK_COLOR_BUTTON (GET_WIDGET ("h_gradient_1_colorpicker")), &self->priv->theme->background_color1);
-			gtk_color_button_get_color (GTK_COLOR_BUTTON (GET_WIDGET ("h_gradient_2_colorpicker")), &self->priv->theme->background_color2);
-			gtk_color_button_get_color (GTK_COLOR_BUTTON (GET_WIDGET ("v_gradient_1_colorpicker")), &self->priv->theme->background_color3);
-			gtk_color_button_get_color (GTK_COLOR_BUTTON (GET_WIDGET ("v_gradient_2_colorpicker")), &self->priv->theme->background_color4);
+			gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (GET_WIDGET ("h_gradient_1_colorpicker")), &self->priv->theme->background_color1);
+			gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (GET_WIDGET ("h_gradient_2_colorpicker")), &self->priv->theme->background_color2);
+			gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (GET_WIDGET ("v_gradient_1_colorpicker")), &self->priv->theme->background_color3);
+			gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (GET_WIDGET ("v_gradient_2_colorpicker")), &self->priv->theme->background_color4);
 		}
 		else if (h_gradient_active) {
 			self->priv->theme->background_type = GTH_CONTACT_SHEET_BACKGROUND_TYPE_HORIZONTAL;
-			gtk_color_button_get_color (GTK_COLOR_BUTTON (GET_WIDGET ("h_gradient_1_colorpicker")), &self->priv->theme->background_color1);
-			gtk_color_button_get_color (GTK_COLOR_BUTTON (GET_WIDGET ("h_gradient_2_colorpicker")), &self->priv->theme->background_color2);
+			gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (GET_WIDGET ("h_gradient_1_colorpicker")), &self->priv->theme->background_color1);
+			gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (GET_WIDGET ("h_gradient_2_colorpicker")), &self->priv->theme->background_color2);
 		}
 		else if (v_gradient_active) {
 			self->priv->theme->background_type = GTH_CONTACT_SHEET_BACKGROUND_TYPE_VERTICAL;
-			gtk_color_button_get_color (GTK_COLOR_BUTTON (GET_WIDGET ("v_gradient_1_colorpicker")), &self->priv->theme->background_color1);
-			gtk_color_button_get_color (GTK_COLOR_BUTTON (GET_WIDGET ("v_gradient_2_colorpicker")), &self->priv->theme->background_color2);
+			gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (GET_WIDGET ("v_gradient_1_colorpicker")), &self->priv->theme->background_color1);
+			gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (GET_WIDGET ("v_gradient_2_colorpicker")), &self->priv->theme->background_color2);
 		}
 	}
 
 	/* frame */
 
 	self->priv->theme->frame_style = gtk_combo_box_get_active (GTK_COMBO_BOX (GET_WIDGET ("frame_style_combobox")));
-	gtk_color_button_get_color (GTK_COLOR_BUTTON (GET_WIDGET ("frame_colorpicker")), &self->priv->theme->frame_color);
+	gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (GET_WIDGET ("frame_colorpicker")), &self->priv->theme->frame_color);
 
 	/* header */
 
 	self->priv->theme->header_font_name = g_strdup (gtk_font_button_get_font_name (GTK_FONT_BUTTON (GET_WIDGET ("header_fontpicker"))));
-	gtk_color_button_get_color (GTK_COLOR_BUTTON (GET_WIDGET ("header_colorpicker")), &self->priv->theme->header_color);
+	gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (GET_WIDGET ("header_colorpicker")), &self->priv->theme->header_color);
 
 	/* footer */
 
 	self->priv->theme->footer_font_name = g_strdup (gtk_font_button_get_font_name (GTK_FONT_BUTTON (GET_WIDGET ("footer_fontpicker"))));
-	gtk_color_button_get_color (GTK_COLOR_BUTTON (GET_WIDGET ("footer_colorpicker")), &self->priv->theme->footer_color);
+	gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (GET_WIDGET ("footer_colorpicker")), &self->priv->theme->footer_color);
 
 	/* caption */
 
 	self->priv->theme->caption_font_name = g_strdup (gtk_font_button_get_font_name (GTK_FONT_BUTTON (GET_WIDGET ("caption_fontpicker"))));
-	gtk_color_button_get_color (GTK_COLOR_BUTTON (GET_WIDGET ("caption_colorpicker")), &self->priv->theme->caption_color);
+	gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (GET_WIDGET ("caption_colorpicker")), &self->priv->theme->caption_color);
 }
 
 
@@ -153,13 +153,13 @@ h_gradient_swap_button_clicked_cb (GtkButton *button,
 				   gpointer   user_data)
 {
 	GthContactSheetThemeDialog *self = user_data;
-	GdkColor                    color1;
-	GdkColor                    color2;
+	GdkRGBA                     color1;
+	GdkRGBA                     color2;
 
-	gtk_color_button_get_color (GTK_COLOR_BUTTON (GET_WIDGET ("h_gradient_1_colorpicker")), &color1);
-	gtk_color_button_get_color (GTK_COLOR_BUTTON (GET_WIDGET ("h_gradient_2_colorpicker")), &color2);
-	gtk_color_button_set_color (GTK_COLOR_BUTTON (GET_WIDGET ("h_gradient_2_colorpicker")), &color1);
-	gtk_color_button_set_color (GTK_COLOR_BUTTON (GET_WIDGET ("h_gradient_1_colorpicker")), &color2);
+	gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (GET_WIDGET ("h_gradient_1_colorpicker")), &color1);
+	gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (GET_WIDGET ("h_gradient_2_colorpicker")), &color2);
+	gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (GET_WIDGET ("h_gradient_2_colorpicker")), &color1);
+	gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (GET_WIDGET ("h_gradient_1_colorpicker")), &color2);
 	update_preview (self);
 }
 
@@ -169,13 +169,13 @@ v_gradient_swap_button_clicked_cb (GtkButton *button,
 				   gpointer   user_data)
 {
 	GthContactSheetThemeDialog *self = user_data;
-	GdkColor                    color1;
-	GdkColor                    color2;
+	GdkRGBA                     color1;
+	GdkRGBA                     color2;
 
-	gtk_color_button_get_color (GTK_COLOR_BUTTON (GET_WIDGET ("v_gradient_1_colorpicker")), &color1);
-	gtk_color_button_get_color (GTK_COLOR_BUTTON (GET_WIDGET ("v_gradient_2_colorpicker")), &color2);
-	gtk_color_button_set_color (GTK_COLOR_BUTTON (GET_WIDGET ("v_gradient_2_colorpicker")), &color1);
-	gtk_color_button_set_color (GTK_COLOR_BUTTON (GET_WIDGET ("v_gradient_1_colorpicker")), &color2);
+	gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (GET_WIDGET ("v_gradient_1_colorpicker")), &color1);
+	gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (GET_WIDGET ("v_gradient_2_colorpicker")), &color2);
+	gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (GET_WIDGET ("v_gradient_2_colorpicker")), &color1);
+	gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (GET_WIDGET ("v_gradient_1_colorpicker")), &color2);
 	update_preview (self);
 }
 
@@ -316,22 +316,22 @@ _gth_contact_sheet_theme_new_default (void)
 	theme->display_name = g_strdup (_("New theme"));
 
 	theme->background_type = GTH_CONTACT_SHEET_BACKGROUND_TYPE_SOLID;
-	gdk_color_parse ("#fff", &theme->background_color1);
-	gdk_color_parse ("#fff", &theme->background_color2);
-	gdk_color_parse ("#fff", &theme->background_color3);
-	gdk_color_parse ("#fff", &theme->background_color4);
+	gdk_rgba_parse (&theme->background_color1, "#fff");
+	gdk_rgba_parse (&theme->background_color2, "#fff");
+	gdk_rgba_parse (&theme->background_color3, "#fff");
+	gdk_rgba_parse (&theme->background_color4, "#fff");
 
 	theme->frame_style = GTH_CONTACT_SHEET_FRAME_STYLE_SIMPLE_WITH_SHADOW;
-	gdk_color_parse ("#000", &theme->frame_color);
+	gdk_rgba_parse (&theme->frame_color, "#000");
 
 	theme->header_font_name = g_strdup ("Sans 22");
-	gdk_color_parse ("#000", &theme->frame_color);
+	gdk_rgba_parse (&theme->frame_color, "#000");
 
 	theme->footer_font_name = g_strdup ("Sans Bold 12");
-	gdk_color_parse ("#000", &theme->footer_color);
+	gdk_rgba_parse (&theme->footer_color, "#000");
 
 	theme->caption_font_name = g_strdup ("Sans 8");
-	gdk_color_parse ("#000", &theme->caption_color);
+	gdk_rgba_parse (&theme->caption_color, "#000");
 
 	return theme;
 }
@@ -353,38 +353,38 @@ update_controls_from_theme (GthContactSheetThemeDialog *self,
 	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (GET_WIDGET ("v_gradient_checkbutton")), (theme->background_type == GTH_CONTACT_SHEET_BACKGROUND_TYPE_VERTICAL) || (theme->background_type == GTH_CONTACT_SHEET_BACKGROUND_TYPE_FULL));
 
 	if (theme->background_type == GTH_CONTACT_SHEET_BACKGROUND_TYPE_SOLID) {
-		gtk_color_button_set_color (GTK_COLOR_BUTTON (GET_WIDGET ("solid_color_colorpicker")), &theme->background_color1);
-		gtk_color_button_set_color (GTK_COLOR_BUTTON (GET_WIDGET ("h_gradient_1_colorpicker")), &theme->background_color1);
-		gtk_color_button_set_color (GTK_COLOR_BUTTON (GET_WIDGET ("h_gradient_2_colorpicker")), &theme->background_color1);
-		gtk_color_button_set_color (GTK_COLOR_BUTTON (GET_WIDGET ("v_gradient_1_colorpicker")), &theme->background_color1);
-		gtk_color_button_set_color (GTK_COLOR_BUTTON (GET_WIDGET ("v_gradient_2_colorpicker")), &theme->background_color1);
+		gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (GET_WIDGET ("solid_color_colorpicker")), &theme->background_color1);
+		gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (GET_WIDGET ("h_gradient_1_colorpicker")), &theme->background_color1);
+		gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (GET_WIDGET ("h_gradient_2_colorpicker")), &theme->background_color1);
+		gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (GET_WIDGET ("v_gradient_1_colorpicker")), &theme->background_color1);
+		gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (GET_WIDGET ("v_gradient_2_colorpicker")), &theme->background_color1);
 	}
 	else if (theme->background_type == GTH_CONTACT_SHEET_BACKGROUND_TYPE_FULL) {
-		gtk_color_button_set_color (GTK_COLOR_BUTTON (GET_WIDGET ("solid_color_colorpicker")), &theme->background_color1);
-		gtk_color_button_set_color (GTK_COLOR_BUTTON (GET_WIDGET ("h_gradient_1_colorpicker")), &theme->background_color1);
-		gtk_color_button_set_color (GTK_COLOR_BUTTON (GET_WIDGET ("h_gradient_2_colorpicker")), &theme->background_color2);
-		gtk_color_button_set_color (GTK_COLOR_BUTTON (GET_WIDGET ("v_gradient_1_colorpicker")), &theme->background_color3);
-		gtk_color_button_set_color (GTK_COLOR_BUTTON (GET_WIDGET ("v_gradient_2_colorpicker")), &theme->background_color4);
+		gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (GET_WIDGET ("solid_color_colorpicker")), &theme->background_color1);
+		gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (GET_WIDGET ("h_gradient_1_colorpicker")), &theme->background_color1);
+		gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (GET_WIDGET ("h_gradient_2_colorpicker")), &theme->background_color2);
+		gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (GET_WIDGET ("v_gradient_1_colorpicker")), &theme->background_color3);
+		gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (GET_WIDGET ("v_gradient_2_colorpicker")), &theme->background_color4);
 	}
 	else {
-		gtk_color_button_set_color (GTK_COLOR_BUTTON (GET_WIDGET ("solid_color_colorpicker")), &theme->background_color1);
-		gtk_color_button_set_color (GTK_COLOR_BUTTON (GET_WIDGET ("h_gradient_1_colorpicker")), &theme->background_color1);
-		gtk_color_button_set_color (GTK_COLOR_BUTTON (GET_WIDGET ("h_gradient_2_colorpicker")), &theme->background_color2);
-		gtk_color_button_set_color (GTK_COLOR_BUTTON (GET_WIDGET ("v_gradient_1_colorpicker")), &theme->background_color1);
-		gtk_color_button_set_color (GTK_COLOR_BUTTON (GET_WIDGET ("v_gradient_2_colorpicker")), &theme->background_color2);
+		gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (GET_WIDGET ("solid_color_colorpicker")), &theme->background_color1);
+		gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (GET_WIDGET ("h_gradient_1_colorpicker")), &theme->background_color1);
+		gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (GET_WIDGET ("h_gradient_2_colorpicker")), &theme->background_color2);
+		gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (GET_WIDGET ("v_gradient_1_colorpicker")), &theme->background_color1);
+		gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (GET_WIDGET ("v_gradient_2_colorpicker")), &theme->background_color2);
 	}
 
 	gtk_combo_box_set_active (GTK_COMBO_BOX (GET_WIDGET ("frame_style_combobox")), theme->frame_style);
-	gtk_color_button_set_color (GTK_COLOR_BUTTON (GET_WIDGET ("frame_colorpicker")), &theme->frame_color);
+	gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (GET_WIDGET ("frame_colorpicker")), &theme->frame_color);
 
 	gtk_font_button_set_font_name (GTK_FONT_BUTTON (GET_WIDGET ("header_fontpicker")), theme->header_font_name);
-	gtk_color_button_set_color (GTK_COLOR_BUTTON (GET_WIDGET ("header_colorpicker")), &theme->header_color);
+	gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (GET_WIDGET ("header_colorpicker")), &theme->header_color);
 
 	gtk_font_button_set_font_name (GTK_FONT_BUTTON (GET_WIDGET ("footer_fontpicker")), theme->footer_font_name);
-	gtk_color_button_set_color (GTK_COLOR_BUTTON (GET_WIDGET ("footer_colorpicker")), &theme->footer_color);
+	gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (GET_WIDGET ("footer_colorpicker")), &theme->footer_color);
 
 	gtk_font_button_set_font_name (GTK_FONT_BUTTON (GET_WIDGET ("caption_fontpicker")), theme->caption_font_name);
-	gtk_color_button_set_color (GTK_COLOR_BUTTON (GET_WIDGET ("caption_colorpicker")), &theme->caption_color);
+	gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (GET_WIDGET ("caption_colorpicker")), &theme->caption_color);
 
 	update_preview (self);
 }
diff --git a/extensions/contact_sheet/gth-contact-sheet-theme.c b/extensions/contact_sheet/gth-contact-sheet-theme.c
index a965c48..119e83a 100644
--- a/extensions/contact_sheet/gth-contact-sheet-theme.c
+++ b/extensions/contact_sheet/gth-contact-sheet-theme.c
@@ -35,31 +35,31 @@
 
 
 static void
-_g_key_file_get_color (GKeyFile  *key_file,
-		       char      *group_name,
-		       char      *key,
-		       GdkColor  *color,
-		       GError   **error)
+_g_key_file_get_rgba (GKeyFile  *key_file,
+		      char      *group_name,
+		      char      *key,
+		      GdkRGBA   *color,
+		      GError   **error)
 {
 	char *spec;
 
 	spec = g_key_file_get_string (key_file, group_name, key, error);
 	if (spec != NULL)
-		gdk_color_parse (spec, color);
+		gdk_rgba_parse (color, spec);
 
 	g_free (spec);
 }
 
 
 static void
-_g_key_file_set_color (GKeyFile *key_file,
-		       char     *group_name,
-		       char     *key,
-		       GdkColor *color)
+_g_key_file_set_rgba (GKeyFile *key_file,
+		      char     *group_name,
+		      char     *key,
+		      GdkRGBA  *color)
 {
 	char *color_value;
 
-	color_value = gdk_color_to_string (color);
+	color_value = gdk_rgba_to_string (color);
 	g_key_file_set_string (key_file, group_name, key, color_value);
 
 	g_free (color_value);
@@ -99,25 +99,25 @@ gth_contact_sheet_theme_new_from_key_file (GKeyFile *key_file)
 	theme->background_type = _g_enum_type_get_value_by_nick (GTH_TYPE_CONTACT_SHEET_BACKGROUND_TYPE, nick)->value;
 	g_free (nick);
 
-	_g_key_file_get_color (key_file, "Background", "Color1", &theme->background_color1, NULL);
-	_g_key_file_get_color (key_file, "Background", "Color2", &theme->background_color2, NULL);
-	_g_key_file_get_color (key_file, "Background", "Color3", &theme->background_color3, NULL);
-	_g_key_file_get_color (key_file, "Background", "Color4", &theme->background_color4, NULL);
+	_g_key_file_get_rgba (key_file, "Background", "Color1", &theme->background_color1, NULL);
+	_g_key_file_get_rgba (key_file, "Background", "Color2", &theme->background_color2, NULL);
+	_g_key_file_get_rgba (key_file, "Background", "Color3", &theme->background_color3, NULL);
+	_g_key_file_get_rgba (key_file, "Background", "Color4", &theme->background_color4, NULL);
 
 	nick = g_key_file_get_string (key_file, "Frame", "Style", NULL);
 	theme->frame_style = _g_enum_type_get_value_by_nick (GTH_TYPE_CONTACT_SHEET_FRAME_STYLE, nick)->value;
 	g_free (nick);
 
-	_g_key_file_get_color (key_file, "Frame", "Color", &theme->frame_color, NULL);
+	_g_key_file_get_rgba (key_file, "Frame", "Color", &theme->frame_color, NULL);
 
 	theme->header_font_name = g_key_file_get_string (key_file, "Header", "Font", NULL);
-	_g_key_file_get_color (key_file, "Header", "Color", &theme->header_color, NULL);
+	_g_key_file_get_rgba (key_file, "Header", "Color", &theme->header_color, NULL);
 
 	theme->footer_font_name = g_key_file_get_string (key_file, "Footer", "Font", NULL);
-	_g_key_file_get_color (key_file, "Footer", "Color", &theme->footer_color, NULL);
+	_g_key_file_get_rgba (key_file, "Footer", "Color", &theme->footer_color, NULL);
 
 	theme->caption_font_name = g_key_file_get_string (key_file, "Caption", "Font", NULL);
-	_g_key_file_get_color (key_file, "Caption", "Color", &theme->caption_color, NULL);
+	_g_key_file_get_rgba (key_file, "Caption", "Color", &theme->caption_color, NULL);
 
 	return theme;
 }
@@ -159,26 +159,26 @@ gth_contact_sheet_theme_to_data (GthContactSheetTheme  *theme,
 	g_key_file_set_string (key_file, "Theme", "Name", theme->display_name);
 
 	g_key_file_set_string (key_file, "Background", "Type", _g_enum_type_get_value (GTH_TYPE_CONTACT_SHEET_BACKGROUND_TYPE, theme->background_type)->value_nick);
-	_g_key_file_set_color (key_file, "Background", "Color1", &theme->background_color1);
+	_g_key_file_set_rgba (key_file, "Background", "Color1", &theme->background_color1);
 	if (theme->background_type != GTH_CONTACT_SHEET_BACKGROUND_TYPE_SOLID) {
-		_g_key_file_set_color (key_file, "Background", "Color2", &theme->background_color2);
+		_g_key_file_set_rgba (key_file, "Background", "Color2", &theme->background_color2);
 		if (theme->background_type == GTH_CONTACT_SHEET_BACKGROUND_TYPE_FULL) {
-			_g_key_file_set_color (key_file, "Background", "Color3", &theme->background_color3);
-			_g_key_file_set_color (key_file, "Background", "Color4", &theme->background_color4);
+			_g_key_file_set_rgba (key_file, "Background", "Color3", &theme->background_color3);
+			_g_key_file_set_rgba (key_file, "Background", "Color4", &theme->background_color4);
 		}
 	}
 
 	g_key_file_set_string (key_file, "Frame", "Style", _g_enum_type_get_value (GTH_TYPE_CONTACT_SHEET_FRAME_STYLE, theme->frame_style)->value_nick);
-	_g_key_file_set_color (key_file, "Frame", "Color", &theme->frame_color);
+	_g_key_file_set_rgba (key_file, "Frame", "Color", &theme->frame_color);
 
 	g_key_file_set_string (key_file, "Header", "Font", theme->header_font_name);
-	_g_key_file_set_color (key_file, "Header", "Color", &theme->header_color);
+	_g_key_file_set_rgba (key_file, "Header", "Color", &theme->header_color);
 
 	g_key_file_set_string (key_file, "Footer", "Font", theme->footer_font_name);
-	_g_key_file_set_color (key_file, "Footer", "Color", &theme->footer_color);
+	_g_key_file_set_rgba (key_file, "Footer", "Color", &theme->footer_color);
 
 	g_key_file_set_string (key_file, "Caption", "Font", theme->caption_font_name);
-	_g_key_file_set_color (key_file, "Caption", "Color", &theme->caption_color);
+	_g_key_file_set_rgba (key_file, "Caption", "Color", &theme->caption_color);
 
 	*buffer = g_key_file_to_data (key_file, count, error);
 
@@ -223,21 +223,18 @@ gth_contact_sheet_theme_paint_background (GthContactSheetTheme *theme,
 {
 	cairo_surface_t *surface;
 	cairo_pattern_t *pattern;
-	cairo_color_t    color;
 
 	switch (theme->background_type) {
 	case GTH_CONTACT_SHEET_BACKGROUND_TYPE_SOLID:
-		gdk_cairo_set_source_color (cr, &theme->background_color1);
+		gdk_cairo_set_source_rgba (cr, &theme->background_color1);
 		cairo_rectangle (cr, 0, 0, width, height);
 		cairo_fill (cr);
 		break;
 
 	case GTH_CONTACT_SHEET_BACKGROUND_TYPE_VERTICAL:
 		pattern = cairo_pattern_create_linear (0.0, 0.0, 0.0, height);
-		_gdk_color_to_cairo_color (&theme->background_color1, &color);
-		cairo_pattern_add_color_stop_rgba (pattern, 0.0, color.r, color.g, color.b, 1.0);
-		_gdk_color_to_cairo_color (&theme->background_color2, &color);
-		cairo_pattern_add_color_stop_rgba (pattern, height, color.r, color.g, color.b, 1.0);
+		cairo_pattern_add_color_stop_rgba (pattern, 0.0, theme->background_color1.red, theme->background_color1.green, theme->background_color1.blue, theme->background_color1.alpha);
+		cairo_pattern_add_color_stop_rgba (pattern, height, theme->background_color2.red, theme->background_color2.green, theme->background_color2.blue, theme->background_color2.alpha);
 		cairo_pattern_set_filter (pattern, CAIRO_FILTER_BEST);
 		cairo_set_source (cr, pattern);
 		cairo_rectangle (cr, 0, 0, width, height);
@@ -247,10 +244,8 @@ gth_contact_sheet_theme_paint_background (GthContactSheetTheme *theme,
 
 	case GTH_CONTACT_SHEET_BACKGROUND_TYPE_HORIZONTAL:
 		pattern = cairo_pattern_create_linear (0.0, 0.0, width, 0.0);
-		_gdk_color_to_cairo_color (&theme->background_color1, &color);
-		cairo_pattern_add_color_stop_rgba (pattern, 0.0, color.r, color.g, color.b, 1.0);
-		_gdk_color_to_cairo_color (&theme->background_color2, &color);
-		cairo_pattern_add_color_stop_rgba (pattern, width, color.r, color.g, color.b, 1.0);
+		cairo_pattern_add_color_stop_rgba (pattern, 0.0, theme->background_color1.red, theme->background_color1.green, theme->background_color1.blue, theme->background_color1.alpha);
+		cairo_pattern_add_color_stop_rgba (pattern, width, theme->background_color2.red, theme->background_color2.green, theme->background_color2.blue, theme->background_color2.alpha);
 		cairo_pattern_set_filter (pattern, CAIRO_FILTER_BEST);
 		cairo_set_source (cr, pattern);
 		cairo_rectangle (cr, 0, 0, width, height);
@@ -296,7 +291,7 @@ gth_contact_sheet_theme_paint_frame (GthContactSheetTheme  *theme,
 		break;
 
 	case GTH_CONTACT_SHEET_FRAME_STYLE_SIMPLE:
-		gdk_cairo_set_source_color (cr, &theme->frame_color);
+		gdk_cairo_set_source_rgba (cr, &theme->frame_color);
 		_cairo_draw_frame (cr,
 				   image_rect->x,
 				   image_rect->y,
@@ -313,7 +308,7 @@ gth_contact_sheet_theme_paint_frame (GthContactSheetTheme  *theme,
 					 image_rect->height,
 					 5);
 
-		gdk_cairo_set_source_color (cr, &theme->frame_color);
+		gdk_cairo_set_source_rgba (cr, &theme->frame_color);
 		_cairo_draw_frame (cr,
 				   image_rect->x,
 				   image_rect->y,
@@ -419,7 +414,7 @@ static void
 paint_text (GthContactSheetTheme  *theme,
 	    cairo_t               *cr,
 	    const char            *font_name,
-	    GdkColor              *color,
+	    GdkRGBA               *color,
 	    int                    x,
 	    int                    y,
 	    int                    width,
@@ -463,7 +458,7 @@ paint_text (GthContactSheetTheme  *theme,
 	pango_layout_get_pixel_extents (pango_layout, NULL, &bounds);
 
 	cairo_save (cr);
-	gdk_cairo_set_source_color (cr, color);
+	gdk_cairo_set_source_rgba (cr, color);
 	pango_cairo_update_layout (cr, pango_layout);
 	if (footer)
 		cairo_move_to (cr, x, y - bounds.height - 2);
diff --git a/extensions/contact_sheet/gth-contact-sheet-theme.h b/extensions/contact_sheet/gth-contact-sheet-theme.h
index 4af7d7e..78ff583 100644
--- a/extensions/contact_sheet/gth-contact-sheet-theme.h
+++ b/extensions/contact_sheet/gth-contact-sheet-theme.h
@@ -50,25 +50,25 @@ typedef struct {
 	char                          *display_name;
 
 	GthContactSheetBackgroundType  background_type;
-	GdkColor                       background_color1;
-	GdkColor                       background_color2;
-	GdkColor                       background_color3;
-	GdkColor                       background_color4;
+	GdkRGBA                        background_color1;
+	GdkRGBA                        background_color2;
+	GdkRGBA                        background_color3;
+	GdkRGBA                        background_color4;
 
 	GthContactSheetFrameStyle      frame_style;
-	GdkColor                       frame_color;
+	GdkRGBA                        frame_color;
 	int                            frame_hpadding;
 	int                            frame_vpadding;
 	int                            frame_border;
 
 	char                          *header_font_name;
-	GdkColor                       header_color;
+	GdkRGBA                        header_color;
 
 	char                          *footer_font_name;
-	GdkColor                       footer_color;
+	GdkRGBA                        footer_color;
 
 	char                          *caption_font_name;
-	GdkColor                       caption_color;
+	GdkRGBA                        caption_color;
 	int                            caption_spacing;
 
 	int                            row_spacing;
diff --git a/gthumb/cairo-utils.c b/gthumb/cairo-utils.c
index 3d78475..4541136 100644
--- a/gthumb/cairo-utils.c
+++ b/gthumb/cairo-utils.c
@@ -91,6 +91,17 @@ _gdk_color_to_cairo_color_255 (GdkColor          *g_color,
 
 
 void
+_gdk_rgba_to_cairo_color_255 (GdkRGBA           *g_color,
+			      cairo_color_255_t *c_color)
+{
+	c_color->r = (guchar) 255.0 * g_color->red;
+	c_color->g = (guchar) 255.0 * g_color->green;
+	c_color->b = (guchar) 255.0 * g_color->blue;
+	c_color->a = (guchar) 255.0 * g_color->alpha;
+}
+
+
+void
 _cairo_clear_surface (cairo_surface_t  **surface)
 {
 	if (surface == NULL)
@@ -595,10 +606,10 @@ _cairo_copy_line_as_rgba (guchar *dest,
 
 void
 _cairo_paint_full_gradient (cairo_surface_t *surface,
-			    GdkColor        *h_color1,
-			    GdkColor        *h_color2,
-			    GdkColor        *v_color1,
-			    GdkColor        *v_color2)
+			    GdkRGBA         *h_color1,
+			    GdkRGBA         *h_color2,
+			    GdkRGBA         *v_color1,
+			    GdkRGBA         *v_color2)
 {
 	cairo_color_255_t  hcolor1;
 	cairo_color_255_t  hcolor2;
@@ -618,10 +629,10 @@ _cairo_paint_full_gradient (cairo_surface_t *surface,
 
 	cairo_surface_flush (surface);
 
-	_gdk_color_to_cairo_color_255 (h_color1, &hcolor1);
-	_gdk_color_to_cairo_color_255 (h_color2, &hcolor2);
-	_gdk_color_to_cairo_color_255 (v_color1, &vcolor1);
-	_gdk_color_to_cairo_color_255 (v_color2, &vcolor2);
+	_gdk_rgba_to_cairo_color_255 (h_color1, &hcolor1);
+	_gdk_rgba_to_cairo_color_255 (h_color2, &hcolor2);
+	_gdk_rgba_to_cairo_color_255 (v_color1, &vcolor1);
+	_gdk_rgba_to_cairo_color_255 (v_color2, &vcolor2);
 
 	width = cairo_image_surface_get_width (surface);
 	height = cairo_image_surface_get_height (surface);
@@ -735,7 +746,7 @@ _cairo_draw_slide (cairo_t  *cr,
 		   double    frame_height,
 		   double    image_width,
 		   double    image_height,
-		   GdkColor *frame_color,
+		   GdkRGBA  *frame_color,
 		   gboolean  draw_inner_border)
 {
 	const double dark_gray = 0.60;
@@ -757,7 +768,7 @@ _cairo_draw_slide (cairo_t  *cr,
 
 	/* background. */
 
-	gdk_cairo_set_source_color (cr, frame_color);
+	gdk_cairo_set_source_rgba (cr, frame_color);
 	cairo_rectangle (cr,
 			 frame_x,
 			 frame_y,
diff --git a/gthumb/cairo-utils.h b/gthumb/cairo-utils.h
index 2ecd2c6..b088448 100644
--- a/gthumb/cairo-utils.h
+++ b/gthumb/cairo-utils.h
@@ -152,7 +152,8 @@ void               _gdk_color_to_cairo_color                (GdkColor
 							     cairo_color_t         *c_color);
 void               _gdk_color_to_cairo_color_255            (GdkColor              *g_color,
 			         	 	 	     cairo_color_255_t     *c_color);
-
+void               _gdk_rgba_to_cairo_color_255             (GdkRGBA               *g_color,
+			         	 	 	     cairo_color_255_t     *c_color);
 
 /* surface */
 
@@ -189,10 +190,10 @@ void               _cairo_copy_line_as_rgba                 (guchar
 /* paint / draw */
 
 void              _cairo_paint_full_gradient                (cairo_surface_t       *surface,
-				 	 	 	     GdkColor              *h_color1,
-				 	 	 	     GdkColor              *h_color2,
-				 	 	 	     GdkColor              *v_color1,
-				 	 	 	     GdkColor              *v_color2);
+							     GdkRGBA               *h_color1,
+							     GdkRGBA               *h_color2,
+							     GdkRGBA               *v_color1,
+							     GdkRGBA               *v_color2);
 void              _cairo_draw_rounded_box                   (cairo_t               *cr,
 			 	 	 	 	     double                 x,
 			 	 	 	 	     double                 y,
@@ -218,7 +219,7 @@ void              _cairo_draw_slide                         (cairo_t
 		   	   	   	   	 	     double                 frame_height,
 		   	   	   	   	 	     double                 image_width,
 		   	   	   	   	 	     double                 image_height,
-		   	   	   	   	 	     GdkColor              *frame_color,
+		   	   	   	   	 	     GdkRGBA               *frame_color,
 		   	   	   	   	 	     gboolean               draw_inner_border);
 void              _cairo_paint_grid                         (cairo_t               *cr,
 							     cairo_rectangle_int_t *rectangle,



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]