gtk-css-engine r167 - in trunk: . src



Author: robsta
Date: Fri Oct 17 10:27:19 2008
New Revision: 167
URL: http://svn.gnome.org/viewvc/gtk-css-engine?rev=167&view=rev

Log:
* src/css2gtkrc.c (main): initialise and shutdown ccss.

* src/gce-serialize.c (accumulate_state), (serialize_state): use new ccss API to extract style properties.



Modified:
   trunk/ChangeLog
   trunk/src/css2gtkrc.c
   trunk/src/gce-serialize.c

Modified: trunk/src/css2gtkrc.c
==============================================================================
--- trunk/src/css2gtkrc.c	(original)
+++ trunk/src/css2gtkrc.c	Fri Oct 17 10:27:19 2008
@@ -35,6 +35,8 @@
 		return EXIT_FAILURE;
 	}
 
+	ccss_init (NULL);
+
 	stylesheet = ccss_stylesheet_new_from_file (argv[1]);
 	g_assert (stylesheet);
 
@@ -51,5 +53,7 @@
 
 	g_free (gtkrc), gtkrc = NULL;
 
+	ccss_shutdown ();
+
 	return EXIT_SUCCESS;
 }

Modified: trunk/src/gce-serialize.c
==============================================================================
--- trunk/src/gce-serialize.c	(original)
+++ trunk/src/gce-serialize.c	Fri Oct 17 10:27:19 2008
@@ -68,7 +68,6 @@
  */
 
 enum { NORMAL = 0, ACTIVE, PRELIGHT, SELECTED, INSENSITIVE, N_STATES };
-enum { RED = 0, GREEN, BLUE, N_COLORS };
 enum {
 	FG_SET		= 1 << 0,
 	BG_SET		= 1 << 1,
@@ -85,10 +84,10 @@
 
 struct RcBlock {
 	struct RcState {
-		double	fg[N_COLORS];
-		double	bg[N_COLORS];
-		double	base[N_COLORS];
-		double	text[N_COLORS];
+		char fg[8];
+		char bg[8];
+		char base[8];
+		char text[8];
 		guint	flags;
 	} colors[N_STATES];
 	guint		 flags;
@@ -101,9 +100,10 @@
 		  char const			*state_name,
 		  struct RcState		*state)
 {
-	ccss_style_t		 *style;
-	Node			  node;
-	gboolean		  ret;
+	ccss_style_t		*style;
+	Node			 node;
+	char			*color;
+	gboolean		 ret;
 
 	ccss_node_init ((ccss_node_t *) &node, &_node_class);
 	node.type_name = type_name;
@@ -117,19 +117,30 @@
 		return false;
 	}
 
-	ret = ccss_style_get_color (style, &state->fg[RED], &state->fg[GREEN], &state->fg[BLUE]);
-	if (ret) {
-		state->flags |= FG_SET;
+	color = NULL;
+
+	ret = ccss_style_get_string (style, "color", &color);
+	if (ret && color) {
+		state->flags |= TEXT_SET;
+		strncpy (state->text, color, 8);
+		g_free (color), color = NULL;
 	}
 
-	ret = ccss_style_get_background_color (style, &state->bg[RED], &state->bg[GREEN], &state->bg[BLUE]);
+	ret = ccss_style_get_string (style, "background-color", &color);
 	if (ret) {
 		state->flags |= BG_SET;
+		strncpy (state->bg, color, 8);
 		/* FIXME: also setting "base" to the background color, let's see how this works out. */
-		state->base[RED] = state->bg[RED];
-		state->base[GREEN] = state->bg[GREEN];
-		state->base[BLUE] = state->bg[BLUE];
 		state->flags |= BASE_SET;
+		strncpy (state->base, color, 8);
+		g_free (color), color = NULL;
+	}
+
+	ret = ccss_style_get_string (style, "border-color", &color);
+	if (ret && color) {
+		state->flags |= FG_SET;
+		strncpy (state->fg, color, 8);
+		g_free (color), color = NULL;
 	}
 
 	ccss_style_free (style), style = NULL;
@@ -182,23 +193,19 @@
 		 GString		*rc_string)
 {
 	if (FG_SET & state->flags) {
-		g_string_append_printf (rc_string, "\tfg[%s] = { %.3f, %.3f, %.3f }\n", state_name, 
-					state->fg[RED], state->fg[GREEN], state->fg[BLUE]);
+		g_string_append_printf (rc_string, "\tfg[%s] = '%s'\n", state_name, state->fg);
 	}
 
 	if (BG_SET & state->flags) {
-		g_string_append_printf (rc_string, "\tbg[%s] = { %.3f, %.3f, %.3f }\n", state_name, 
-					state->bg[RED], state->bg[GREEN], state->bg[BLUE]);
+		g_string_append_printf (rc_string, "\tbg[%s] = '%s'\n", state_name, state->bg);
 	}
 
 	if (BASE_SET & state->flags) {
-		g_string_append_printf (rc_string, "\tbase[%s] = { %.3f, %.3f, %.3f }\n", state_name, 
-					state->base[RED], state->base[GREEN], state->base[BLUE]);
+		g_string_append_printf (rc_string, "\tbase[%s] = '%s'\n", state_name, state->base);
 	}
 
 	if (TEXT_SET & state->flags) {
-		g_string_append_printf (rc_string, "\ttext[%s] = { %.3f, %.3f, %.3f }\n", state_name, 
-					state->text[RED], state->text[GREEN], state->text[BLUE]);
+		g_string_append_printf (rc_string, "\ttext[%s] = '%s'\n", state_name, state->text);
 	}
 }
 



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