murrine r35 - in trunk: . src



Author: acimitan
Date: Thu Apr 10 16:50:53 2008
New Revision: 35
URL: http://svn.gnome.org/viewvc/murrine?rev=35&view=rev

Log:
2008-04-10  Andrea Cimitan  <andrea cimitan gmail com>

	* src/cairo-support.c: (murrine_draw_lightborder),
	(murrine_set_gradient):
	* src/murrine_draw.c: (murrine_draw_button),
	(murrine_draw_progressbar_fill), (murrine_draw_tab),
	(murrine_draw_list_view_header), (murrine_draw_scrollbar_slider),
	(murrine_draw_tooltip):
	* src/murrine_draw_rgba.c: (murrine_rgba_draw_button),
	(murrine_rgba_draw_progressbar_fill), (murrine_rgba_draw_tab),
	(murrine_rgba_draw_scrollbar_slider), (murrine_rgba_draw_tooltip):
	* src/murrine_rc_style.c: (murrine_rc_style_init),
	(theme_parse_gradient), (murrine_rc_style_parse),
	(murrine_rc_style_merge):
	* src/murrine_rc_style.h:
	* src/murrine_style.c: (murrine_set_widget_parameters),
	(murrine_style_init_from_rc), (murrine_style_copy):
	* src/murrine_style.h:
	* src/murrine_types.h:
	First approach with the new gradient_shades array for the options.
	Name may change in the future.


Modified:
   trunk/ChangeLog
   trunk/src/cairo-support.c
   trunk/src/murrine_draw.c
   trunk/src/murrine_draw_rgba.c
   trunk/src/murrine_rc_style.c
   trunk/src/murrine_rc_style.h
   trunk/src/murrine_style.c
   trunk/src/murrine_style.h
   trunk/src/murrine_types.h

Modified: trunk/src/cairo-support.c
==============================================================================
--- trunk/src/cairo-support.c	(original)
+++ trunk/src/cairo-support.c	Thu Apr 10 16:50:53 2008
@@ -490,22 +490,23 @@
 		alpha_value = mrn_gradient.rgba_opacity;
 	}
 
-	murrine_shade (highlight_color, mrn_gradient.gradient_stop_1, &shade1);
-	murrine_shade (highlight_color, mrn_gradient.gradient_stop_2, &shade2);
-	murrine_shade (highlight_color, mrn_gradient.gradient_stop_3, &shade3);
-	murrine_shade (highlight_color, mrn_gradient.gradient_stop_4, &shade4);
+	murrine_shade (highlight_color, mrn_gradient.gradient_shades[0], &shade1);
+	murrine_shade (highlight_color, mrn_gradient.gradient_shades[1], &shade2);
+	murrine_shade (highlight_color, mrn_gradient.gradient_shades[2], &shade3);
+	murrine_shade (highlight_color, mrn_gradient.gradient_shades[3], &shade4);
 
 	double fill_pos = 1.0-(1.0/(!horizontal ? (double)(width) : (double)(height)));
 	if (corners == MRN_CORNER_ALL && radius > 2)
-		fill_pos = 1.0-((((double)radius-1.0)/2.0)/(!horizontal ? (double)(width) : (double)(height)));
+		fill_pos = 1.0-((((double)radius-1.0)/2.0)/
+		                 (!horizontal ? (double)(width) : (double)(height)));
 
 	radius < 2 ? cairo_rectangle (cr, x, y, width, height) :
 	             clearlooks_rounded_rectangle (cr, x, y, width, height, radius-1, corners);
 
 	pattern = cairo_pattern_create_linear (x, y, !horizontal ? width+x : x, !horizontal ? y : height+y);
 	cairo_pattern_add_color_stop_rgba (pattern, 0.0,      shade1.r, shade1.g, shade1.b, 0.5*alpha_value);
-	cairo_pattern_add_color_stop_rgba (pattern, 0.5,      shade2.r, shade2.g, shade2.b, 0.5*alpha_value);
-	cairo_pattern_add_color_stop_rgba (pattern, 0.5,      shade3.r, shade3.g, shade3.b, 0.5*alpha_value);
+	cairo_pattern_add_color_stop_rgba (pattern, 0.49,      shade2.r, shade2.g, shade2.b, 0.5*alpha_value);
+	cairo_pattern_add_color_stop_rgba (pattern, 0.49,      shade3.r, shade3.g, shade3.b, 0.5*alpha_value);
 	cairo_pattern_add_color_stop_rgba (pattern, fill_pos, shade4.r, shade4.g, shade4.b, 0.5*alpha_value);
 	cairo_pattern_add_color_stop_rgba (pattern, fill_pos, shade4.r, shade4.g, shade4.b,
 	                                   lightborderstyle > 0 ? 0.5*alpha_value : 0.0);
@@ -548,45 +549,24 @@
 		cairo_pattern_t *pattern;
 		MurrineRGB shade1, shade2, shade3, shade4;
 
-		murrine_shade (color, mrn_gradient.gradient_stop_1, &shade1);
-		murrine_shade (color, mrn_gradient.gradient_stop_2, &shade2);
-		murrine_shade (color, mrn_gradient.gradient_stop_3, &shade3);
-		murrine_shade (color, mrn_gradient.gradient_stop_4, &shade4);
+		murrine_shade (color, mrn_gradient.gradient_shades[0], &shade1);
+		murrine_shade (color, mrn_gradient.gradient_shades[1], &shade2);
+		murrine_shade (color, mrn_gradient.gradient_shades[2], &shade3);
+		murrine_shade (color, mrn_gradient.gradient_shades[3], &shade4);
 
 		pattern = cairo_pattern_create_linear (x, y, width+x, height+y);
-		if (mrn_gradient.use_rgba)
-		{
-			cairo_pattern_add_color_stop_rgba (pattern, 0.0, shade1.r, shade1.g, shade1.b, alpha_value);
-			cairo_pattern_add_color_stop_rgba (pattern, 0.5, shade2.r, shade2.g, shade2.b, alpha_value);
-			cairo_pattern_add_color_stop_rgba (pattern, 0.5, shade3.r, shade3.g, shade3.b, alpha_value);
-			cairo_pattern_add_color_stop_rgba (pattern, 1.0, shade4.r, shade4.g, shade4.b, alpha_value);
-		}
-		else
-		{
-			if (!alpha)
-			{
-				cairo_pattern_add_color_stop_rgb (pattern, 0.0, shade1.r, shade1.g, shade1.b);
-				cairo_pattern_add_color_stop_rgb (pattern, 0.5, shade2.r, shade2.g, shade2.b);
-				cairo_pattern_add_color_stop_rgb (pattern, 0.5, shade3.r, shade3.g, shade3.b);
-				cairo_pattern_add_color_stop_rgb (pattern, 1.0, shade4.r, shade4.g, shade4.b);
-			}
-			else
-			{
-				cairo_pattern_add_color_stop_rgba (pattern, 0.0, shade1.r, shade1.g, shade1.b, alpha_value);
-				cairo_pattern_add_color_stop_rgba (pattern, 0.5, shade2.r, shade2.g, shade2.b, alpha_value);
-				cairo_pattern_add_color_stop_rgba (pattern, 0.5, shade3.r, shade3.g, shade3.b, alpha_value);
-				cairo_pattern_add_color_stop_rgba (pattern, 1.0, shade4.r, shade4.g, shade4.b, alpha_value);
-			}
-		}
+
+		cairo_pattern_add_color_stop_rgba (pattern, 0.00, shade1.r, shade1.g, shade1.b, alpha_value);
+		cairo_pattern_add_color_stop_rgba (pattern, 0.49, shade2.r, shade2.g, shade2.b, alpha_value);
+		cairo_pattern_add_color_stop_rgba (pattern, 0.49, shade3.r, shade3.g, shade3.b, alpha_value);
+		cairo_pattern_add_color_stop_rgba (pattern, 1.00, shade4.r, shade4.g, shade4.b, alpha_value);
+
 		cairo_set_source (cr, pattern);
 		cairo_pattern_destroy (pattern);
 	}
 	else
 	{
-		if (alpha_value < 1.0)
-			murrine_set_color_rgba (cr, color, alpha_value);
-		else
-			murrine_set_color_rgb (cr, color);
+		murrine_set_color_rgba (cr, color, alpha_value);
 	}
 }
 

Modified: trunk/src/murrine_draw.c
==============================================================================
--- trunk/src/murrine_draw.c	(original)
+++ trunk/src/murrine_draw.c	Thu Apr 10 16:50:53 2008
@@ -159,10 +159,10 @@
 
 	if (widget->disabled)
 	{
-		mrn_gradient_custom.gradient_stop_1 = get_decreased_ratio (widget->mrn_gradient.gradient_stop_1, 3.0);
-		mrn_gradient_custom.gradient_stop_2 = get_decreased_ratio (widget->mrn_gradient.gradient_stop_2, 3.0);
-		mrn_gradient_custom.gradient_stop_3 = get_decreased_ratio (widget->mrn_gradient.gradient_stop_3, 3.0);
-		mrn_gradient_custom.gradient_stop_4 = get_decreased_ratio (widget->mrn_gradient.gradient_stop_4, 3.0);
+		mrn_gradient_custom.gradient_shades[0] = get_decreased_ratio (widget->mrn_gradient.gradient_shades[0], 3.0);
+		mrn_gradient_custom.gradient_shades[1] = get_decreased_ratio (widget->mrn_gradient.gradient_shades[1], 3.0);
+		mrn_gradient_custom.gradient_shades[2] = get_decreased_ratio (widget->mrn_gradient.gradient_shades[2], 3.0);
+		mrn_gradient_custom.gradient_shades[3] = get_decreased_ratio (widget->mrn_gradient.gradient_shades[3], 3.0);
 		custom_highlight_ratio = get_decreased_ratio (widget->highlight_ratio, 2.0);
 	}
 
@@ -600,10 +600,10 @@
 	x_step = (((float)stroke_width/10)*offset);
 	cairo_set_line_width (cr, 1.0);
 	cairo_save (cr);
-	cairo_rectangle (cr, 1.5, 0.5, width-2, height-1);
+	cairo_rectangle (cr, 1.5, 0.5, width-2, height);
 
 	/* Draw fill */
-	murrine_set_gradient (cr, fill, widget->mrn_gradient, 1.5, 0.5, 0, height-1, widget->mrn_gradient.gradients, FALSE);
+	murrine_set_gradient (cr, fill, widget->mrn_gradient, 1.5, 0.5, 0, height, widget->mrn_gradient.gradients, FALSE);
 
 	/* Draw the glass effect */
 	if (widget->glazestyle > 0)
@@ -620,7 +620,7 @@
 		murrine_draw_flat_highlight (cr, 1.5, 0.5, width-2, height);
 	}
 
-	murrine_set_gradient (cr, &highlight, widget->mrn_gradient, 1.5, 0.5, 0, height-1, widget->mrn_gradient.gradients, TRUE);
+	murrine_set_gradient (cr, &highlight, widget->mrn_gradient, 1.5, 0.5, 0, height, widget->mrn_gradient.gradients, TRUE);
 	cairo_fill (cr);
 
 	if (widget->glazestyle == 4)
@@ -628,7 +628,7 @@
 		murrine_draw_curved_highlight_bottom (cr, 1, width, height+1);
 		MurrineRGB shadow;
 		murrine_shade (fill, 1.0/widget->highlight_ratio, &shadow);
-		murrine_set_gradient (cr, &shadow, widget->mrn_gradient, 1.5, 0.5, 0, height-1, widget->mrn_gradient.gradients, TRUE);
+		murrine_set_gradient (cr, &shadow, widget->mrn_gradient, 1.5, 0.5, 0, height, widget->mrn_gradient.gradients, TRUE);
 		cairo_fill (cr);
 	}
 
@@ -1034,18 +1034,18 @@
 		MurrineRGB shade1, shade2, shade3, shade4;
 
 		MurrineGradients mrn_gradient_custom = widget->mrn_gradient;
-		mrn_gradient_custom.gradient_stop_1 = get_decreased_ratio (widget->mrn_gradient.gradient_stop_1, 3.0);
-		mrn_gradient_custom.gradient_stop_2 = get_decreased_ratio (widget->mrn_gradient.gradient_stop_2, 3.0);
-		mrn_gradient_custom.gradient_stop_3 = get_decreased_ratio (widget->mrn_gradient.gradient_stop_3, 3.0);
-		mrn_gradient_custom.gradient_stop_4 = get_decreased_ratio (widget->mrn_gradient.gradient_stop_4, 3.0);
+		mrn_gradient_custom.gradient_shades[0] = get_decreased_ratio (widget->mrn_gradient.gradient_shades[0], 3.0);
+		mrn_gradient_custom.gradient_shades[1] = get_decreased_ratio (widget->mrn_gradient.gradient_shades[1], 3.0);
+		mrn_gradient_custom.gradient_shades[2] = get_decreased_ratio (widget->mrn_gradient.gradient_shades[2], 3.0);
+		mrn_gradient_custom.gradient_shades[3] = get_decreased_ratio (widget->mrn_gradient.gradient_shades[3], 3.0);
 
 		double custom_highlight_ratio = widget->highlight_ratio;
 		custom_highlight_ratio = get_decreased_ratio (widget->highlight_ratio, 2.0);
 
-		murrine_shade (fill, mrn_gradient_custom.gradient_stop_1*custom_highlight_ratio, &shade1);
-		murrine_shade (fill, mrn_gradient_custom.gradient_stop_2*custom_highlight_ratio, &shade2);
-		murrine_shade (fill, mrn_gradient_custom.gradient_stop_3, &shade3);
-		murrine_shade (fill, mrn_gradient_custom.gradient_stop_4, &shade4);
+		murrine_shade (fill, mrn_gradient_custom.gradient_shades[0]*custom_highlight_ratio, &shade1);
+		murrine_shade (fill, mrn_gradient_custom.gradient_shades[1]*custom_highlight_ratio, &shade2);
+		murrine_shade (fill, mrn_gradient_custom.gradient_shades[2], &shade3);
+		murrine_shade (fill, mrn_gradient_custom.gradient_shades[3], &shade4);
 
 		switch (tab->gap_side)
 		{
@@ -1253,7 +1253,7 @@
 		if (header->style == 1)
 		{
 			cairo_rectangle (cr, 0, 0, width, height);
-			murrine_set_gradient (cr, fill, widget->mrn_gradient, 0, 0, 0, height, widget->mrn_gradient.gradients, FALSE);
+			murrine_set_gradient (cr, fill, widget->mrn_gradient, 0, 0, 0, height-1, widget->mrn_gradient.gradients, FALSE);
 			/* Glass effect */
 			if (widget->glazestyle > 0)
 			{
@@ -1269,7 +1269,7 @@
 				murrine_draw_flat_highlight (cr, 0 , 0 , width, height);
 			}
 
-			murrine_set_gradient (cr, &highlight_header, widget->mrn_gradient, 0, 0, 0, height, widget->mrn_gradient.gradients, TRUE);
+			murrine_set_gradient (cr, &highlight_header, widget->mrn_gradient, 0, 0, 0, height-1, widget->mrn_gradient.gradients, TRUE);
 			cairo_fill (cr);
 
 			if (widget->glazestyle == 4)
@@ -1277,7 +1277,7 @@
 				murrine_draw_curved_highlight_bottom (cr, 0, width, height);
 				MurrineRGB shadow;
 				murrine_shade (fill, 1.0/widget->highlight_ratio, &shadow);
-				murrine_set_gradient (cr, &shadow, widget->mrn_gradient, 0, 0, 0, height, widget->mrn_gradient.gradients, TRUE);
+				murrine_set_gradient (cr, &shadow, widget->mrn_gradient, 0, 0, 0, height-1, widget->mrn_gradient.gradients, TRUE);
 				cairo_fill (cr);
 			}
 
@@ -1701,7 +1701,6 @@
 
 	if (scrollbar->horizontal)
 		cairo_translate (cr, x, y);
-
 	else
 	{
 		int tmp = height;
@@ -1939,10 +1938,10 @@
 
 	MurrineGradients mrn_gradient_custom = widget->mrn_gradient;
 
-	mrn_gradient_custom.gradient_stop_1 = get_decreased_ratio (widget->mrn_gradient.gradient_stop_1, 2.0);
-	mrn_gradient_custom.gradient_stop_2 = get_decreased_ratio (widget->mrn_gradient.gradient_stop_2, 2.0);
-	mrn_gradient_custom.gradient_stop_3 = get_decreased_ratio (widget->mrn_gradient.gradient_stop_3, 2.0);
-	mrn_gradient_custom.gradient_stop_4 = get_decreased_ratio (widget->mrn_gradient.gradient_stop_4, 2.0);
+	mrn_gradient_custom.gradient_shades[0] = get_decreased_ratio (widget->mrn_gradient.gradient_shades[0], 2.0);
+	mrn_gradient_custom.gradient_shades[1] = get_decreased_ratio (widget->mrn_gradient.gradient_shades[1], 2.0);
+	mrn_gradient_custom.gradient_shades[2] = get_decreased_ratio (widget->mrn_gradient.gradient_shades[2], 2.0);
+	mrn_gradient_custom.gradient_shades[3] = get_decreased_ratio (widget->mrn_gradient.gradient_shades[3], 2.0);
 
 	murrine_shade (&colors->bg[widget->state_type], 0.6, &border);
 	murrine_shade (&colors->bg[widget->state_type], 1.0, &highlight);

Modified: trunk/src/murrine_draw_rgba.c
==============================================================================
--- trunk/src/murrine_draw_rgba.c	(original)
+++ trunk/src/murrine_draw_rgba.c	Thu Apr 10 16:50:53 2008
@@ -157,10 +157,10 @@
 
 	if (widget->disabled)
 	{
-		mrn_gradient_custom.gradient_stop_1 = get_decreased_ratio (widget->mrn_gradient.gradient_stop_1, 3.0);
-		mrn_gradient_custom.gradient_stop_2 = get_decreased_ratio (widget->mrn_gradient.gradient_stop_2, 3.0);
-		mrn_gradient_custom.gradient_stop_3 = get_decreased_ratio (widget->mrn_gradient.gradient_stop_3, 3.0);
-		mrn_gradient_custom.gradient_stop_4 = get_decreased_ratio (widget->mrn_gradient.gradient_stop_4, 3.0);
+		mrn_gradient_custom.gradient_shades[0] = get_decreased_ratio (widget->mrn_gradient.gradient_shades[0], 3.0);
+		mrn_gradient_custom.gradient_shades[1] = get_decreased_ratio (widget->mrn_gradient.gradient_shades[1], 3.0);
+		mrn_gradient_custom.gradient_shades[2] = get_decreased_ratio (widget->mrn_gradient.gradient_shades[2], 3.0);
+		mrn_gradient_custom.gradient_shades[3] = get_decreased_ratio (widget->mrn_gradient.gradient_shades[3], 3.0);
 		custom_highlight_ratio = get_decreased_ratio (widget->highlight_ratio, 2.0);
 	}
 
@@ -567,10 +567,10 @@
 	cairo_save (cr);
 	cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE);
 
-	cairo_rectangle (cr, 1.5, 0.5, width-2, height-1);
+	cairo_rectangle (cr, 1.5, 0.5, width-2, height);
 
 	/* Draw fill */
-	murrine_set_gradient (cr, fill, widget->mrn_gradient, 1.5, 0.5, 0, height-1, widget->mrn_gradient.gradients, FALSE);
+	murrine_set_gradient (cr, fill, widget->mrn_gradient, 1.5, 0.5, 0, height, widget->mrn_gradient.gradients, FALSE);
 
 	/* Draw the glass effect */
 	if (widget->glazestyle > 0)
@@ -587,7 +587,7 @@
 		murrine_draw_flat_highlight (cr, 1.5, 0.5, width-2, height);
 	}
 
-	murrine_set_gradient (cr, &highlight, widget->mrn_gradient, 1.5, 0.5, 0, height-1, widget->mrn_gradient.gradients, TRUE);
+	murrine_set_gradient (cr, &highlight, widget->mrn_gradient, 1.5, 0.5, 0, height, widget->mrn_gradient.gradients, TRUE);
 	cairo_fill (cr);
 
 	if (widget->glazestyle == 4)
@@ -595,7 +595,7 @@
 		murrine_draw_curved_highlight_bottom (cr, 1, width, height+1);
 		MurrineRGB shadow;
 		murrine_shade (fill, 1.0/widget->highlight_ratio, &shadow);
-		murrine_set_gradient (cr, &shadow, widget->mrn_gradient, 1.5, 0.5, 0, height-1, widget->mrn_gradient.gradients, TRUE);
+		murrine_set_gradient (cr, &shadow, widget->mrn_gradient, 1.5, 0.5, 0, height, widget->mrn_gradient.gradients, TRUE);
 		cairo_fill (cr);
 	}
 
@@ -1153,18 +1153,18 @@
 		MurrineRGB shade1, shade2, shade3, shade4;
 
 		MurrineGradients mrn_gradient_custom = widget->mrn_gradient;
-		mrn_gradient_custom.gradient_stop_1 = get_decreased_ratio (widget->mrn_gradient.gradient_stop_1, 3.0);
-		mrn_gradient_custom.gradient_stop_2 = get_decreased_ratio (widget->mrn_gradient.gradient_stop_2, 3.0);
-		mrn_gradient_custom.gradient_stop_3 = get_decreased_ratio (widget->mrn_gradient.gradient_stop_3, 3.0);
-		mrn_gradient_custom.gradient_stop_4 = get_decreased_ratio (widget->mrn_gradient.gradient_stop_4, 3.0);
+		mrn_gradient_custom.gradient_shades[0] = get_decreased_ratio (widget->mrn_gradient.gradient_shades[0], 3.0);
+		mrn_gradient_custom.gradient_shades[1] = get_decreased_ratio (widget->mrn_gradient.gradient_shades[1], 3.0);
+		mrn_gradient_custom.gradient_shades[2] = get_decreased_ratio (widget->mrn_gradient.gradient_shades[2], 3.0);
+		mrn_gradient_custom.gradient_shades[3] = get_decreased_ratio (widget->mrn_gradient.gradient_shades[3], 3.0);
 
 		double custom_highlight_ratio = widget->highlight_ratio;
 		custom_highlight_ratio = get_decreased_ratio (widget->highlight_ratio, 2.0);
 
-		murrine_shade (fill, mrn_gradient_custom.gradient_stop_1*custom_highlight_ratio, &shade1);
-		murrine_shade (fill, mrn_gradient_custom.gradient_stop_2*custom_highlight_ratio, &shade2);
-		murrine_shade (fill, mrn_gradient_custom.gradient_stop_3, &shade3);
-		murrine_shade (fill, mrn_gradient_custom.gradient_stop_4, &shade4);
+		murrine_shade (fill, mrn_gradient_custom.gradient_shades[0]*custom_highlight_ratio, &shade1);
+		murrine_shade (fill, mrn_gradient_custom.gradient_shades[1]*custom_highlight_ratio, &shade2);
+		murrine_shade (fill, mrn_gradient_custom.gradient_shades[2], &shade3);
+		murrine_shade (fill, mrn_gradient_custom.gradient_shades[3], &shade4);
 
 		switch (tab->gap_side)
 		{
@@ -1448,7 +1448,6 @@
 
 	if (scrollbar->horizontal)
 		cairo_translate (cr, x, y);
-
 	else
 	{
 		int tmp = height;
@@ -1598,10 +1597,10 @@
 
 	MurrineGradients mrn_gradient_custom = widget->mrn_gradient;
 
-	mrn_gradient_custom.gradient_stop_1 = get_decreased_ratio (widget->mrn_gradient.gradient_stop_1, 2.0);
-	mrn_gradient_custom.gradient_stop_2 = get_decreased_ratio (widget->mrn_gradient.gradient_stop_2, 2.0);
-	mrn_gradient_custom.gradient_stop_3 = get_decreased_ratio (widget->mrn_gradient.gradient_stop_3, 2.0);
-	mrn_gradient_custom.gradient_stop_4 = get_decreased_ratio (widget->mrn_gradient.gradient_stop_4, 2.0);
+	mrn_gradient_custom.gradient_shades[0] = get_decreased_ratio (widget->mrn_gradient.gradient_shades[0], 2.0);
+	mrn_gradient_custom.gradient_shades[1] = get_decreased_ratio (widget->mrn_gradient.gradient_shades[1], 2.0);
+	mrn_gradient_custom.gradient_shades[2] = get_decreased_ratio (widget->mrn_gradient.gradient_shades[2], 2.0);
+	mrn_gradient_custom.gradient_shades[3] = get_decreased_ratio (widget->mrn_gradient.gradient_shades[3], 2.0);
 
 	murrine_shade (&colors->bg[widget->state_type], 0.6, &border);
 	murrine_shade (&colors->bg[widget->state_type], 1.0, &highlight);

Modified: trunk/src/murrine_rc_style.c
==============================================================================
--- trunk/src/murrine_rc_style.c	(original)
+++ trunk/src/murrine_rc_style.c	Thu Apr 10 16:50:53 2008
@@ -45,10 +45,7 @@
 	TOKEN_COLORIZE_SCROLLBAR,
 	TOKEN_CONTRAST,
 	TOKEN_GLAZESTYLE,
-	TOKEN_GRADIENT_STOP_1,
-	TOKEN_GRADIENT_STOP_2,
-	TOKEN_GRADIENT_STOP_3,
-	TOKEN_GRADIENT_STOP_4,
+	TOKEN_GRADIENT_SHADES,
 	TOKEN_GRADIENTS,
 	TOKEN_HIGHLIGHT_RATIO,
 	TOKEN_LIGHTBORDER_RATIO,
@@ -94,10 +91,7 @@
 	{ "colorize_scrollbar",  TOKEN_COLORIZE_SCROLLBAR },
 	{ "contrast",            TOKEN_CONTRAST },
 	{ "glazestyle",          TOKEN_GLAZESTYLE },
-	{ "gradient_stop_1",     TOKEN_GRADIENT_STOP_1 },
-	{ "gradient_stop_2",     TOKEN_GRADIENT_STOP_2 },
-	{ "gradient_stop_3",     TOKEN_GRADIENT_STOP_3 },
-	{ "gradient_stop_4",     TOKEN_GRADIENT_STOP_4 },
+	{ "gradient_shades",     TOKEN_GRADIENT_SHADES },
 	{ "gradients",           TOKEN_GRADIENTS },
 	{ "highlight_ratio",     TOKEN_HIGHLIGHT_RATIO },
 	{ "lightborder_ratio",   TOKEN_LIGHTBORDER_RATIO },
@@ -164,10 +158,10 @@
 	murrine_rc->colorize_scrollbar = TRUE;
 	murrine_rc->contrast = 1.0;
 	murrine_rc->glazestyle = 1;
-	murrine_rc->gradient_stop_1 = 1.1;
-	murrine_rc->gradient_stop_2 = 1.0;
-	murrine_rc->gradient_stop_3 = 1.0;
-	murrine_rc->gradient_stop_4 = 1.1;
+	murrine_rc->gradient_shades[0] = 1.1;
+	murrine_rc->gradient_shades[1] = 1.0;
+	murrine_rc->gradient_shades[2] = 1.0;
+	murrine_rc->gradient_shades[3] = 1.1;
 	murrine_rc->gradients = TRUE;
 	murrine_rc->has_scrollbar_color = FALSE;
 	murrine_rc->highlight_ratio = 1.1;
@@ -298,7 +292,7 @@
 
 	token = g_scanner_get_next_token(scanner);
 	if (token != G_TOKEN_EQUAL_SIGN)
-	return G_TOKEN_EQUAL_SIGN;
+		return G_TOKEN_EQUAL_SIGN;
 
 	token = g_scanner_get_next_token(scanner);
 	if (token != G_TOKEN_INT)
@@ -352,6 +346,62 @@
 }
 
 static guint
+theme_parse_gradient (GtkSettings  *settings,
+                      GScanner     *scanner, 
+                      double       gradient_shades[4])
+{
+	guint               token;
+
+	/* Skip 'blah_border' */
+	token = g_scanner_get_next_token(scanner);
+
+	token = g_scanner_get_next_token(scanner);
+	if (token != G_TOKEN_EQUAL_SIGN)
+		return G_TOKEN_EQUAL_SIGN;
+
+	token = g_scanner_get_next_token(scanner);
+	if (token != G_TOKEN_LEFT_CURLY)
+		return G_TOKEN_LEFT_CURLY;
+
+	token = g_scanner_get_next_token(scanner);
+	if (token != G_TOKEN_FLOAT)
+		return G_TOKEN_FLOAT;
+	gradient_shades[0] = scanner->value.v_float;
+	token = g_scanner_get_next_token(scanner);
+	if (token != G_TOKEN_COMMA)
+		return G_TOKEN_COMMA;
+
+	token = g_scanner_get_next_token(scanner);
+	if (token != G_TOKEN_FLOAT)
+		return G_TOKEN_FLOAT;
+	gradient_shades[1] = scanner->value.v_float;
+	token = g_scanner_get_next_token(scanner);
+	if (token != G_TOKEN_COMMA)
+		return G_TOKEN_COMMA;
+
+	token = g_scanner_get_next_token(scanner);
+	if (token != G_TOKEN_FLOAT)
+		return G_TOKEN_FLOAT;
+	gradient_shades[2] = scanner->value.v_float;
+	token = g_scanner_get_next_token(scanner);
+	if (token != G_TOKEN_COMMA)
+		return G_TOKEN_COMMA;
+
+	token = g_scanner_get_next_token(scanner);
+	if (token != G_TOKEN_FLOAT)
+		return G_TOKEN_FLOAT;
+	gradient_shades[3] = scanner->value.v_float;
+
+	token = g_scanner_get_next_token(scanner);
+	if (token != G_TOKEN_RIGHT_CURLY)
+		return G_TOKEN_RIGHT_CURLY;
+
+	/* save those values */
+
+	return G_TOKEN_NONE;
+}
+
+static guint
 murrine_gtk2_rc_parse_dummy (GtkSettings      *settings,
                              GScanner         *scanner,
                              gchar            *name)
@@ -432,21 +482,9 @@
 				token = theme_parse_int (settings, scanner, &murrine_style->glazestyle);
 				murrine_style->flags |= MRN_FLAG_GLAZESTYLE;
 				break;
-			case TOKEN_GRADIENT_STOP_1:
-				token = theme_parse_ratio (settings, scanner, &murrine_style->gradient_stop_1);
-				murrine_style->flags |= MRN_FLAG_GRADIENT_STOP_1;
-				break;
-			case TOKEN_GRADIENT_STOP_2:
-				token = theme_parse_ratio (settings, scanner, &murrine_style->gradient_stop_2);
-				murrine_style->flags |= MRN_FLAG_GRADIENT_STOP_2;
-				break;
-			case TOKEN_GRADIENT_STOP_3:
-				token = theme_parse_ratio (settings, scanner, &murrine_style->gradient_stop_3);
-				murrine_style->flags |= MRN_FLAG_GRADIENT_STOP_3;
-				break;
-			case TOKEN_GRADIENT_STOP_4:
-				token = theme_parse_ratio (settings, scanner, &murrine_style->gradient_stop_4);
-				murrine_style->flags |= MRN_FLAG_GRADIENT_STOP_4;;
+			case TOKEN_GRADIENT_SHADES:
+				token = theme_parse_gradient (settings, scanner, murrine_style->gradient_shades);
+				murrine_style->flags |= MRN_FLAG_GRADIENT_SHADES;
 				break;
 			case TOKEN_GRADIENTS:
 				token = theme_parse_boolean (settings, scanner, &murrine_style->gradients);
@@ -582,14 +620,13 @@
 		dest_w->contrast = src_w->contrast;
 	if (flags & MRN_FLAG_GLAZESTYLE)
 		dest_w->glazestyle = src_w->glazestyle;
-	if (flags & MRN_FLAG_GRADIENT_STOP_1)
-		dest_w->gradient_stop_1 = src_w->gradient_stop_1;
-	if (flags & MRN_FLAG_GRADIENT_STOP_2)
-		dest_w->gradient_stop_2 = src_w->gradient_stop_2;
-	if (flags & MRN_FLAG_GRADIENT_STOP_3)
-		dest_w->gradient_stop_3 = src_w->gradient_stop_3;
-	if (flags & MRN_FLAG_GRADIENT_STOP_4)
-		dest_w->gradient_stop_4 = src_w->gradient_stop_4;
+	if (flags & MRN_FLAG_GRADIENT_SHADES)
+	{
+		dest_w->gradient_shades[0] = src_w->gradient_shades[0];
+		dest_w->gradient_shades[1] = src_w->gradient_shades[1];
+		dest_w->gradient_shades[2] = src_w->gradient_shades[2];
+		dest_w->gradient_shades[3] = src_w->gradient_shades[3];
+	}
 	if (flags & MRN_FLAG_GRADIENTS)
 		dest_w->gradients = src_w->gradients;
 	if (flags & MRN_FLAG_HIGHLIGHT_RATIO)

Modified: trunk/src/murrine_rc_style.h
==============================================================================
--- trunk/src/murrine_rc_style.h	(original)
+++ trunk/src/murrine_rc_style.h	Thu Apr 10 16:50:53 2008
@@ -38,29 +38,26 @@
 	MRN_FLAG_COLORIZE_SCROLLBAR = 1 << 1,
 	MRN_FLAG_CONTRAST = 1 << 2,
 	MRN_FLAG_GLAZESTYLE = 1 << 3,
-	MRN_FLAG_GRADIENT_STOP_1 = 1 << 4,
-	MRN_FLAG_GRADIENT_STOP_2 = 1 << 5,
-	MRN_FLAG_GRADIENT_STOP_3 = 1 << 6,
-	MRN_FLAG_GRADIENT_STOP_4 = 1 << 7,
-	MRN_FLAG_GRADIENTS = 1 << 8,
-	MRN_FLAG_HIGHLIGHT_RATIO = 1 << 9,
-	MRN_FLAG_LIGHTBORDER_RATIO = 1 << 10,
-	MRN_FLAG_LIGHTBORDERSTYLE= 1 << 11,
-	MRN_FLAG_LISTVIEWHEADERSTYLE = 1 << 12,
-	MRN_FLAG_LISTVIEWSTYLE = 1 << 13,
-	MRN_FLAG_MENUBARITEMSTYLE = 1 << 14,
-	MRN_FLAG_MENUBARSTYLE = 1 << 15,
-	MRN_FLAG_MENUITEMSTYLE = 1 << 16,
-	MRN_FLAG_MENUSTYLE = 1 << 17,
-	MRN_FLAG_RELIEFSTYLE = 1 << 18,
-	MRN_FLAG_RGBA = 1 << 19,
-	MRN_FLAG_ROUNDNESS = 1 << 20,
-	MRN_FLAG_SCROLLBAR_COLOR = 1 << 21,
-	MRN_FLAG_SCROLLBARSTYLE = 1 << 22,
-	MRN_FLAG_SLIDERSTYLE = 1 << 23,
-	MRN_FLAG_STEPPERSTYLE = 1 << 24,
-	MRN_FLAG_STYLE = 1 << 25,
-	MRN_FLAG_TOOLBARSTYLE = 1 << 26
+	MRN_FLAG_GRADIENT_SHADES = 1 << 4,
+	MRN_FLAG_GRADIENTS = 1 << 5,
+	MRN_FLAG_HIGHLIGHT_RATIO = 1 << 6,
+	MRN_FLAG_LIGHTBORDER_RATIO = 1 << 7,
+	MRN_FLAG_LIGHTBORDERSTYLE= 1 << 8,
+	MRN_FLAG_LISTVIEWHEADERSTYLE = 1 << 9,
+	MRN_FLAG_LISTVIEWSTYLE = 1 << 10,
+	MRN_FLAG_MENUBARITEMSTYLE = 1 << 11,
+	MRN_FLAG_MENUBARSTYLE = 1 << 12,
+	MRN_FLAG_MENUITEMSTYLE = 1 << 13,
+	MRN_FLAG_MENUSTYLE = 1 << 14,
+	MRN_FLAG_RELIEFSTYLE = 1 << 15,
+	MRN_FLAG_RGBA = 1 << 16,
+	MRN_FLAG_ROUNDNESS = 1 << 17,
+	MRN_FLAG_SCROLLBAR_COLOR = 1 << 18,
+	MRN_FLAG_SCROLLBARSTYLE = 1 << 19,
+	MRN_FLAG_SLIDERSTYLE = 1 << 20,
+	MRN_FLAG_STEPPERSTYLE = 1 << 21,
+	MRN_FLAG_STYLE = 1 << 22,
+	MRN_FLAG_TOOLBARSTYLE = 1 << 23
 } MurrineRcFlags;
 
 struct _MurrineRcStyle
@@ -70,10 +67,7 @@
 	MurrineRcFlags flags;
 
 	double   contrast;
-	double   gradient_stop_1;
-	double   gradient_stop_2;
-	double   gradient_stop_3;
-	double   gradient_stop_4;
+	double   gradient_shades[4];
 	double   highlight_ratio;
 	double   lightborder_ratio;
 

Modified: trunk/src/murrine_style.c
==============================================================================
--- trunk/src/murrine_style.c	(original)
+++ trunk/src/murrine_style.c	Thu Apr 10 16:50:53 2008
@@ -144,17 +144,17 @@
 	MurrineGradients mrn_gradient;
 	if (murrine_style->gradients)
 	{
-		mrn_gradient.gradient_stop_1 = murrine_style->gradient_stop_1;
-		mrn_gradient.gradient_stop_2 = murrine_style->gradient_stop_2;
-		mrn_gradient.gradient_stop_3 = murrine_style->gradient_stop_3;
-		mrn_gradient.gradient_stop_4 = murrine_style->gradient_stop_4;
+		mrn_gradient.gradient_shades[0] = murrine_style->gradient_shades[0];
+		mrn_gradient.gradient_shades[1] = murrine_style->gradient_shades[1];
+		mrn_gradient.gradient_shades[2] = murrine_style->gradient_shades[2];
+		mrn_gradient.gradient_shades[3] = murrine_style->gradient_shades[3];
 	}
 	else
 	{
-		mrn_gradient.gradient_stop_1 = 1.0;
-		mrn_gradient.gradient_stop_2 = 1.0;
-		mrn_gradient.gradient_stop_3 = 1.0;
-		mrn_gradient.gradient_stop_4 = 1.0;
+		mrn_gradient.gradient_shades[0] = 1.0;
+		mrn_gradient.gradient_shades[1] = 1.0;
+		mrn_gradient.gradient_shades[2] = 1.0;
+		mrn_gradient.gradient_shades[3] = 1.0;
 	}
 	mrn_gradient.gradients = murrine_style->gradients;
 	mrn_gradient.use_rgba = (murrine_widget_is_rgba ((GtkWidget*) widget) && murrine_style->rgba);
@@ -1607,19 +1607,22 @@
 
 	murrine_parent_class->init_from_rc (style, rc_style);
 
-	murrine_style->gradient_stop_1    = MURRINE_RC_STYLE (rc_style)->gradient_stop_1;
-	murrine_style->gradient_stop_2    = MURRINE_RC_STYLE (rc_style)->gradient_stop_2;
-	murrine_style->gradient_stop_3    = MURRINE_RC_STYLE (rc_style)->gradient_stop_3;
-	murrine_style->gradient_stop_4    = MURRINE_RC_STYLE (rc_style)->gradient_stop_4;
+	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)
 	{
-		double gradient_stop_mid = ((murrine_style->gradient_stop_2)+(murrine_style->gradient_stop_2))/2.0;
-		murrine_style->gradient_stop_2 = gradient_stop_mid;
-		murrine_style->gradient_stop_3 = gradient_stop_mid;
+		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;
 	}
 
 	/* Ignore roundness > 1 with glazestyle = 2 */
@@ -1661,6 +1664,10 @@
 		case (MRN_STYLE_NODOKA):
 			murrine_style->highlight_ratio = 1.0;
 			murrine_style->gradients = TRUE;
+			murrine_style->gradient_shades[0] = 1.1;
+			murrine_style->gradient_shades[1] = 1.0;
+			murrine_style->gradient_shades[2] = 1.0;
+			murrine_style->gradient_shades[3] = 1.1;
 			murrine_style->sliderstyle = 1;
 			murrine_style->scrollbarstyle = 2;
 			murrine_style->stepperstyle = 0;
@@ -1671,6 +1678,10 @@
 			murrine_style->highlight_ratio = 1.0;
 			murrine_style->glazestyle = 0;
 			murrine_style->gradients = FALSE;
+			murrine_style->gradient_shades[0] = 1.0;
+			murrine_style->gradient_shades[1] = 1.0;
+			murrine_style->gradient_shades[2] = 1.0;
+			murrine_style->gradient_shades[3] = 1.0;
 			murrine_style->lightborder_ratio = 1.00;
 			murrine_style->sliderstyle = 1;
 			murrine_style->scrollbarstyle = 0;
@@ -1685,18 +1696,18 @@
 			murrine_style->lightborder_ratio = 1.06;
 			murrine_style->glazestyle = 0;
 			murrine_style->gradients = TRUE;
-			murrine_style->gradient_stop_1 = 1.01;
-			murrine_style->gradient_stop_2 = 0.99;
-			murrine_style->gradient_stop_3 = 0.99;
-			murrine_style->gradient_stop_4 = 0.97;
+			murrine_style->gradient_shades[0] = 1.01;
+			murrine_style->gradient_shades[1] = 0.99;
+			murrine_style->gradient_shades[2] = 0.99;
+			murrine_style->gradient_shades[3] = 0.97;
 			murrine_style->reliefstyle = 0;
 			break;
 		case (MRN_STYLE_CLEARLOOKS):
 			murrine_style->glazestyle = 0;
-			murrine_style->gradient_stop_1 = 1.08;
-			murrine_style->gradient_stop_2 = 1.02;
-			murrine_style->gradient_stop_3 = 1.00;
-			murrine_style->gradient_stop_4 = 0.94;
+			murrine_style->gradient_shades[0] = 1.08;
+			murrine_style->gradient_shades[1] = 1.02;
+			murrine_style->gradient_shades[2] = 1.00;
+			murrine_style->gradient_shades[3] = 0.94;
 			murrine_style->gradients = TRUE;
 			murrine_style->highlight_ratio = 1.0;
 			murrine_style->toolbarstyle = 1;
@@ -1872,10 +1883,10 @@
 	mrn_style->colorize_scrollbar  = mrn_src->colorize_scrollbar;
 	mrn_style->colors              = mrn_src->colors;
 	mrn_style->glazestyle          = mrn_src->glazestyle;
-	mrn_style->gradient_stop_1     = mrn_src->gradient_stop_1;
-	mrn_style->gradient_stop_2     = mrn_src->gradient_stop_2;
-	mrn_style->gradient_stop_3     = mrn_src->gradient_stop_3;
-	mrn_style->gradient_stop_4     = mrn_src->gradient_stop_4;
+	mrn_style->gradient_shades[0]  = mrn_src->gradient_shades[0];
+	mrn_style->gradient_shades[1]  = mrn_src->gradient_shades[1];
+	mrn_style->gradient_shades[2]  = mrn_src->gradient_shades[2];
+	mrn_style->gradient_shades[3]  = mrn_src->gradient_shades[3];
 	mrn_style->gradients           = mrn_src->gradients;
 	mrn_style->has_scrollbar_color = mrn_src->has_scrollbar_color;
 	mrn_style->highlight_ratio     = mrn_src->highlight_ratio;

Modified: trunk/src/murrine_style.h
==============================================================================
--- trunk/src/murrine_style.h	(original)
+++ trunk/src/murrine_style.h	Thu Apr 10 16:50:53 2008
@@ -47,10 +47,7 @@
 	MurrineStyles style;
 
 	double   contrast;
-	double   gradient_stop_1;
-	double   gradient_stop_2;
-	double   gradient_stop_3;
-	double   gradient_stop_4;
+	double   gradient_shades[4];
 	double   highlight_ratio;
 	double   lightborder_ratio;
 

Modified: trunk/src/murrine_types.h
==============================================================================
--- trunk/src/murrine_types.h	(original)
+++ trunk/src/murrine_types.h	Thu Apr 10 16:50:53 2008
@@ -175,10 +175,7 @@
 
 typedef struct
 {
-	double  gradient_stop_1;
-	double  gradient_stop_2;
-	double  gradient_stop_3;
-	double  gradient_stop_4;
+	double  gradient_shades[4];
 	double  rgba_opacity;
 
 	boolean gradients;



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