diff options
author | Benjamin Otte <otte@redhat.com> | 2015-12-16 04:08:08 +0100 |
---|---|---|
committer | Benjamin Otte <otte@redhat.com> | 2015-12-16 04:46:23 +0100 |
commit | 9d56a076cc562913e20f422aad9bfbb19d393518 (patch) | |
tree | 1cf501e20351354ff33ef9f04274c5022f7705ef /gtk/gtkspinner.c | |
parent | d3cf3fd267d676f6c4081d45f4eed74ef7732447 (diff) | |
download | gtk+-9d56a076cc562913e20f422aad9bfbb19d393518.tar.gz |
gadget: Add builtin icon gadget
This is to be used in all the places where we now call
gtk_render_activity()/option()/check() etc that in turn call the icon
render function.
Diffstat (limited to 'gtk/gtkspinner.c')
-rw-r--r-- | gtk/gtkspinner.c | 77 |
1 files changed, 4 insertions, 73 deletions
diff --git a/gtk/gtkspinner.c b/gtk/gtkspinner.c index ed2c14de30..0f410e01a5 100644 --- a/gtk/gtkspinner.c +++ b/gtk/gtkspinner.c @@ -38,7 +38,7 @@ #include "gtkstylecontextprivate.h" #include "gtkwidgetprivate.h" #include "a11y/gtkspinneraccessible.h" -#include "gtkcsscustomgadgetprivate.h" +#include "gtkbuiltiniconprivate.h" /** @@ -84,19 +84,6 @@ gtk_spinner_finalize (GObject *object) } static void -gtk_spinner_measure (GtkCssGadget *gadget, - GtkOrientation orientation, - gint for_size, - gint *minimum, - gint *natural, - gint *minimum_baseline, - gint *natural_baseline, - gpointer data) -{ - *minimum = *natural = 16; -} - -static void gtk_spinner_get_preferred_width (GtkWidget *widget, gint *minimum, gint *natural) @@ -121,32 +108,6 @@ gtk_spinner_get_preferred_height (GtkWidget *widget, } static void -gtk_spinner_allocate (GtkCssGadget *gadget, - const GtkAllocation *allocation, - gint baseline, - GtkAllocation *out_clip, - gpointer data) -{ - GtkWidget *widget; - GtkStyleContext *context; - gint size; - - widget = gtk_css_gadget_get_owner (gadget); - context = gtk_widget_get_style_context (widget); - size = MIN (allocation->width, allocation->height); - - gtk_widget_set_allocation (widget, allocation); - - _gtk_style_context_get_icon_extents (context, - out_clip, - allocation->x + (allocation->width - size) / 2, - allocation->y + (allocation->height - size) / 2, - size, size); - - gdk_rectangle_union (out_clip, allocation, out_clip); -} - -static void gtk_spinner_size_allocate (GtkWidget *widget, GtkAllocation *allocation) { @@ -171,32 +132,6 @@ gtk_spinner_draw (GtkWidget *widget, return FALSE; } -static gboolean -gtk_spinner_render (GtkCssGadget *gadget, - cairo_t *cr, - gint x, - gint y, - gint width, - gint height, - gpointer data) -{ - GtkWidget *widget; - GtkStyleContext *context; - gint size; - - widget = gtk_css_gadget_get_owner (gadget); - context = gtk_widget_get_style_context (widget); - - size = MIN (width, height); - - gtk_render_activity (context, cr, - (width - size) / 2, - (height - size) / 2, - size, size); - - return FALSE; -} - static void gtk_spinner_set_active (GtkSpinner *spinner, gboolean active) @@ -301,13 +236,9 @@ gtk_spinner_init (GtkSpinner *spinner) gtk_widget_set_has_window (GTK_WIDGET (spinner), FALSE); widget_node = gtk_widget_get_css_node (GTK_WIDGET (spinner)); - spinner->priv->gadget = gtk_css_custom_gadget_new_for_node (widget_node, - GTK_WIDGET (spinner), - gtk_spinner_measure, - gtk_spinner_allocate, - gtk_spinner_render, - NULL, - NULL); + spinner->priv->gadget = gtk_builtin_icon_new_for_node (widget_node, GTK_WIDGET (spinner)); + gtk_builtin_icon_set_image (GTK_BUILTIN_ICON (spinner->priv->gadget), GTK_CSS_IMAGE_BUILTIN_SPINNER); + gtk_builtin_icon_set_default_size (GTK_BUILTIN_ICON (spinner->priv->gadget), 16); } /** |