murrine r57 - in trunk: . src



Author: acimitan
Date: Wed Sep  3 13:51:29 2008
New Revision: 57
URL: http://svn.gnome.org/viewvc/murrine?rev=57&view=rev

Log:
2008-09-03  Andrea Cimitan  <andrea cimitan gmail com>

	* src/cairo-support.c (get_contrast):
	* src/cairo-support.h:
	* src/murrine_style.c (murrine_style_init_from_rc),
	(murrine_style_realize):
	Completed contrast function: now it shades progressbars borders 
	and other widgets


Modified:
   trunk/ChangeLog
   trunk/src/cairo-support.c
   trunk/src/cairo-support.h
   trunk/src/murrine_style.c

Modified: trunk/src/cairo-support.c
==============================================================================
--- trunk/src/cairo-support.c	(original)
+++ trunk/src/cairo-support.c	Wed Sep  3 13:51:29 2008
@@ -637,3 +637,25 @@
 
 	return old;
 }
+
+double
+get_contrast (double old, double factor)
+{
+	if (factor == 1.0)
+		return old;
+
+	if (factor < 1.0)
+	{
+		if (old < 1.0)
+			return old+(1.0-old)*(1.0-factor);
+		else
+			return old-(old-1.0)*(1.0-factor);
+	}
+	else
+	{
+		if (old < 1.0)
+			return old-old*(factor-1.0);
+		else
+			return old+(old-1.0)*(factor-1.0);
+	}
+}

Modified: trunk/src/cairo-support.h
==============================================================================
--- trunk/src/cairo-support.h	(original)
+++ trunk/src/cairo-support.h	Wed Sep  3 13:51:29 2008
@@ -49,6 +49,8 @@
 
 G_GNUC_INTERNAL double get_increased_ratio (double old, double factor);
 
+G_GNUC_INTERNAL double get_contrast (double old, double factor);
+
 G_GNUC_INTERNAL void murrine_exchange_axis (cairo_t  *cr,
                                             gint     *x,
                                             gint     *y,

Modified: trunk/src/murrine_style.c
==============================================================================
--- trunk/src/murrine_style.c	(original)
+++ trunk/src/murrine_style.c	Wed Sep  3 13:51:29 2008
@@ -1637,25 +1637,26 @@
 
 	GTK_STYLE_CLASS (murrine_style_parent_class)->init_from_rc (style, rc_style);
 
+	/* Shades/Colors/Ratio */
+	murrine_style->highlight_ratio    = MURRINE_RC_STYLE (rc_style)->highlight_ratio;
 	murrine_style->gradient_shades[0] = MURRINE_RC_STYLE (rc_style)->gradient_shades[0];
 	murrine_style->gradient_shades[1] = MURRINE_RC_STYLE (rc_style)->gradient_shades[1];
 	murrine_style->gradient_shades[2] = MURRINE_RC_STYLE (rc_style)->gradient_shades[2];
 	murrine_style->gradient_shades[3] = MURRINE_RC_STYLE (rc_style)->gradient_shades[3];
-	murrine_style->highlight_ratio    = MURRINE_RC_STYLE (rc_style)->highlight_ratio;
-	murrine_style->lightborder_ratio  = MURRINE_RC_STYLE (rc_style)->lightborder_ratio;
-
-	murrine_style->glazestyle         = MURRINE_RC_STYLE (rc_style)->glazestyle;
-
 	/* This is required to avoid glitches on different glazestyles */
-	if (murrine_style->glazestyle != 0)
+	if (MURRINE_RC_STYLE (rc_style)->glazestyle != 0)
 	{
 		double gradient_stop_mid = ((murrine_style->gradient_shades[1])+
 		                            (murrine_style->gradient_shades[2]))/2.0;
 		murrine_style->gradient_shades[1] = gradient_stop_mid;
 		murrine_style->gradient_shades[2] = gradient_stop_mid;
 	}
+	/* Adjust lightborder_ratio reading contrast */
+	murrine_style->lightborder_ratio = get_contrast(MURRINE_RC_STYLE (rc_style)->lightborder_ratio,
+	                                                MURRINE_RC_STYLE (rc_style)->contrast);
 
-	/* Ignore roundness > 1 with glazestyle = 2 */
+	/* Widget styles */
+	murrine_style->glazestyle         = MURRINE_RC_STYLE (rc_style)->glazestyle;
 	if (murrine_style->glazestyle == 2)
 	{
 		if (MURRINE_RC_STYLE (rc_style)->roundness > 0)
@@ -1686,7 +1687,8 @@
 	if (murrine_style->has_scrollbar_color)
 		murrine_style->scrollbar_color = MURRINE_RC_STYLE (rc_style)->scrollbar_color;
 
-	g_assert ((MURRINE_RC_STYLE (rc_style)->style >= 0) && (MURRINE_RC_STYLE (rc_style)->style < MRN_NUM_STYLES));
+	g_assert ((MURRINE_RC_STYLE (rc_style)->style >= 0) &&
+	          (MURRINE_RC_STYLE (rc_style)->style < MRN_NUM_STYLES));
 	murrine_style->style               = MURRINE_RC_STYLE (rc_style)->style;
 
 	switch (murrine_style->style)
@@ -1755,6 +1757,7 @@
 {
 	MurrineStyle *murrine_style = MURRINE_STYLE (style);
 	double shades[] = {1.065, 0.95, 0.896, 0.82, 0.75, 0.665, 0.5, 0.45, 0.4};
+	double spots[] = {1.42, 1.00, 0.65};
 	MurrineRGB spot_color;
 	MurrineRGB bg_normal;
 	double contrast;
@@ -1768,32 +1771,22 @@
 	bg_normal.g = style->bg[0].green / 65535.0;
 	bg_normal.b = style->bg[0].blue  / 65535.0;
 
-	/* Lighter to darker */
+	/* Apply contrast */
 	for (i = 0; i < 9; i++)
 	{
-		if (contrast < 1.0)
-			murrine_shade (&bg_normal, (shades[i] < 1.0) ?
-			               shades[i]+(1.0-shades[i])*(1.0-contrast) :
-			               shades[i]-(shades[i]-1.0)*(1.0-contrast),
-			               &murrine_style->colors.shade[i]);
-		else if (contrast > 1.0)
-			murrine_shade (&bg_normal, (shades[i] < 1.0) ?
-			               shades[i]-shades[i]*(contrast-1.0) :
-			               shades[i]+(shades[i]-1.0)*(contrast-1.0),
-			               &murrine_style->colors.shade[i]);
-		else
-			murrine_shade (&bg_normal,
-			               shades[i],
-			               &murrine_style->colors.shade[i]);
+		murrine_shade (&bg_normal,
+		               get_contrast(shades[i], contrast),
+		               &murrine_style->colors.shade[i]);
 	}
+	spots[2]=get_contrast(spots[2], contrast);
 
 	spot_color.r = style->bg[GTK_STATE_SELECTED].red   / 65535.0;
 	spot_color.g = style->bg[GTK_STATE_SELECTED].green / 65535.0;
 	spot_color.b = style->bg[GTK_STATE_SELECTED].blue  / 65535.0;
 
-	murrine_shade (&spot_color, 1.42, &murrine_style->colors.spot[0]);
-	murrine_shade (&spot_color, 1.00, &murrine_style->colors.spot[1]);
-	murrine_shade (&spot_color, 0.65, &murrine_style->colors.spot[2]);
+	murrine_shade (&spot_color, spots[0], &murrine_style->colors.spot[0]);
+	murrine_shade (&spot_color, spots[1], &murrine_style->colors.spot[1]);
+	murrine_shade (&spot_color, spots[2], &murrine_style->colors.spot[2]);
 
 	for (i=0; i<5; i++)
 	{



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