diff options
author | Matthias Clasen <mclasen@redhat.com> | 2010-11-15 23:57:07 -0500 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2010-11-15 23:57:07 -0500 |
commit | 2cc0d34ee45375277d57a5cf018127df76c7ab90 (patch) | |
tree | 4d25fcd77971f79a013c4f66695a5060b7fae802 | |
parent | 07543ce008d4c4910b22e28418187df6722b1018 (diff) | |
download | gnome-control-center-gtk-style-context.tar.gz |
Make build with GtkStyleContextgtk-style-context
Very preliminary port from gtk_paint_ to gtk_render_.
-rw-r--r-- | panels/user-accounts/um-password-dialog.c | 33 | ||||
-rw-r--r-- | 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 1e4aaa652..8f75441d3 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 18819f47b..55af36403 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 |