[gthumb] use GdkRGBA instead of cairo_color_t



commit 4a5a56af363a0145564059c20f43e65f91b5b357
Author: Paolo Bacchilega <paobac src gnome org>
Date:   Sun Nov 4 15:10:51 2012 +0100

    use GdkRGBA instead of cairo_color_t

 extensions/contact_sheet/dlg-image-wall.c    |    2 +-
 extensions/file_tools/cairo-rotate.c         |   10 +++---
 extensions/file_tools/cairo-rotate.h         |    2 +-
 extensions/file_tools/gth-file-tool-rotate.c |   45 ++++++++++---------------
 extensions/file_tools/gth-image-rotator.c    |   30 ++++++++--------
 extensions/file_tools/gth-image-rotator.h    |    4 +-
 extensions/file_tools/gth-preview-tool.c     |   18 +++++-----
 gthumb/cairo-utils.c                         |   12 +++---
 gthumb/cairo-utils.h                         |    9 +----
 9 files changed, 58 insertions(+), 74 deletions(-)
---
diff --git a/extensions/contact_sheet/dlg-image-wall.c b/extensions/contact_sheet/dlg-image-wall.c
index da03d7d..1066b5c 100644
--- a/extensions/contact_sheet/dlg-image-wall.c
+++ b/extensions/contact_sheet/dlg-image-wall.c
@@ -154,7 +154,7 @@ ok_clicked_cb (GtkWidget  *widget,
 
 	theme = gth_contact_sheet_theme_new ();
 	theme->background_type = GTH_CONTACT_SHEET_BACKGROUND_TYPE_SOLID;
-	gdk_color_parse ("#000", &theme->background_color1);
+	gdk_rgba_parse (&theme->background_color1, "#000");
 	theme->frame_style = GTH_CONTACT_SHEET_FRAME_STYLE_NONE;
 	theme->frame_hpadding = 0;
 	theme->frame_vpadding = 0;
diff --git a/extensions/file_tools/cairo-rotate.c b/extensions/file_tools/cairo-rotate.c
index 706571e..70b4af2 100644
--- a/extensions/file_tools/cairo-rotate.c
+++ b/extensions/file_tools/cairo-rotate.c
@@ -362,7 +362,7 @@ cairo_surface_t *
 _cairo_image_surface_rotate (cairo_surface_t *image,
 		    	     double           angle,
 		    	     gboolean         high_quality,
-		    	     cairo_color_t   *background_color)
+		    	     GdkRGBA         *background_color)
 {
 	cairo_surface_t *rotated;
 	cairo_surface_t *tmp = NULL;
@@ -380,10 +380,10 @@ _cairo_image_surface_rotate (cairo_surface_t *image,
 		rotated = rotate (image,
 				  -angle,
 				  high_quality,
-				  background_color->r * 255.0,
-				  background_color->g * 255.0,
-				  background_color->b * 255.0,
-				  background_color->a * 255.0);
+				  background_color->red * 255.0,
+				  background_color->green * 255.0,
+				  background_color->blue * 255.0,
+				  background_color->alpha * 255.0);
 	else
 		rotated = cairo_surface_reference (image);
 
diff --git a/extensions/file_tools/cairo-rotate.h b/extensions/file_tools/cairo-rotate.h
index d958e24..2ebc1cb 100644
--- a/extensions/file_tools/cairo-rotate.h
+++ b/extensions/file_tools/cairo-rotate.h
@@ -43,7 +43,7 @@ double             _cairo_image_surface_rotate_get_align_angle         (gboolean
 cairo_surface_t *  _cairo_image_surface_rotate                         (cairo_surface_t       *image,
 		    	     	     	     	     	     	        double                 angle,
 		    	     	     	     	     	     	        gboolean               high_quality,
-		    	     	     	     	     	     	        cairo_color_t         *background_color);
+		    	     	     	     	     	     	        GdkRGBA               *background_color);
 
 G_END_DECLS
 
diff --git a/extensions/file_tools/gth-file-tool-rotate.c b/extensions/file_tools/gth-file-tool-rotate.c
index d9727aa..b3c57a1 100644
--- a/extensions/file_tools/gth-file-tool-rotate.c
+++ b/extensions/file_tools/gth-file-tool-rotate.c
@@ -292,16 +292,11 @@ static void
 background_colorbutton_color_set_cb (GtkColorButton    *color_button,
 		             	     GthFileToolRotate *self)
 {
-	GdkColor      color;
-	cairo_color_t background_color;
+	GdkRGBA  background_color;
 
 	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (GET_WIDGET ("background_transparent_checkbutton")), FALSE);
 
-	gtk_color_button_get_color (color_button, &color);
-	background_color.r = (double) color.red / 65535;
-	background_color.g = (double) color.green / 65535;
-	background_color.b = (double) color.blue / 65535;
-	background_color.a = 1.0;
+	gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (color_button), &background_color);
 	gth_image_rotator_set_background (GTH_IMAGE_ROTATOR (self->priv->rotator), &background_color);
 
 	apply_changes (self);
@@ -313,12 +308,12 @@ background_transparent_toggled_cb (GtkToggleButton   *toggle_button,
 		             	   GthFileToolRotate *self)
 {
 	if (gtk_toggle_button_get_active (toggle_button)) {
-		cairo_color_t background_color;
+		GdkRGBA background_color;
 
-		background_color.r = 0.0;
-		background_color.g = 0.0;
-		background_color.b = 0.0;
-		background_color.a = 0.0;
+		background_color.red = 0.0;
+		background_color.green = 0.0;
+		background_color.blue = 0.0;
+		background_color.alpha = 0.0;
 		gth_image_rotator_set_background (GTH_IMAGE_ROTATOR (self->priv->rotator), &background_color);
 	}
 	else
@@ -364,8 +359,7 @@ gth_file_tool_rotate_get_options (GthFileTool *base)
 	GtkWidget         *viewer_page;
 	GtkWidget         *viewer;
 	char              *color_spec;
-	GdkColor           color;
-	cairo_color_t      background_color;
+	GdkRGBA            background_color;
 
 	self = (GthFileToolRotate *) base;
 
@@ -432,14 +426,14 @@ gth_file_tool_rotate_get_options (GthFileTool *base)
 	}
 
 	color_spec = g_settings_get_string (self->priv->settings, PREF_ROTATE_BACKGROUND_COLOR);
-	if (! self->priv->has_alpha && gdk_color_parse (color_spec, &color)) {
-		_gdk_color_to_cairo_color (&color, &background_color);
+	if (! self->priv->has_alpha) {
+		gdk_rgba_parse (&background_color, color_spec);
 	}
 	else {
-		background_color.r = 0.0;
-		background_color.g = 0.0;
-		background_color.b = 0.0;
-		background_color.a = self->priv->has_alpha ? 0.0 : 1.0;
+		background_color.red = 0.0;
+		background_color.green = 0.0;
+		background_color.blue = 0.0;
+		background_color.alpha = 1.0;
 	}
 	gth_image_rotator_set_background (GTH_IMAGE_ROTATOR (self->priv->rotator), &background_color);
 
@@ -536,9 +530,8 @@ gth_file_tool_rotate_destroy_options (GthFileTool *base)
 	self = (GthFileToolRotate *) base;
 
 	if (self->priv->builder != NULL) {
-		cairo_color_t  background_color;
-		GdkColor       color;
-		char          *color_spec;
+		GdkRGBA  background_color;
+		char    *color_spec;
 
 		/* save the dialog options */
 
@@ -547,11 +540,9 @@ gth_file_tool_rotate_destroy_options (GthFileTool *base)
 		g_settings_set_enum (self->priv->settings, PREF_ROTATE_GRID_TYPE, gth_image_rotator_get_grid_type (GTH_IMAGE_ROTATOR (self->priv->rotator)));
 
 		gth_image_rotator_get_background (GTH_IMAGE_ROTATOR (self->priv->rotator), &background_color);
-		color.red = background_color.r * 255.0;
-		color.green = background_color.g * 255.0;
-		color.blue = background_color.b * 255.0;
-		color_spec = gdk_color_to_string (&color);
+		color_spec = gdk_rgba_to_string (&background_color);
 		g_settings_set_string (self->priv->settings, PREF_ROTATE_BACKGROUND_COLOR, color_spec);
+
 		g_free (color_spec);
 	}
 
diff --git a/extensions/file_tools/gth-image-rotator.c b/extensions/file_tools/gth-image-rotator.c
index 3319579..7ec4b22 100644
--- a/extensions/file_tools/gth-image-rotator.c
+++ b/extensions/file_tools/gth-image-rotator.c
@@ -63,7 +63,7 @@ struct _GthImageRotatorPrivate {
 
 	GdkPoint               center;
 	double                 angle;
-	cairo_color_t          background_color;
+	GdkRGBA                background_color;
 	gboolean               enable_crop;
 	cairo_rectangle_int_t  crop_region;
 	GthGridType            grid_type;
@@ -441,10 +441,10 @@ gth_image_rotator_draw (GthImageViewerTool *base,
 	cairo_rectangle (cr, 0, 0, allocation.width, allocation.height);
 
   	cairo_set_source_rgba (cr,
-  			       self->priv->background_color.r,
-  			       self->priv->background_color.g,
-  			       self->priv->background_color.b,
-  			       self->priv->background_color.a);
+  			       self->priv->background_color.red,
+  			       self->priv->background_color.green,
+  			       self->priv->background_color.blue,
+  			       self->priv->background_color.alpha);
 	cairo_fill (cr);
 
 	if (self->priv->preview_image == NULL)
@@ -695,10 +695,10 @@ gth_image_rotator_init (GthImageRotator *self)
 	self->priv->preview_image = NULL;
 	self->priv->grid_type = GTH_GRID_NONE;
 	self->priv->resize = GTH_TRANSFORM_RESIZE_BOUNDING_BOX;
-	self->priv->background_color.r = 0.0;
-	self->priv->background_color.g = 0.0;
-	self->priv->background_color.b = 0.0;
-	self->priv->background_color.a = 1.0;
+	self->priv->background_color.red = 0.0;
+	self->priv->background_color.green = 0.0;
+	self->priv->background_color.blue = 0.0;
+	self->priv->background_color.alpha = 1.0;
 	self->priv->enable_crop = FALSE;
 	self->priv->crop_region.x = 0;
 	self->priv->crop_region.y = 0;
@@ -831,7 +831,7 @@ gth_image_rotator_set_crop_region (GthImageRotator       *self,
 
 void
 gth_image_rotator_set_background (GthImageRotator *self,
-			          cairo_color_t   *color)
+			          GdkRGBA         *color)
 {
 	self->priv->background_color = *color;
 
@@ -844,7 +844,7 @@ gth_image_rotator_set_background (GthImageRotator *self,
 
 void
 gth_image_rotator_get_background (GthImageRotator *self,
-			          cairo_color_t   *color)
+			          GdkRGBA   *color)
 {
 	*color = self->priv->background_color;
 }
@@ -903,10 +903,10 @@ gth_image_rotator_get_result_fast (GthImageRotator *self)
   	cairo_rectangle (cr, clip_area.x, clip_area.y, clip_area.width, clip_area.height);
   	cairo_clip_preserve (cr);
   	cairo_set_source_rgba (cr,
-  			       self->priv->background_color.r,
-  			       self->priv->background_color.g,
-  			       self->priv->background_color.b,
-  			       self->priv->background_color.a);
+  			       self->priv->background_color.red,
+  			       self->priv->background_color.green,
+  			       self->priv->background_color.blue,
+  			       self->priv->background_color.alpha);
   	cairo_fill (cr);
 
   	/* paint the rotated image */
diff --git a/extensions/file_tools/gth-image-rotator.h b/extensions/file_tools/gth-image-rotator.h
index c73fb78..4300be0 100644
--- a/extensions/file_tools/gth-image-rotator.h
+++ b/extensions/file_tools/gth-image-rotator.h
@@ -85,9 +85,9 @@ GthTransformResize    gth_image_rotator_get_resize      (GthImageRotator       *
 void                  gth_image_rotator_set_crop_region (GthImageRotator       *self,
 							 cairo_rectangle_int_t *region);
 void                  gth_image_rotator_set_background  (GthImageRotator       *self,
-							 cairo_color_t         *color);
+							 GdkRGBA               *color);
 void                  gth_image_rotator_get_background  (GthImageRotator       *self,
-		 	 	 	 	 	 cairo_color_t         *color);
+		 	 	 	 	 	 GdkRGBA               *color);
 cairo_surface_t *     gth_image_rotator_get_result      (GthImageRotator       *self,
 							 gboolean               high_quality);
 
diff --git a/extensions/file_tools/gth-preview-tool.c b/extensions/file_tools/gth-preview-tool.c
index 4689ae6..77e6eed 100644
--- a/extensions/file_tools/gth-preview-tool.c
+++ b/extensions/file_tools/gth-preview-tool.c
@@ -43,7 +43,7 @@ struct _GthPreviewToolPrivate {
 	gboolean               original_zoom_enabled;
 	cairo_surface_t       *preview_image;
 	cairo_rectangle_int_t  preview_image_area;
-	cairo_color_t          background_color;
+	GdkRGBA                background_color;
 };
 
 
@@ -193,10 +193,10 @@ gth_preview_tool_draw (GthImageViewerTool *base,
 	cairo_rectangle (cr, 0, 0, allocation.width, allocation.height);
 
   	cairo_set_source_rgba (cr,
-  			       self->priv->background_color.r,
-  			       self->priv->background_color.g,
-  			       self->priv->background_color.b,
-  			       self->priv->background_color.a);
+  			       self->priv->background_color.red,
+  			       self->priv->background_color.green,
+  			       self->priv->background_color.blue,
+  			       self->priv->background_color.alpha);
 	cairo_fill (cr);
 	cairo_restore (cr);
 
@@ -318,10 +318,10 @@ gth_preview_tool_init (GthPreviewTool *self)
 {
 	self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, GTH_TYPE_PREVIEW_TOOL, GthPreviewToolPrivate);
 	self->priv->preview_image = NULL;
-	self->priv->background_color.r = 0.2;
-	self->priv->background_color.g = 0.2;
-	self->priv->background_color.b = 0.2;
-	self->priv->background_color.a = 1.0;
+	self->priv->background_color.red = 0.2;
+	self->priv->background_color.green = 0.2;
+	self->priv->background_color.blue = 0.2;
+	self->priv->background_color.alpha = 1.0;
 }
 
 
diff --git a/gthumb/cairo-utils.c b/gthumb/cairo-utils.c
index 4541136..de9a1e0 100644
--- a/gthumb/cairo-utils.c
+++ b/gthumb/cairo-utils.c
@@ -69,13 +69,13 @@ _cairo_rectangle_contains_point (cairo_rectangle_int_t *rect,
 
 
 void
-_gdk_color_to_cairo_color (GdkColor      *g_color,
-			   cairo_color_t *c_color)
+_gdk_color_to_cairo_color (GdkColor *g_color,
+			   GdkRGBA  *c_color)
 {
-	c_color->r = (double) g_color->red / 65535;
-	c_color->g = (double) g_color->green / 65535;
-	c_color->b = (double) g_color->blue / 65535;
-	c_color->a = 1.0;
+	c_color->red = (double) g_color->red / 65535;
+	c_color->green = (double) g_color->green / 65535;
+	c_color->blue = (double) g_color->blue / 65535;
+	c_color->alpha = 1.0;
 }
 
 
diff --git a/gthumb/cairo-utils.h b/gthumb/cairo-utils.h
index b088448..92e3dad 100644
--- a/gthumb/cairo-utils.h
+++ b/gthumb/cairo-utils.h
@@ -119,13 +119,6 @@
 /* types */
 
 typedef struct {
-	double r;
-	double g;
-	double b;
-	double a;
-} cairo_color_t;
-
-typedef struct {
 	guchar r;
 	guchar g;
 	guchar b;
@@ -149,7 +142,7 @@ gboolean           _cairo_rectangle_contains_point          (cairo_rectangle_int
 /* colors */
 
 void               _gdk_color_to_cairo_color                (GdkColor              *g_color,
-							     cairo_color_t         *c_color);
+							     GdkRGBA               *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,



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