GtkWidgetPaintable

gtk.widget_paintable.WidgetPaintable is a gdk.paintable.Paintable that displays the contents of a widget.

gtk.widget_paintable.WidgetPaintable will also take care of the widget not being in a state where it can be drawn (like when it isn't shown) and just draw nothing or where it does not have a size (like when it is hidden) and report no size in that case.

Of course, gtk.widget_paintable.WidgetPaintable allows you to monitor widgets for size changes by emitting the signal@Gdk.Paintable::invalidate-size signal whenever the size of the widget changes as well as for visual changes by emitting the signal@Gdk.Paintable::invalidate-contents signal whenever the widget changes.

You can use a gtk.widget_paintable.WidgetPaintable everywhere a gdk.paintable.Paintable is allowed, including using it on a gtk.picture.Picture (or one of its parents) that it was set on itself via gtk.picture.Picture.setPaintable. The paintable will take care of recursion when this happens. If you do this however, ensure that the property@Gtk.Picture:can-shrink property is set to true or you might end up with an infinitely growing widget.

struct GtkWidgetPaintable