[gnome-control-center/gtk-style-context] Make build with GtkStyleContext



commit 2cc0d34ee45375277d57a5cf018127df76c7ab90
Author: Matthias Clasen <mclasen redhat com>
Date:   Mon Nov 15 23:57:07 2010 -0500

    Make build with GtkStyleContext
    
    Very preliminary port from gtk_paint_ to gtk_render_.

 panels/user-accounts/um-password-dialog.c |   33 ++++++++++++++++++++------
 panels/user-accounts/um-photo-dialog.c    |   36 ++++++++++++++++++++++------
 2 files changed, 53 insertions(+), 16 deletions(-)
---
diff --git a/panels/user-accounts/um-password-dialog.c b/panels/user-accounts/um-password-dialog.c
index 1e4aaa6..8f75441 100644
--- a/panels/user-accounts/um-password-dialog.c
+++ b/panels/user-accounts/um-password-dialog.c
@@ -81,17 +81,34 @@ generate_draw (GtkWidget        *widget,
                cairo_t          *cr,
                UmPasswordDialog *um)
 {
+        GtkStyleContext *context;
+        GtkStateFlags flags = 0;
+
         if (!gtk_widget_is_sensitive (widget))
                 return;
 
-        gtk_paint_expander (gtk_widget_get_style (widget),
-                            cr,
-                            gtk_widget_get_state (widget),
-                            widget,
-                            NULL,
-                            gtk_widget_get_allocated_width (widget) - 12,
-                            gtk_widget_get_allocated_height (widget) - 12,
-                            GTK_EXPANDER_EXPANDED);
+        flags = GTK_STATE_ACTIVE;
+
+        switch (gtk_widget_get_state (widget)) {
+                case GTK_STATE_PRELIGHT:
+                        flags |= GTK_STATE_FLAG_PRELIGHT;
+                        break;
+                case GTK_STATE_SELECTED:
+                        flags |= GTK_STATE_FLAG_SELECTED;
+                        break;
+                default: ;
+        }
+
+        context = gtk_widget_get_style_context (widget);
+        gtk_style_context_save (context);
+        gtk_style_context_set_state (context, flags);
+
+        gtk_render_expander (context, cr,
+                             gtk_widget_get_allocated_width (widget) - 12,
+                             gtk_widget_get_allocated_height (widget) - 12,
+                             12, 12);
+
+        gtk_style_context_restore (context);
 }
 
 static void
diff --git a/panels/user-accounts/um-photo-dialog.c b/panels/user-accounts/um-photo-dialog.c
index 18819f4..55af364 100644
--- a/panels/user-accounts/um-photo-dialog.c
+++ b/panels/user-accounts/um-photo-dialog.c
@@ -501,19 +501,39 @@ popup_button_draw (GtkWidget      *widget,
                    cairo_t        *cr,
                    UmPhotoDialog  *um)
 {
+        GtkStyleContext *context;
+        GtkStateFlags flags = 0;
+
         if (gtk_widget_get_state (gtk_bin_get_child (GTK_BIN (widget))) != GTK_STATE_PRELIGHT &&
             !gtk_widget_is_focus (widget)) {
                 return;
         }
 
-        gtk_paint_expander (gtk_widget_get_style (widget),
-                            cr,
-                            gtk_widget_get_state (widget),
-                            widget,
-                            NULL,
-                            gtk_widget_get_allocated_width (widget) - 12,
-                            gtk_widget_get_allocated_height (widget) - 12,
-                            GTK_EXPANDER_EXPANDED);
+       flags = GTK_STATE_ACTIVE;
+
+        switch (gtk_widget_get_state (widget)) {
+                case GTK_STATE_PRELIGHT:
+                        flags |= GTK_STATE_FLAG_PRELIGHT;
+                        break;
+                case GTK_STATE_SELECTED:
+                        flags |= GTK_STATE_FLAG_SELECTED;
+                        break;
+                case GTK_STATE_INSENSITIVE:
+                        flags |= GTK_STATE_FLAG_INSENSITIVE;
+                        break;
+                default: ;
+        }
+
+        context = gtk_widget_get_style_context (widget);
+        gtk_style_context_save (context);
+        gtk_style_context_set_state (context, flags);
+
+        gtk_render_expander (context, cr,
+                             gtk_widget_get_allocated_width (widget) - 12,
+                             gtk_widget_get_allocated_height (widget) - 12,
+                             12, 12);
+
+        gtk_style_context_restore (context);
 }
 
 static void



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