diff options
author | Timm Bäder <mail@baedert.org> | 2017-05-17 09:14:40 +0200 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2017-07-19 21:27:13 -0400 |
commit | d5167eb61c1f710f63046d68bed746a5f10a9b56 (patch) | |
tree | fce1ae8edc16340fd9a772260eb3f50957e201b8 /gtk/gtkcolorswatch.c | |
parent | dd713e0ae2e2728df96548ddd20de65261f9c085 (diff) | |
download | gtk+-d5167eb61c1f710f63046d68bed746a5f10a9b56.tar.gz |
colorswatch: Replace IconHelper with GtkImage
Diffstat (limited to 'gtk/gtkcolorswatch.c')
-rw-r--r-- | gtk/gtkcolorswatch.c | 46 |
1 files changed, 18 insertions, 28 deletions
diff --git a/gtk/gtkcolorswatch.c b/gtk/gtkcolorswatch.c index a9aed4f481..dd5c493847 100644 --- a/gtk/gtkcolorswatch.c +++ b/gtk/gtkcolorswatch.c @@ -28,9 +28,7 @@ #include "gtkmenushell.h" #include "gtkprivate.h" #include "gtkintl.h" -#include "gtkiconhelperprivate.h" #include "gtkcssnodeprivate.h" -#include "gtkcsscustomgadgetprivate.h" #include "gtkroundedboxprivate.h" #include "gtkwidgetprivate.h" #include "gtkstylecontextprivate.h" @@ -60,7 +58,7 @@ struct _GtkColorSwatchPrivate GtkGesture *long_press_gesture; GtkGesture *multipress_gesture; - GtkCssGadget *overlay_gadget; + GtkWidget *overlay_widget; GtkWidget *popover; }; @@ -162,7 +160,7 @@ swatch_snapshot (GtkWidget *widget, gtk_snapshot_pop (snapshot); } - gtk_css_gadget_snapshot (swatch->priv->overlay_gadget, snapshot); + gtk_widget_snapshot_child (widget, swatch->priv->overlay_widget, snapshot); } @@ -395,11 +393,8 @@ swatch_size_allocate (GtkWidget *widget, GtkAllocation clip = *allocation, clip2 = *allocation; - gtk_css_gadget_allocate (swatch->priv->overlay_gadget, - allocation, - gtk_widget_get_allocated_baseline (widget), - &clip2); - + gtk_widget_size_allocate (swatch->priv->overlay_widget, allocation); + gtk_widget_get_clip (swatch->priv->overlay_widget, &clip2); gdk_rectangle_union (&clip, &clip2, &clip); gtk_widget_set_clip (widget, &clip); @@ -419,11 +414,11 @@ gtk_color_swatch_measure (GtkWidget *widget, swatch = GTK_COLOR_SWATCH (widget); - gtk_css_gadget_get_preferred_size (swatch->priv->overlay_gadget, - orientation, - -1, - minimum, natural, - NULL, NULL); + gtk_widget_measure (swatch->priv->overlay_widget, + orientation, + -1, + minimum, natural, + NULL, NULL); gtk_widget_get_size_request (widget, &w, &h); if (orientation == GTK_ORIENTATION_HORIZONTAL) @@ -447,14 +442,14 @@ swatch_popup_menu (GtkWidget *widget) static void update_icon (GtkColorSwatch *swatch) { - GtkIconHelper *icon_helper = GTK_ICON_HELPER (swatch->priv->overlay_gadget); + GtkImage *image = GTK_IMAGE (swatch->priv->overlay_widget); if (swatch->priv->icon) - _gtk_icon_helper_set_icon_name (icon_helper, swatch->priv->icon, GTK_ICON_SIZE_BUTTON); + gtk_image_set_from_icon_name (image, swatch->priv->icon, GTK_ICON_SIZE_BUTTON); else if (gtk_widget_get_state_flags (GTK_WIDGET (swatch)) & GTK_STATE_FLAG_SELECTED) - _gtk_icon_helper_set_icon_name (icon_helper, "object-select-symbolic", GTK_ICON_SIZE_BUTTON); + gtk_image_set_from_icon_name (image, "object-select-symbolic", GTK_ICON_SIZE_BUTTON); else - _gtk_icon_helper_clear (icon_helper); + gtk_image_clear (image); } static void @@ -463,8 +458,6 @@ swatch_state_flags_changed (GtkWidget *widget, { GtkColorSwatch *swatch = GTK_COLOR_SWATCH (widget); - gtk_css_gadget_set_state (swatch->priv->overlay_gadget, gtk_widget_get_state_flags (widget)); - update_icon (swatch); GTK_WIDGET_CLASS (gtk_color_swatch_parent_class)->state_flags_changed (widget, previous_state); @@ -530,7 +523,7 @@ swatch_finalize (GObject *object) GtkColorSwatch *swatch = GTK_COLOR_SWATCH (object); g_free (swatch->priv->icon); - g_clear_object (&swatch->priv->overlay_gadget); + gtk_widget_unparent (swatch->priv->overlay_widget); G_OBJECT_CLASS (gtk_color_swatch_parent_class)->finalize (object); } @@ -606,8 +599,6 @@ gtk_color_swatch_class_init (GtkColorSwatchClass *class) static void gtk_color_swatch_init (GtkColorSwatch *swatch) { - GtkCssNode *widget_node; - swatch->priv = gtk_color_swatch_get_instance_private (swatch); swatch->priv->use_alpha = TRUE; swatch->priv->selectable = TRUE; @@ -627,13 +618,12 @@ gtk_color_swatch_init (GtkColorSwatch *swatch) g_signal_connect (swatch->priv->multipress_gesture, "pressed", G_CALLBACK (tap_action), swatch); - widget_node = gtk_widget_get_css_node (GTK_WIDGET (swatch)); gtk_style_context_add_class (gtk_widget_get_style_context (GTK_WIDGET (swatch)), "activatable"); - swatch->priv->overlay_gadget = gtk_icon_helper_new_named ("overlay", GTK_WIDGET (swatch)); - _gtk_icon_helper_set_force_scale_pixbuf (GTK_ICON_HELPER (swatch->priv->overlay_gadget), TRUE); - gtk_css_node_set_parent (gtk_css_gadget_get_node (swatch->priv->overlay_gadget), widget_node); - + swatch->priv->overlay_widget = g_object_new (GTK_TYPE_IMAGE, + "css-name", "overlay", + NULL); + gtk_widget_set_parent (swatch->priv->overlay_widget, GTK_WIDGET (swatch)); } /* Public API {{{1 */ |