aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorJames Willcox <jwillcox@gnome.org>2003-02-22 07:13:28 +0800
committerJames Willcox <jwillcox@src.gnome.org>2003-02-22 07:13:28 +0800
commit4278f80b4cd2937dac80a12c727e21be3aceae1f (patch)
tree5c2cbdcb8da6141a9802f55ba0623e5d317c337f /lib
parent95620115f1a1939b0ac8cd91d22a2827abb4a741 (diff)
downloadgsoc2013-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')
-rw-r--r--lib/ephy-start-here.c57
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;
}