[evince] libdocument: Port To GtkStyleContext



commit 478dd74e4201b44b5c921fd0bb69b0c4e43bcd8a
Author: Carlos Garcia Campos <carlosgc gnome org>
Date:   Wed Dec 22 17:02:15 2010 +0100

    libdocument: Port To GtkStyleContext

 libdocument/ev-document-misc.c |   22 +++++++++++++++++-----
 1 files changed, 17 insertions(+), 5 deletions(-)
---
diff --git a/libdocument/ev-document-misc.c b/libdocument/ev-document-misc.c
index f1a3095..01676b5 100644
--- a/libdocument/ev-document-misc.c
+++ b/libdocument/ev-document-misc.c
@@ -140,10 +140,22 @@ ev_document_misc_paint_one_page (cairo_t      *cr,
 				 gboolean      highlight,
 				 gboolean      inverted_colors)
 {
-	GtkStyle    *style = gtk_widget_get_style (widget);
-	GtkStateType state = gtk_widget_get_state (widget);
-
-	gdk_cairo_set_source_color (cr, highlight ? &style->text[state] : &style->dark[state]);
+	GtkStyleContext *context = gtk_widget_get_style_context (widget);
+	GtkStateFlags state = gtk_widget_get_state_flags (widget);
+        GdkRGBA fg, bg, shade_bg;
+        GtkSymbolicColor *c1, *c2;
+
+        gtk_style_context_get_background_color (context, state, &bg);
+        gtk_style_context_get_color (context, state, &fg);
+
+        // FIXME: should we cache the shade_bg?
+        c1 = gtk_symbolic_color_new_literal (&bg);
+        c2 = gtk_symbolic_color_new_shade (c1, 0.7);
+        gtk_symbolic_color_resolve (c2, NULL, &shade_bg);
+        gtk_symbolic_color_unref (c1);
+        gtk_symbolic_color_unref (c2);
+
+	gdk_cairo_set_source_rgba (cr, highlight ? &fg : &shade_bg);
 	gdk_cairo_rectangle (cr, area);
 	cairo_fill (cr);
 
@@ -158,7 +170,7 @@ ev_document_misc_paint_one_page (cairo_t      *cr,
 			 area->height - (border->top + border->bottom));
 	cairo_fill (cr);
 
-	gdk_cairo_set_source_color (cr, &style->mid[state]);
+	gdk_cairo_set_source_rgba (cr, &bg);
 	cairo_rectangle (cr,
 			 area->x,
 			 area->y + area->height - (border->bottom - border->top),



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