From 4278f80b4cd2937dac80a12c727e21be3aceae1f Mon Sep 17 00:00:00 2001 From: James Willcox Date: Fri, 21 Feb 2003 23:13:28 +0000 Subject: Make the start-here: page use the theme colors. 2003-02-21 James Willcox * data/starthere/section.xsl: * lib/ephy-start-here.c: (color_to_string), (build_content): Make the start-here: page use the theme colors. --- lib/ephy-start-here.c | 57 ++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 54 insertions(+), 3 deletions(-) (limited to 'lib') diff --git a/lib/ephy-start-here.c b/lib/ephy-start-here.c index 06d08de38..3de8dffa3 100644 --- a/lib/ephy-start-here.c +++ b/lib/ephy-start-here.c @@ -16,6 +16,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +#include #include #include #include @@ -303,15 +304,21 @@ attach_content (EphyStartHere *sh, xmlNodePtr node, xmlChar *id) } } +static char * +color_to_string (GdkColor color) +{ + return g_strdup_printf ("#%.2x%.2x%.2x", + color.red >> 8, + color.green >> 8, + color.blue >> 8); +} + static void build_content (EphyStartHere *sh, xmlNodePtr node) { while (node) { xmlChar *id; - xmlNodePtr next; - - next = node->next; id = xmlGetProp (node, "id"); if (id) @@ -320,6 +327,50 @@ build_content (EphyStartHere *sh, xmlNodePtr node) xmlFree (id); } + if (xmlStrEqual (node->name, "section")) + { + GtkWidget *widget, *window; + GdkColor color; + char *str; + + /* create a random widget that we will use to get + * the current style + */ + window = gtk_window_new (GTK_WINDOW_TOPLEVEL); + widget = gtk_label_new (""); + gtk_container_add (GTK_CONTAINER (window), widget); + gtk_widget_realize (window); + gtk_widget_realize (widget); + gtk_widget_ensure_style (widget); + + color = widget->style->bg[GTK_STATE_NORMAL]; + str = color_to_string (color); + xmlSetProp (node, "bg", str); + g_free (str); + + color = widget->style->text[GTK_STATE_SELECTED]; + str = color_to_string (color); + xmlSetProp (node, "title", str); + g_free (str); + + color = widget->style->bg[GTK_STATE_ACTIVE]; + str = color_to_string (color); + xmlSetProp (node, "title-bg", str); + g_free (str); + + color = widget->style->bg[GTK_STATE_SELECTED]; + str = color_to_string (color); + xmlSetProp (node, "link", str); + g_free (str); + + color = widget->style->text[GTK_STATE_NORMAL]; + str = color_to_string (color); + xmlSetProp (node, "text", str); + g_free (str); + + gtk_widget_destroy (window); + } + build_content (sh, node->children); node = node->next; } -- cgit v1.2.3