]> Pileus Git - ~andy/gtk/blob - gdk/gdkdrawable.h
Remove all references to offscreen flag which was no longer used.
[~andy/gtk] / gdk / gdkdrawable.h
1 #ifndef __GDK_DRAWABLE_H__
2 #define __GDK_DRAWABLE_H__
3
4 #include <gdk/gdktypes.h>
5 #include <gdk/gdkgc.h>
6
7 #ifdef __cplusplus
8 extern "C" {
9 #endif /* __cplusplus */
10
11 typedef struct _GdkDrawableClass GdkDrawableClass;
12
13 /* Types of windows.
14  *   Root: There is only 1 root window and it is initialized
15  *         at startup. Creating a window of type GDK_WINDOW_ROOT
16  *         is an error.
17  *   Toplevel: Windows which interact with the window manager.
18  *   Child: Windows which are children of some other type of window.
19  *          (Any other type of window). Most windows are child windows.
20  *   Dialog: A special kind of toplevel window which interacts with
21  *           the window manager slightly differently than a regular
22  *           toplevel window. Dialog windows should be used for any
23  *           transient window.
24  *   Pixmap: Pixmaps are really just another kind of window which
25  *           doesn't actually appear on the screen. It can't have
26  *           children, either and is really just a convenience so
27  *           that the drawing functions can work on both windows
28  *           and pixmaps transparently. (ie. You shouldn't pass a
29  *           pixmap to any procedure which accepts a window with the
30  *           exception of the drawing functions).
31  *   Foreign: A window that actually belongs to another application
32  */
33 typedef enum
34 {
35   GDK_WINDOW_ROOT,
36   GDK_WINDOW_TOPLEVEL,
37   GDK_WINDOW_CHILD,
38   GDK_WINDOW_DIALOG,
39   GDK_WINDOW_TEMP,
40   GDK_DRAWABLE_PIXMAP,
41   GDK_WINDOW_FOREIGN
42 } GdkDrawableType;
43
44 struct _GdkDrawable
45 {
46   gpointer user_data;
47 };
48  
49 struct _GdkDrawableClass 
50 {
51   void  (*destroy)       (GdkDrawable    *drawable);
52   GdkGC *(*create_gc)    (GdkDrawable    *drawable,
53                           GdkGCValues    *values,
54                           GdkGCValuesMask mask);
55   void (*draw_rectangle) (GdkDrawable  *drawable,
56                           GdkGC        *gc,
57                           gint          filled,
58                           gint          x,
59                           gint          y,
60                           gint          width,
61                           gint          height);
62   void (*draw_arc)       (GdkDrawable  *drawable,
63                           GdkGC        *gc,
64                           gint          filled,
65                           gint          x,
66                           gint          y,
67                           gint          width,
68                           gint          height,
69                           gint          angle1,
70                           gint          angle2);
71   void (*draw_polygon)   (GdkDrawable  *drawable,
72                           GdkGC        *gc,
73                           gint          filled,
74                           GdkPoint     *points,
75                           gint          npoints);
76   void (*draw_text)      (GdkDrawable  *drawable,
77                           GdkFont      *font,
78                           GdkGC        *gc,
79                           gint          x,
80                           gint          y,
81                           const gchar  *text,
82                           gint          text_length);
83   void (*draw_text_wc)   (GdkDrawable    *drawable,
84                           GdkFont        *font,
85                           GdkGC          *gc,
86                           gint            x,
87                           gint            y,
88                           const GdkWChar *text,
89                           gint            text_length);
90   void (*draw_drawable)  (GdkDrawable  *drawable,
91                           GdkGC        *gc,
92                           GdkDrawable  *src,
93                           gint          xsrc,
94                           gint          ysrc,
95                           gint          xdest,
96                           gint          ydest,
97                           gint          width,
98                           gint          height);
99   void (*draw_points)    (GdkDrawable  *drawable,
100                           GdkGC        *gc,
101                           GdkPoint     *points,
102                           gint          npoints);
103   void (*draw_segments)  (GdkDrawable  *drawable,
104                           GdkGC        *gc,
105                           GdkSegment   *segs,
106                           gint          nsegs);
107   void (*draw_lines)     (GdkDrawable  *drawable,
108                           GdkGC        *gc,
109                           GdkPoint     *points,
110                           gint          npoints);
111   void (*draw_glyphs)    (GdkDrawable      *drawable,
112                           GdkGC            *gc,
113                           PangoFont        *font,
114                           gint              x,
115                           gint              y,
116                           PangoGlyphString *glyphs);
117 };
118
119 /* Manipulation of drawables
120  */
121 GdkDrawable *   gdk_drawable_alloc        (void);
122
123 GdkDrawableType gdk_drawable_get_type     (GdkDrawable    *window);
124
125 void            gdk_drawable_set_data     (GdkDrawable    *drawable,
126                                            const gchar    *key,
127                                            gpointer       data,
128                                            GDestroyNotify  destroy_func);
129 gpointer        gdk_drawable_get_data     (GdkDrawable    *drawable,
130                                            const gchar    *key);
131
132 void            gdk_drawable_get_size     (GdkWindow      *drawable,
133                                            gint           *width,
134                                            gint           *height);
135 void            gdk_drawable_set_colormap (GdkDrawable    *drawable,
136                                            GdkColormap    *colormap);
137 GdkColormap*    gdk_drawable_get_colormap (GdkDrawable    *drawable);
138 GdkVisual*      gdk_drawable_get_visual   (GdkDrawable    *drawable);
139 gint            gdk_drawable_get_depth    (GdkDrawable    *drawable);
140 GdkDrawable*    gdk_drawable_ref          (GdkDrawable    *drawable);
141 void            gdk_drawable_unref        (GdkDrawable    *drawable);
142
143 /* Drawing
144  */
145 void gdk_draw_point     (GdkDrawable      *drawable,
146                          GdkGC            *gc,
147                          gint              x,
148                          gint              y);
149 void gdk_draw_line      (GdkDrawable      *drawable,
150                          GdkGC            *gc,
151                          gint              x1,
152                          gint              y1,
153                          gint              x2,
154                          gint              y2);
155 void gdk_draw_rectangle (GdkDrawable      *drawable,
156                          GdkGC            *gc,
157                          gint              filled,
158                          gint              x,
159                          gint              y,
160                          gint              width,
161                          gint              height);
162 void gdk_draw_arc       (GdkDrawable      *drawable,
163                          GdkGC            *gc,
164                          gint              filled,
165                          gint              x,
166                          gint              y,
167                          gint              width,
168                          gint              height,
169                          gint              angle1,
170                          gint              angle2);
171 void gdk_draw_polygon   (GdkDrawable      *drawable,
172                          GdkGC            *gc,
173                          gint              filled,
174                          GdkPoint         *points,
175                          gint              npoints);
176 void gdk_draw_string    (GdkDrawable      *drawable,
177                          GdkFont          *font,
178                          GdkGC            *gc,
179                          gint              x,
180                          gint              y,
181                          const gchar      *string);
182 void gdk_draw_text      (GdkDrawable      *drawable,
183                          GdkFont          *font,
184                          GdkGC            *gc,
185                          gint              x,
186                          gint              y,
187                          const gchar      *text,
188                          gint              text_length);
189 void gdk_draw_text_wc   (GdkDrawable      *drawable,
190                          GdkFont          *font,
191                          GdkGC            *gc,
192                          gint              x,
193                          gint              y,
194                          const GdkWChar   *text,
195                          gint              text_length);
196 void gdk_draw_drawable  (GdkDrawable      *drawable,
197                          GdkGC            *gc,
198                          GdkDrawable      *src,
199                          gint              xsrc,
200                          gint              ysrc,
201                          gint              xdest,
202                          gint              ydest,
203                          gint              width,
204                          gint              height);
205 void gdk_draw_image     (GdkDrawable      *drawable,
206                          GdkGC            *gc,
207                          GdkImage         *image,
208                          gint              xsrc,
209                          gint              ysrc,
210                          gint              xdest,
211                          gint              ydest,
212                          gint              width,
213                          gint              height);
214 void gdk_draw_points    (GdkDrawable      *drawable,
215                          GdkGC            *gc,
216                          GdkPoint         *points,
217                          gint              npoints);
218 void gdk_draw_segments  (GdkDrawable      *drawable,
219                          GdkGC            *gc,
220                          GdkSegment       *segs,
221                          gint              nsegs);
222 void gdk_draw_lines     (GdkDrawable      *drawable,
223                          GdkGC            *gc,
224                          GdkPoint         *points,
225                          gint              npoints);
226
227 void gdk_draw_glyphs      (GdkDrawable      *drawable,
228                            GdkGC            *gc,
229                            PangoFont        *font,
230                            gint              x,
231                            gint              y,
232                            PangoGlyphString *glyphs);
233 void gdk_draw_layout_line (GdkDrawable      *drawable,
234                            GdkGC            *gc,
235                            gint              x,
236                            gint              y,
237                            PangoLayoutLine  *line);
238 void gdk_draw_layout      (GdkDrawable      *drawable,
239                            GdkGC            *gc,
240                            gint              x,
241                            gint              y,
242                            PangoLayout      *layout);
243
244 #ifdef __cplusplus
245 }
246 #endif /* __cplusplus */
247
248 #endif /* __GDK_DRAWABLE_H__ */