diff options
author | James Willcox <jwillcox@gnome.org> | 2003-02-22 07:13:28 +0800 |
---|---|---|
committer | James Willcox <jwillcox@src.gnome.org> | 2003-02-22 07:13:28 +0800 |
commit | 4278f80b4cd2937dac80a12c727e21be3aceae1f (patch) | |
tree | 5c2cbdcb8da6141a9802f55ba0623e5d317c337f /lib/ephy-start-here.c | |
parent | 95620115f1a1939b0ac8cd91d22a2827abb4a741 (diff) | |
download | gsoc2013-epiphany-4278f80b4cd2937dac80a12c727e21be3aceae1f.tar gsoc2013-epiphany-4278f80b4cd2937dac80a12c727e21be3aceae1f.tar.gz gsoc2013-epiphany-4278f80b4cd2937dac80a12c727e21be3aceae1f.tar.bz2 gsoc2013-epiphany-4278f80b4cd2937dac80a12c727e21be3aceae1f.tar.lz gsoc2013-epiphany-4278f80b4cd2937dac80a12c727e21be3aceae1f.tar.xz gsoc2013-epiphany-4278f80b4cd2937dac80a12c727e21be3aceae1f.tar.zst gsoc2013-epiphany-4278f80b4cd2937dac80a12c727e21be3aceae1f.zip |
Make the start-here: page use the theme colors.
2003-02-21 James Willcox <jwillcox@gnome.org>
* data/starthere/section.xsl:
* lib/ephy-start-here.c: (color_to_string), (build_content):
Make the start-here: page use the theme colors.
Diffstat (limited to 'lib/ephy-start-here.c')
-rw-r--r-- | lib/ephy-start-here.c | 57 |
1 files changed, 54 insertions, 3 deletions
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 <gtk/gtk.h> #include <libxml/tree.h> #include <libgnome/gnome-i18n.h> #include <string.h> @@ -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; } |