diff options
author | Matthias Clasen <mclasen@redhat.com> | 2016-10-28 12:55:33 -0400 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2016-10-28 12:55:33 -0400 |
commit | bf1c7be7385612e1ced307ab63610e4d5e54e465 (patch) | |
tree | e23afb0d745b9f18b1bfd43a08b00491562c1c56 | |
parent | 4f5eb6a8521640a483945639734f93c643120e2d (diff) | |
download | gtk+-bf1c7be7385612e1ced307ab63610e4d5e54e465.tar.gz |
gadget: Add a get_render_node vfunc
This will let us do box gadgets like we do containers.
-rw-r--r-- | gtk/gtkcssgadget.c | 21 | ||||
-rw-r--r-- | gtk/gtkcssgadgetprivate.h | 4 |
2 files changed, 21 insertions, 4 deletions
diff --git a/gtk/gtkcssgadget.c b/gtk/gtkcssgadget.c index d7eac83fc7..4c7faa62e0 100644 --- a/gtk/gtkcssgadget.c +++ b/gtk/gtkcssgadget.c @@ -261,6 +261,10 @@ gtk_css_gadget_has_content (GtkCssGadget *gadget) return gadget_class->draw != gtk_css_gadget_real_draw; } +static GskRenderNode * gtk_css_gadget_real_get_render_node (GtkCssGadget *gadget, + GskRenderer *renderer, + gboolean draw_focus); + static void gtk_css_gadget_class_init (GtkCssGadgetClass *klass) { @@ -273,6 +277,7 @@ gtk_css_gadget_class_init (GtkCssGadgetClass *klass) klass->get_preferred_size = gtk_css_gadget_real_get_preferred_size; klass->allocate = gtk_css_gadget_real_allocate; klass->draw = gtk_css_gadget_real_draw; + klass->get_render_node = gtk_css_gadget_real_get_render_node; klass->style_changed = gtk_css_gadget_real_style_changed; klass->has_content = gtk_css_gadget_has_content; @@ -812,10 +817,10 @@ gtk_css_gadget_allocate (GtkCssGadget *gadget, priv->clip = *out_clip; } -GskRenderNode * -gtk_css_gadget_get_render_node (GtkCssGadget *gadget, - GskRenderer *renderer, - gboolean draw_focus) +static GskRenderNode * +gtk_css_gadget_real_get_render_node (GtkCssGadget *gadget, + GskRenderer *renderer, + gboolean draw_focus) { GtkCssGadgetPrivate *priv = gtk_css_gadget_get_instance_private (gadget); GtkBorder clip, margin, border, padding; @@ -1112,6 +1117,14 @@ gtk_css_gadget_draw (GtkCssGadget *gadget, #endif } +GskRenderNode * +gtk_css_gadget_get_render_node (GtkCssGadget *gadget, + GskRenderer *renderer, + gboolean draw_focus) +{ + return GTK_CSS_GADGET_GET_CLASS (gadget)->get_render_node (gadget, renderer, draw_focus); +} + void gtk_css_gadget_queue_resize (GtkCssGadget *gadget) { diff --git a/gtk/gtkcssgadgetprivate.h b/gtk/gtkcssgadgetprivate.h index 54c6132551..347920d0ad 100644 --- a/gtk/gtkcssgadgetprivate.h +++ b/gtk/gtkcssgadgetprivate.h @@ -68,6 +68,10 @@ struct _GtkCssGadgetClass int width, int height); + GskRenderNode * (* get_render_node) (GtkCssGadget *gadget, + GskRenderer *renderer, + gboolean draw_focus); + void (* style_changed) (GtkCssGadget *gadget, GtkCssStyleChange *change); |