1 #ifndef __GDK_DRAWABLE_H__
2 #define __GDK_DRAWABLE_H__
4 #include <gdk/gdktypes.h>
6 #include <gdk/gdkrgb.h>
7 #include <gdk-pixbuf/gdk-pixbuf.h>
13 #endif /* __cplusplus */
15 typedef struct _GdkDrawableClass GdkDrawableClass;
16 typedef struct _GdkTrapezoid GdkTrapezoid;
18 #define GDK_TYPE_DRAWABLE (gdk_drawable_get_type ())
19 #define GDK_DRAWABLE(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_DRAWABLE, GdkDrawable))
20 #define GDK_DRAWABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_DRAWABLE, GdkDrawableClass))
21 #define GDK_IS_DRAWABLE(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_DRAWABLE))
22 #define GDK_IS_DRAWABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_DRAWABLE))
23 #define GDK_DRAWABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_DRAWABLE, GdkDrawableClass))
27 GObject parent_instance;
30 struct _GdkDrawableClass
32 GObjectClass parent_class;
34 GdkGC *(*create_gc) (GdkDrawable *drawable,
36 GdkGCValuesMask mask);
37 void (*draw_rectangle) (GdkDrawable *drawable,
44 void (*draw_arc) (GdkDrawable *drawable,
53 void (*draw_polygon) (GdkDrawable *drawable,
58 void (*draw_text) (GdkDrawable *drawable,
65 void (*draw_text_wc) (GdkDrawable *drawable,
72 void (*draw_drawable) (GdkDrawable *drawable,
81 void (*draw_points) (GdkDrawable *drawable,
85 void (*draw_segments) (GdkDrawable *drawable,
89 void (*draw_lines) (GdkDrawable *drawable,
94 void (*draw_glyphs) (GdkDrawable *drawable,
99 PangoGlyphString *glyphs);
101 void (*draw_image) (GdkDrawable *drawable,
111 gint (*get_depth) (GdkDrawable *drawable);
112 void (*get_size) (GdkDrawable *drawable,
116 void (*set_colormap) (GdkDrawable *drawable,
119 GdkColormap* (*get_colormap) (GdkDrawable *drawable);
120 GdkVisual* (*get_visual) (GdkDrawable *drawable);
121 GdkScreen* (*get_screen) (GdkDrawable *drawable);
123 GdkImage* (*get_image) (GdkDrawable *drawable,
129 GdkRegion* (*get_clip_region) (GdkDrawable *drawable);
130 GdkRegion* (*get_visible_region) (GdkDrawable *drawable);
132 GdkDrawable* (*get_composite_drawable) (GdkDrawable *drawable,
137 gint *composite_x_offset,
138 gint *composite_y_offset);
140 void (*draw_pixbuf) (GdkDrawable *drawable,
152 GdkImage* (*_copy_to_image) (GdkDrawable *drawable,
161 void (*draw_glyphs_transformed) (GdkDrawable *drawable,
167 PangoGlyphString *glyphs);
168 void (*draw_trapezoids) (GdkDrawable *drawable,
170 GdkTrapezoid *trapezoids,
173 cairo_surface_t *(*ref_cairo_surface) (GdkDrawable *drawable);
175 /* Padding for future expansion */
176 void (*_gdk_reserved4) (void);
177 void (*_gdk_reserved5) (void);
178 void (*_gdk_reserved6) (void);
179 void (*_gdk_reserved7) (void);
180 void (*_gdk_reserved9) (void);
181 void (*_gdk_reserved10) (void);
182 void (*_gdk_reserved11) (void);
183 void (*_gdk_reserved12) (void);
184 void (*_gdk_reserved13) (void);
185 void (*_gdk_reserved14) (void);
186 void (*_gdk_reserved15) (void);
187 void (*_gdk_reserved16) (void);
192 double y1, x11, x21, y2, x12, x22;
195 GType gdk_drawable_get_type (void) G_GNUC_CONST;
197 /* Manipulation of drawables
200 #ifndef GDK_DISABLE_DEPRECATED
201 void gdk_drawable_set_data (GdkDrawable *drawable,
204 GDestroyNotify destroy_func);
205 gpointer gdk_drawable_get_data (GdkDrawable *drawable,
207 #endif /* GDK_DISABLE_DEPRECATED */
209 void gdk_drawable_get_size (GdkDrawable *drawable,
212 void gdk_drawable_set_colormap (GdkDrawable *drawable,
213 GdkColormap *colormap);
214 GdkColormap* gdk_drawable_get_colormap (GdkDrawable *drawable);
215 GdkVisual* gdk_drawable_get_visual (GdkDrawable *drawable);
216 gint gdk_drawable_get_depth (GdkDrawable *drawable);
217 GdkScreen* gdk_drawable_get_screen (GdkDrawable *drawable);
218 GdkDisplay* gdk_drawable_get_display (GdkDrawable *drawable);
220 #ifndef GDK_DISABLE_DEPRECATED
221 GdkDrawable* gdk_drawable_ref (GdkDrawable *drawable);
222 void gdk_drawable_unref (GdkDrawable *drawable);
223 #endif /* GDK_DISABLE_DEPRECATED */
227 void gdk_draw_point (GdkDrawable *drawable,
231 void gdk_draw_line (GdkDrawable *drawable,
237 void gdk_draw_rectangle (GdkDrawable *drawable,
244 void gdk_draw_arc (GdkDrawable *drawable,
253 void gdk_draw_polygon (GdkDrawable *drawable,
258 #if !defined (GDK_DISABLE_DEPRECATED) || defined (GTK_COMPILATION)
259 /* Used by gtk_default_draw_string () */
260 void gdk_draw_string (GdkDrawable *drawable,
265 const gchar *string);
266 #endif /* !GDK_DISABLE_DEPRECATED || GTK_COMPILATION */
267 #if !defined (GDK_DISABLE_DEPRECATED) || defined (GDK_COMPILATION)
268 /* Used by gdk_pixmap_draw_text (), gdk_window_draw_text() */
269 void gdk_draw_text (GdkDrawable *drawable,
276 /* Used by gdk_pixmap_draw_text_wc (), gdk_window_draw_text_wc () */
277 void gdk_draw_text_wc (GdkDrawable *drawable,
282 const GdkWChar *text,
284 #endif /* !GDK_DISABLE_DEPRECATED || GDK_COMPILATION */
285 void gdk_draw_drawable (GdkDrawable *drawable,
294 void gdk_draw_image (GdkDrawable *drawable,
303 void gdk_draw_points (GdkDrawable *drawable,
307 void gdk_draw_segments (GdkDrawable *drawable,
311 void gdk_draw_lines (GdkDrawable *drawable,
315 void gdk_draw_pixbuf (GdkDrawable *drawable,
328 void gdk_draw_glyphs (GdkDrawable *drawable,
333 PangoGlyphString *glyphs);
334 void gdk_draw_layout_line (GdkDrawable *drawable,
338 PangoLayoutLine *line);
339 void gdk_draw_layout (GdkDrawable *drawable,
343 PangoLayout *layout);
345 void gdk_draw_layout_line_with_colors (GdkDrawable *drawable,
349 PangoLayoutLine *line,
350 const GdkColor *foreground,
351 const GdkColor *background);
352 void gdk_draw_layout_with_colors (GdkDrawable *drawable,
357 const GdkColor *foreground,
358 const GdkColor *background);
360 void gdk_draw_glyphs_transformed (GdkDrawable *drawable,
366 PangoGlyphString *glyphs);
367 void gdk_draw_trapezoids (GdkDrawable *drawable,
369 GdkTrapezoid *trapezoids,
372 #ifndef GDK_DISABLE_DEPRECATED
373 #define gdk_draw_pixmap gdk_draw_drawable
374 #define gdk_draw_bitmap gdk_draw_drawable
375 #endif /* GDK_DISABLE_DEPRECATED */
377 GdkImage* gdk_drawable_get_image (GdkDrawable *drawable,
382 GdkImage *gdk_drawable_copy_to_image (GdkDrawable *drawable,
391 GdkRegion *gdk_drawable_get_clip_region (GdkDrawable *drawable);
392 GdkRegion *gdk_drawable_get_visible_region (GdkDrawable *drawable);
396 #endif /* __cplusplus */
398 #endif /* __GDK_DRAWABLE_H__ */