summaryrefslogtreecommitdiff
path: root/gdk/gdkinternals.h
diff options
context:
space:
mode:
authorAnders Carlsson <andersca@imendio.com>2006-04-10 19:43:08 +0000
committerAnders Carlsson <andersca@src.gnome.org>2006-04-10 19:43:08 +0000
commit47257b075b408826831fb295a0b210b1c32d09e8 (patch)
tree008c4fd249d5c7e2bfcf74a1a062a801bdae7d69 /gdk/gdkinternals.h
parentc39d964d090ef7cdf2e846d93770368363d05c3f (diff)
downloadgdk-pixbuf-47257b075b408826831fb295a0b210b1c32d09e8.tar.gz
Add new GdkPaintable interface which implementation objects can implement
2006-04-11 Anders Carlsson <andersca@imendio.com> * gdk/gdkinternals.h: * gdk/gdkwindow.c: (_gdk_paintable_get_type): (gdk_window_begin_paint_region): (gdk_window_end_paint): (gdk_window_process_updates): (gdk_window_invalidate_maybe_recurse): Add new GdkPaintable interface which implementation objects can implement in order to override gdk painting functions.
Diffstat (limited to 'gdk/gdkinternals.h')
-rw-r--r--gdk/gdkinternals.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/gdk/gdkinternals.h b/gdk/gdkinternals.h
index d3c1fbad5..1c279f4ec 100644
--- a/gdk/gdkinternals.h
+++ b/gdk/gdkinternals.h
@@ -337,6 +337,32 @@ void _gdk_windowing_window_destroy_foreign (GdkWindow *window);
void _gdk_windowing_display_set_sm_client_id (GdkDisplay *display,
const gchar *sm_client_id);
+#define GDK_TYPE_PAINTABLE (_gdk_paintable_get_type ())
+#define GDK_PAINTABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDK_TYPE_PAINTABLE, GdkPaintable))
+#define GDK_IS_PAINTABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDK_TYPE_PAINTABLE))
+#define GDK_PAINTABLE_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GDK_TYPE_PAINTABLE, GdkPaintableIface))
+
+typedef struct _GdkPaintable GdkPaintable;
+typedef struct _GdkPaintableIface GdkPaintableIface;
+
+struct _GdkPaintableIface
+{
+ GTypeInterface g_iface;
+
+ void (* begin_paint_region) (GdkPaintable *paintable,
+ GdkRegion *region);
+ void (* end_paint) (GdkPaintable *paintable);
+
+ void (* invalidate_maybe_recurse) (GdkPaintable *paintable,
+ GdkRegion *region,
+ gboolean (*child_func) (GdkWindow *, gpointer),
+ gpointer user_data);
+ void (* process_updates) (GdkPaintable *paintable,
+ gboolean update_children);
+};
+
+GType _gdk_paintable_get_type (void) G_GNUC_CONST;
+
/* Implementation types */
GType _gdk_window_impl_get_type (void) G_GNUC_CONST;
GType _gdk_pixmap_impl_get_type (void) G_GNUC_CONST;