[evolution] Kill redundant RGB/HSV color conversion utilities.



commit e969826cd3ef2ba0f473313197990793d4bcac0b
Author: Matthew Barnes <mbarnes redhat com>
Date:   Mon Jan 4 15:06:56 2010 -0500

    Kill redundant RGB/HSV color conversion utilities.
    
    Use gtk_rgb_to_hsv() instead of e_rgb_to_hsv().
    Use gtk_hsv_to_rgb() instead of e_hsv_to_rgb().

 widgets/misc/e-hsv-utils.c |  135 +++++---------------------------------------
 widgets/misc/e-hsv-utils.h |   20 +------
 2 files changed, 17 insertions(+), 138 deletions(-)
---
diff --git a/widgets/misc/e-hsv-utils.c b/widgets/misc/e-hsv-utils.c
index 3a2e450..66bf296 100644
--- a/widgets/misc/e-hsv-utils.c
+++ b/widgets/misc/e-hsv-utils.c
@@ -1,6 +1,6 @@
 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
 /*
- * e-hsv-utils.c - utilites for manipulating colours in HSV space
+ * e-hsv-utils.c - utilites for manipulating colors in HSV space
  * Copyright (C) 1995-2001 Seth Nickell, Peter Mattis, Spencer Kimball and Josh MacDonald
  *
  * Authors:
@@ -26,19 +26,22 @@
 #include "e-hsv-utils.h"
 
 /* tweak_hsv is a really tweaky function. it modifies its first argument, which
-   should be the colour you want tweaked. delta_h, delta_s and delta_v specify
+   should be the color you want tweaked. delta_h, delta_s and delta_v specify
    how much you want their respective channels modified (and in what direction).
    if it can't do the specified modification, it does it in the oppositon direction */
 void
-e_hsv_tweak (GdkColor *colour, gdouble delta_h, gdouble delta_s, gdouble delta_v)
+e_hsv_tweak (GdkColor *color,
+             gdouble delta_h,
+             gdouble delta_s,
+             gdouble delta_v)
 {
 	gdouble h, s, v, r, g, b;
 
-	r = colour->red   / 65535.0f;
-	g = colour->green / 65535.0f;
-	b = colour->blue  / 65535.0f;
+	r = color->red   / 65535.0f;
+	g = color->green / 65535.0f;
+	b = color->blue  / 65535.0f;
 
-	e_rgb_to_hsv (r, g, b, &h, &s, &v);
+	gtk_rgb_to_hsv (r, g, b, &h, &s, &v);
 
 	if (h + delta_h < 0) {
 		h -= delta_h;
@@ -58,120 +61,10 @@ e_hsv_tweak (GdkColor *colour, gdouble delta_h, gdouble delta_s, gdouble delta_v
 		v += delta_v;
 	}
 
-	e_hsv_to_rgb (h, s, v, &r, &g, &b);
+	gtk_hsv_to_rgb (h, s, v, &r, &g, &b);
 
-	colour->red   = r * 65535.0f;
-	colour->green = g * 65535.0f;
-	colour->blue  = b * 65535.0f;
-}
-
-/* Copy n' Paste code from the GTK+ colour selector (gtkcolorsel.c) */
-/* Originally lifted, I suspect, from "Foley, van Dam"              */
-void
-e_hsv_to_rgb (gdouble  h, gdouble  s, gdouble  v,
-	      gdouble *r, gdouble *g, gdouble *b)
-{
-  gint i;
-  gdouble f, w, q, t;
-
-  if (s == 0.0)
-    s = 0.000001;
-
-  if (h == -1.0)
-    {
-      *r = v;
-      *g = v;
-      *b = v;
-    }
-  else
-    {
-      if (h == 360.0)
-	h = 0.0;
-      h = h / 60.0;
-      i = (gint) h;
-      f = h - i;
-      w = v * (1.0 - s);
-      q = v * (1.0 - (s * f));
-      t = v * (1.0 - (s * (1.0 - f)));
-
-      switch (i)
-	{
-	case 0:
-	  *r = v;
-	  *g = t;
-	  *b = w;
-	  break;
-	case 1:
-	  *r = q;
-	  *g = v;
-	  *b = w;
-	  break;
-	case 2:
-	  *r = w;
-	  *g = v;
-	  *b = t;
-	  break;
-	case 3:
-	  *r = w;
-	  *g = q;
-	  *b = v;
-	  break;
-	case 4:
-	  *r = t;
-	  *g = w;
-	  *b = v;
-	  break;
-	case 5:
-	  *r = v;
-	  *g = w;
-	  *b = q;
-	  break;
-	}
-    }
-}
-
-void
-e_rgb_to_hsv (gdouble r, gdouble g, gdouble b,
-	      gdouble *h, gdouble *s, gdouble *v)
-{
-  double max, min, delta;
-
-  max = r;
-  if (g > max)
-    max = g;
-  if (b > max)
-    max = b;
-
-  min = r;
-  if (g < min)
-    min = g;
-  if (b < min)
-    min = b;
-
-  *v = max;
-
-  if (max != 0.0)
-    *s = (max - min) / max;
-  else
-    *s = 0.0;
-
-  if (*s == 0.0)
-    *h = -1.0;
-  else
-    {
-      delta = max - min;
-
-      if (r == max)
-	*h = (g - b) / delta;
-      else if (g == max)
-	*h = 2.0 + (b - r) / delta;
-      else if (b == max)
-	*h = 4.0 + (r - g) / delta;
-
-      *h = *h * 60.0;
-
-      if (*h < 0.0)
-	*h = *h + 360;
-    }
+	color->red   = r * 65535.0f;
+	color->green = g * 65535.0f;
+	color->blue  = b * 65535.0f;
 }
 
diff --git a/widgets/misc/e-hsv-utils.h b/widgets/misc/e-hsv-utils.h
index f76bed7..e2f707e 100644
--- a/widgets/misc/e-hsv-utils.h
+++ b/widgets/misc/e-hsv-utils.h
@@ -1,6 +1,6 @@
 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
 /*
- * e-hsv-utils.h - utilites for manipulating colours in HSV space
+ * e-hsv-utils.h - utilites for manipulating colors in HSV space
  * Copyright (C) 1995-2001 Seth Nickell, Peter Mattis, Spencer Kimball and Josh MacDonald
  *
  * Authors:
@@ -24,25 +24,11 @@
 #ifndef _E_HSV_UTILS_H_
 #define _E_HSV_UTILS_H_
 
-#include <gdk/gdk.h>
+#include <gtk/gtk.h>
 
 G_BEGIN_DECLS
 
-void  e_hsv_to_rgb  (gdouble   h,
-		     gdouble   s,
-		     gdouble   v,
-		     gdouble  *r,
-		     gdouble  *g,
-		     gdouble  *b);
-
-void  e_rgb_to_hsv  (gdouble   r,
-		     gdouble   g,
-		     gdouble   b,
-		     gdouble  *h,
-		     gdouble  *s,
-		     gdouble  *v);
-
-void  e_hsv_tweak   (GdkColor *colour,
+void  e_hsv_tweak   (GdkColor *color,
 		     gdouble   delta_h,
 		     gdouble   delta_s,
 		     gdouble   delta_v);



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