[gthumb] using GdkRGBA instead of GdkColor
- From: Paolo Bacchilega <paobac src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gthumb] using GdkRGBA instead of GdkColor
- Date: Sun, 2 Dec 2012 11:21:13 +0000 (UTC)
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]