1 | /* GDK - The GIMP Drawing Kit |
2 | * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald |
3 | * |
4 | * This library is free software; you can redistribute it and/or |
5 | * modify it under the terms of the GNU Lesser General Public |
6 | * License as published by the Free Software Foundation; either |
7 | * version 2 of the License, or (at your option) any later version. |
8 | * |
9 | * This library is distributed in the hope that it will be useful, |
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
12 | * Lesser General Public License for more details. |
13 | * |
14 | * You should have received a copy of the GNU Lesser General Public |
15 | * License along with this library; if not, write to the |
16 | * Free Software Foundation, Inc., 59 Temple Place - Suite 330, |
17 | * Boston, MA 02111-1307, USA. |
18 | */ |
19 | |
20 | /* |
21 | * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS |
22 | * file for a list of people on the GTK+ Team. See the ChangeLog |
23 | * files for a list of changes. These files are distributed with |
24 | * GTK+ at ftp://ftp.gtk.org/pub/gtk/. |
25 | */ |
26 | |
27 | #ifndef __GDK_WINDOW_H__ |
28 | #define __GDK_WINDOW_H__ |
29 | |
30 | #if defined(GTK_DISABLE_SINGLE_INCLUDES) && !defined (__GDK_H_INSIDE__) && !defined (GDK_COMPILATION) |
31 | #error "Only <gdk/gdk.h> can be included directly." |
32 | #endif |
33 | |
34 | #include <gdk/gdkdrawable.h> |
35 | #include <gdk/gdktypes.h> |
36 | #include <gdk/gdkevents.h> |
37 | |
38 | G_BEGIN_DECLS |
39 | |
40 | typedef struct _GdkGeometry GdkGeometry; |
41 | typedef struct _GdkWindowAttr GdkWindowAttr; |
42 | typedef struct _GdkPointerHooks GdkPointerHooks; |
43 | typedef struct _GdkWindowRedirect GdkWindowRedirect; |
44 | |
45 | /* Classes of windows. |
46 | * InputOutput: Almost every window should be of this type. Such windows |
47 | * receive events and are also displayed on screen. |
48 | * InputOnly: Used only in special circumstances when events need to be |
49 | * stolen from another window or windows. Input only windows |
50 | * have no visible output, so they are handy for placing over |
51 | * top of a group of windows in order to grab the events (or |
52 | * filter the events) from those windows. |
53 | */ |
54 | typedef enum |
55 | { |
56 | GDK_INPUT_OUTPUT, |
57 | GDK_INPUT_ONLY |
58 | } GdkWindowClass; |
59 | |
60 | /* Types of windows. |
61 | * Root: There is only 1 root window and it is initialized |
62 | * at startup. Creating a window of type GDK_WINDOW_ROOT |
63 | * is an error. |
64 | * Toplevel: Windows which interact with the window manager. |
65 | * Child: Windows which are children of some other type of window. |
66 | * (Any other type of window). Most windows are child windows. |
67 | * Dialog: A special kind of toplevel window which interacts with |
68 | * the window manager slightly differently than a regular |
69 | * toplevel window. Dialog windows should be used for any |
70 | * transient window. |
71 | * Foreign: A window that actually belongs to another application |
72 | */ |
73 | typedef enum |
74 | { |
75 | GDK_WINDOW_ROOT, |
76 | GDK_WINDOW_TOPLEVEL, |
77 | GDK_WINDOW_CHILD, |
78 | GDK_WINDOW_DIALOG, |
79 | GDK_WINDOW_TEMP, |
80 | GDK_WINDOW_FOREIGN, |
81 | GDK_WINDOW_OFFSCREEN |
82 | } GdkWindowType; |
83 | |
84 | /* Window attribute mask values. |
85 | * GDK_WA_TITLE: The "title" field is valid. |
86 | * GDK_WA_X: The "x" field is valid. |
87 | * GDK_WA_Y: The "y" field is valid. |
88 | * GDK_WA_CURSOR: The "cursor" field is valid. |
89 | * GDK_WA_COLORMAP: The "colormap" field is valid. |
90 | * GDK_WA_VISUAL: The "visual" field is valid. |
91 | */ |
92 | typedef enum |
93 | { |
94 | GDK_WA_TITLE = 1 << 1, |
95 | GDK_WA_X = 1 << 2, |
96 | GDK_WA_Y = 1 << 3, |
97 | GDK_WA_CURSOR = 1 << 4, |
98 | GDK_WA_COLORMAP = 1 << 5, |
99 | GDK_WA_VISUAL = 1 << 6, |
100 | GDK_WA_WMCLASS = 1 << 7, |
101 | GDK_WA_NOREDIR = 1 << 8, |
102 | GDK_WA_TYPE_HINT = 1 << 9 |
103 | } GdkWindowAttributesType; |
104 | |
105 | /* Size restriction enumeration. |
106 | */ |
107 | typedef enum |
108 | { |
109 | GDK_HINT_POS = 1 << 0, |
110 | GDK_HINT_MIN_SIZE = 1 << 1, |
111 | GDK_HINT_MAX_SIZE = 1 << 2, |
112 | GDK_HINT_BASE_SIZE = 1 << 3, |
113 | GDK_HINT_ASPECT = 1 << 4, |
114 | GDK_HINT_RESIZE_INC = 1 << 5, |
115 | GDK_HINT_WIN_GRAVITY = 1 << 6, |
116 | GDK_HINT_USER_POS = 1 << 7, |
117 | GDK_HINT_USER_SIZE = 1 << 8 |
118 | } GdkWindowHints; |
119 | |
120 | |
121 | /* Window type hints. |
122 | * These are hints for the window manager that indicate |
123 | * what type of function the window has. The window manager |
124 | * can use this when determining decoration and behaviour |
125 | * of the window. The hint must be set before mapping the |
126 | * window. |
127 | * |
128 | * Normal: Normal toplevel window |
129 | * Dialog: Dialog window |
130 | * Menu: Window used to implement a menu. |
131 | * Toolbar: Window used to implement toolbars. |
132 | */ |
133 | typedef enum |
134 | { |
135 | GDK_WINDOW_TYPE_HINT_NORMAL, |
136 | GDK_WINDOW_TYPE_HINT_DIALOG, |
137 | , /* Torn off menu */ |
138 | GDK_WINDOW_TYPE_HINT_TOOLBAR, |
139 | GDK_WINDOW_TYPE_HINT_SPLASHSCREEN, |
140 | GDK_WINDOW_TYPE_HINT_UTILITY, |
141 | GDK_WINDOW_TYPE_HINT_DOCK, |
142 | GDK_WINDOW_TYPE_HINT_DESKTOP, |
143 | , /* A drop down menu (from a menubar) */ |
144 | , /* A popup menu (from right-click) */ |
145 | GDK_WINDOW_TYPE_HINT_TOOLTIP, |
146 | GDK_WINDOW_TYPE_HINT_NOTIFICATION, |
147 | GDK_WINDOW_TYPE_HINT_COMBO, |
148 | GDK_WINDOW_TYPE_HINT_DND |
149 | } GdkWindowTypeHint; |
150 | |
151 | /* The next two enumeration values current match the |
152 | * Motif constants. If this is changed, the implementation |
153 | * of gdk_window_set_decorations/gdk_window_set_functions |
154 | * will need to change as well. |
155 | */ |
156 | typedef enum |
157 | { |
158 | GDK_DECOR_ALL = 1 << 0, |
159 | GDK_DECOR_BORDER = 1 << 1, |
160 | GDK_DECOR_RESIZEH = 1 << 2, |
161 | GDK_DECOR_TITLE = 1 << 3, |
162 | = 1 << 4, |
163 | GDK_DECOR_MINIMIZE = 1 << 5, |
164 | GDK_DECOR_MAXIMIZE = 1 << 6 |
165 | } GdkWMDecoration; |
166 | |
167 | typedef enum |
168 | { |
169 | GDK_FUNC_ALL = 1 << 0, |
170 | GDK_FUNC_RESIZE = 1 << 1, |
171 | GDK_FUNC_MOVE = 1 << 2, |
172 | GDK_FUNC_MINIMIZE = 1 << 3, |
173 | GDK_FUNC_MAXIMIZE = 1 << 4, |
174 | GDK_FUNC_CLOSE = 1 << 5 |
175 | } GdkWMFunction; |
176 | |
177 | /* Currently, these are the same values numerically as in the |
178 | * X protocol. If you change that, gdkwindow-x11.c/gdk_window_set_geometry_hints() |
179 | * will need fixing. |
180 | */ |
181 | typedef enum |
182 | { |
183 | GDK_GRAVITY_NORTH_WEST = 1, |
184 | GDK_GRAVITY_NORTH, |
185 | GDK_GRAVITY_NORTH_EAST, |
186 | GDK_GRAVITY_WEST, |
187 | GDK_GRAVITY_CENTER, |
188 | GDK_GRAVITY_EAST, |
189 | GDK_GRAVITY_SOUTH_WEST, |
190 | GDK_GRAVITY_SOUTH, |
191 | GDK_GRAVITY_SOUTH_EAST, |
192 | GDK_GRAVITY_STATIC |
193 | } GdkGravity; |
194 | |
195 | |
196 | typedef enum |
197 | { |
198 | GDK_WINDOW_EDGE_NORTH_WEST, |
199 | GDK_WINDOW_EDGE_NORTH, |
200 | GDK_WINDOW_EDGE_NORTH_EAST, |
201 | GDK_WINDOW_EDGE_WEST, |
202 | GDK_WINDOW_EDGE_EAST, |
203 | GDK_WINDOW_EDGE_SOUTH_WEST, |
204 | GDK_WINDOW_EDGE_SOUTH, |
205 | GDK_WINDOW_EDGE_SOUTH_EAST |
206 | } GdkWindowEdge; |
207 | |
208 | struct _GdkWindowAttr |
209 | { |
210 | gchar *title; |
211 | gint event_mask; |
212 | gint x, y; |
213 | gint width; |
214 | gint height; |
215 | GdkWindowClass wclass; |
216 | GdkVisual *visual; |
217 | GdkColormap *colormap; |
218 | GdkWindowType window_type; |
219 | GdkCursor *cursor; |
220 | gchar *wmclass_name; |
221 | gchar *wmclass_class; |
222 | gboolean override_redirect; |
223 | GdkWindowTypeHint type_hint; |
224 | }; |
225 | |
226 | struct _GdkGeometry |
227 | { |
228 | gint min_width; |
229 | gint min_height; |
230 | gint max_width; |
231 | gint max_height; |
232 | gint base_width; |
233 | gint base_height; |
234 | gint width_inc; |
235 | gint height_inc; |
236 | gdouble min_aspect; |
237 | gdouble max_aspect; |
238 | GdkGravity win_gravity; |
239 | }; |
240 | |
241 | struct _GdkPointerHooks |
242 | { |
243 | GdkWindow* (*get_pointer) (GdkWindow *window, |
244 | gint *x, |
245 | gint *y, |
246 | GdkModifierType *mask); |
247 | GdkWindow* (*window_at_pointer) (GdkScreen *screen, /* unused */ |
248 | gint *win_x, |
249 | gint *win_y); |
250 | }; |
251 | |
252 | typedef struct _GdkWindowObject GdkWindowObject; |
253 | typedef struct _GdkWindowObjectClass GdkWindowObjectClass; |
254 | |
255 | #define GDK_TYPE_WINDOW (gdk_window_object_get_type ()) |
256 | #define GDK_WINDOW(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_WINDOW, GdkWindow)) |
257 | #define GDK_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_WINDOW, GdkWindowObjectClass)) |
258 | #define GDK_IS_WINDOW(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_WINDOW)) |
259 | #define GDK_IS_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_WINDOW)) |
260 | #define GDK_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_WINDOW, GdkWindowObjectClass)) |
261 | |
262 | #ifndef GDK_DISABLE_DEPRECATED |
263 | #define GDK_WINDOW_OBJECT(object) ((GdkWindowObject *) GDK_WINDOW (object)) |
264 | |
265 | #ifndef GDK_COMPILATION |
266 | |
267 | /* We used to export all of GdkWindowObject, but we don't want to keep doing so. |
268 | However, there are various parts of it accessed by macros and other code, |
269 | so we keep the old exported version public, but in reality it is larger. */ |
270 | |
271 | /**** DON'T CHANGE THIS STRUCT, the real version is in gdkinternals.h ****/ |
272 | struct _GdkWindowObject |
273 | { |
274 | GdkDrawable parent_instance; |
275 | |
276 | GdkDrawable *GSEAL (impl); /* window-system-specific delegate object */ |
277 | |
278 | GdkWindowObject *GSEAL (parent); |
279 | |
280 | gpointer GSEAL (user_data); |
281 | |
282 | gint GSEAL (x); |
283 | gint GSEAL (y); |
284 | |
285 | gint GSEAL (extension_events); |
286 | |
287 | GList *GSEAL (filters); |
288 | GList *GSEAL (children); |
289 | |
290 | GdkColor GSEAL (bg_color); |
291 | GdkPixmap *GSEAL (bg_pixmap); |
292 | |
293 | GSList *GSEAL (paint_stack); |
294 | |
295 | GdkRegion *GSEAL (update_area); |
296 | guint GSEAL (update_freeze_count); |
297 | |
298 | guint8 GSEAL (window_type); |
299 | guint8 GSEAL (depth); |
300 | guint8 GSEAL (resize_count); |
301 | |
302 | GdkWindowState GSEAL (state); |
303 | |
304 | guint GSEAL (guffaw_gravity) : 1; |
305 | guint GSEAL (input_only) : 1; |
306 | guint GSEAL (modal_hint) : 1; |
307 | guint GSEAL (composited) : 1; |
308 | |
309 | guint GSEAL (destroyed) : 2; |
310 | |
311 | guint GSEAL (accept_focus) : 1; |
312 | guint GSEAL (focus_on_map) : 1; |
313 | guint GSEAL (shaped) : 1; |
314 | |
315 | GdkEventMask GSEAL (event_mask); |
316 | |
317 | guint GSEAL (update_and_descendants_freeze_count); |
318 | |
319 | GdkWindowRedirect *GSEAL (redirect); |
320 | }; |
321 | #endif |
322 | #endif |
323 | |
324 | struct _GdkWindowObjectClass |
325 | { |
326 | GdkDrawableClass parent_class; |
327 | }; |
328 | |
329 | /* Windows |
330 | */ |
331 | GType gdk_window_object_get_type (void) G_GNUC_CONST; |
332 | GdkWindow* gdk_window_new (GdkWindow *parent, |
333 | GdkWindowAttr *attributes, |
334 | gint attributes_mask); |
335 | void gdk_window_destroy (GdkWindow *window); |
336 | GdkWindowType gdk_window_get_window_type (GdkWindow *window); |
337 | gboolean gdk_window_is_destroyed (GdkWindow *window); |
338 | |
339 | GdkScreen* gdk_window_get_screen (GdkWindow *window); |
340 | GdkDisplay* gdk_window_get_display (GdkWindow *window); |
341 | GdkVisual* gdk_window_get_visual (GdkWindow *window); |
342 | int gdk_window_get_width (GdkWindow *window); |
343 | int gdk_window_get_height (GdkWindow *window); |
344 | |
345 | GdkWindow* gdk_window_at_pointer (gint *win_x, |
346 | gint *win_y); |
347 | void gdk_window_show (GdkWindow *window); |
348 | void gdk_window_hide (GdkWindow *window); |
349 | void gdk_window_withdraw (GdkWindow *window); |
350 | void gdk_window_show_unraised (GdkWindow *window); |
351 | void gdk_window_move (GdkWindow *window, |
352 | gint x, |
353 | gint y); |
354 | void gdk_window_resize (GdkWindow *window, |
355 | gint width, |
356 | gint height); |
357 | void gdk_window_move_resize (GdkWindow *window, |
358 | gint x, |
359 | gint y, |
360 | gint width, |
361 | gint height); |
362 | void gdk_window_reparent (GdkWindow *window, |
363 | GdkWindow *new_parent, |
364 | gint x, |
365 | gint y); |
366 | void gdk_window_clear (GdkWindow *window); |
367 | void gdk_window_clear_area (GdkWindow *window, |
368 | gint x, |
369 | gint y, |
370 | gint width, |
371 | gint height); |
372 | void gdk_window_clear_area_e (GdkWindow *window, |
373 | gint x, |
374 | gint y, |
375 | gint width, |
376 | gint height); |
377 | void gdk_window_raise (GdkWindow *window); |
378 | void gdk_window_lower (GdkWindow *window); |
379 | void gdk_window_restack (GdkWindow *window, |
380 | GdkWindow *sibling, |
381 | gboolean above); |
382 | void gdk_window_focus (GdkWindow *window, |
383 | guint32 timestamp); |
384 | void gdk_window_set_user_data (GdkWindow *window, |
385 | gpointer user_data); |
386 | void gdk_window_set_override_redirect (GdkWindow *window, |
387 | gboolean override_redirect); |
388 | gboolean gdk_window_get_accept_focus (GdkWindow *window); |
389 | void gdk_window_set_accept_focus (GdkWindow *window, |
390 | gboolean accept_focus); |
391 | gboolean gdk_window_get_focus_on_map (GdkWindow *window); |
392 | void gdk_window_set_focus_on_map (GdkWindow *window, |
393 | gboolean focus_on_map); |
394 | void gdk_window_add_filter (GdkWindow *window, |
395 | GdkFilterFunc function, |
396 | gpointer data); |
397 | void gdk_window_remove_filter (GdkWindow *window, |
398 | GdkFilterFunc function, |
399 | gpointer data); |
400 | void gdk_window_scroll (GdkWindow *window, |
401 | gint dx, |
402 | gint dy); |
403 | void gdk_window_move_region (GdkWindow *window, |
404 | const GdkRegion *region, |
405 | gint dx, |
406 | gint dy); |
407 | gboolean gdk_window_ensure_native (GdkWindow *window); |
408 | |
409 | /* |
410 | * This allows for making shaped (partially transparent) windows |
411 | * - cool feature, needed for Drag and Drag for example. |
412 | * The shape_mask can be the mask |
413 | * from gdk_pixmap_create_from_xpm. Stefan Wille |
414 | */ |
415 | void gdk_window_shape_combine_mask (GdkWindow *window, |
416 | GdkBitmap *mask, |
417 | gint x, |
418 | gint y); |
419 | void gdk_window_shape_combine_region (GdkWindow *window, |
420 | const GdkRegion *shape_region, |
421 | gint offset_x, |
422 | gint offset_y); |
423 | |
424 | /* |
425 | * This routine allows you to quickly take the shapes of all the child windows |
426 | * of a window and use their shapes as the shape mask for this window - useful |
427 | * for container windows that dont want to look like a big box |
428 | * |
429 | * - Raster |
430 | */ |
431 | void gdk_window_set_child_shapes (GdkWindow *window); |
432 | |
433 | gboolean gdk_window_get_composited (GdkWindow *window); |
434 | void gdk_window_set_composited (GdkWindow *window, |
435 | gboolean composited); |
436 | |
437 | /* |
438 | * This routine allows you to merge (ie ADD) child shapes to your |
439 | * own window's shape keeping its current shape and ADDING the child |
440 | * shapes to it. |
441 | * |
442 | * - Raster |
443 | */ |
444 | void gdk_window_merge_child_shapes (GdkWindow *window); |
445 | |
446 | void gdk_window_input_shape_combine_mask (GdkWindow *window, |
447 | GdkBitmap *mask, |
448 | gint x, |
449 | gint y); |
450 | void gdk_window_input_shape_combine_region (GdkWindow *window, |
451 | const GdkRegion *shape_region, |
452 | gint offset_x, |
453 | gint offset_y); |
454 | void gdk_window_set_child_input_shapes (GdkWindow *window); |
455 | void gdk_window_merge_child_input_shapes (GdkWindow *window); |
456 | |
457 | |
458 | /* |
459 | * Check if a window has been shown, and whether all its |
460 | * parents up to a toplevel have been shown, respectively. |
461 | * Note that a window that is_viewable below is not necessarily |
462 | * viewable in the X sense. |
463 | */ |
464 | gboolean gdk_window_is_visible (GdkWindow *window); |
465 | gboolean gdk_window_is_viewable (GdkWindow *window); |
466 | gboolean gdk_window_is_input_only (GdkWindow *window); |
467 | gboolean gdk_window_is_shaped (GdkWindow *window); |
468 | |
469 | GdkWindowState gdk_window_get_state (GdkWindow *window); |
470 | |
471 | /* Set static bit gravity on the parent, and static |
472 | * window gravity on all children. |
473 | */ |
474 | gboolean gdk_window_set_static_gravities (GdkWindow *window, |
475 | gboolean use_static); |
476 | |
477 | /* Functions to create/lookup windows from their native equivalents */ |
478 | #if !defined(GDK_DISABLE_DEPRECATED) || defined(GDK_COMPILATION) |
479 | #ifndef GDK_MULTIHEAD_SAFE |
480 | GdkWindow* gdk_window_foreign_new (GdkNativeWindow anid); |
481 | GdkWindow* gdk_window_lookup (GdkNativeWindow anid); |
482 | #endif |
483 | GdkWindow *gdk_window_foreign_new_for_display (GdkDisplay *display, |
484 | GdkNativeWindow anid); |
485 | GdkWindow* gdk_window_lookup_for_display (GdkDisplay *display, |
486 | GdkNativeWindow anid); |
487 | #endif |
488 | |
489 | |
490 | /* GdkWindow */ |
491 | |
492 | gboolean gdk_window_has_native (GdkWindow *window); |
493 | #ifndef GDK_DISABLE_DEPRECATED |
494 | void gdk_window_set_hints (GdkWindow *window, |
495 | gint x, |
496 | gint y, |
497 | gint min_width, |
498 | gint min_height, |
499 | gint max_width, |
500 | gint max_height, |
501 | gint flags); |
502 | #endif |
503 | void gdk_window_set_type_hint (GdkWindow *window, |
504 | GdkWindowTypeHint hint); |
505 | GdkWindowTypeHint gdk_window_get_type_hint (GdkWindow *window); |
506 | |
507 | gboolean gdk_window_get_modal_hint (GdkWindow *window); |
508 | void gdk_window_set_modal_hint (GdkWindow *window, |
509 | gboolean modal); |
510 | |
511 | void gdk_window_set_skip_taskbar_hint (GdkWindow *window, |
512 | gboolean skips_taskbar); |
513 | void (GdkWindow *window, |
514 | gboolean ); |
515 | void gdk_window_set_urgency_hint (GdkWindow *window, |
516 | gboolean urgent); |
517 | |
518 | void gdk_window_set_geometry_hints (GdkWindow *window, |
519 | const GdkGeometry *geometry, |
520 | GdkWindowHints geom_mask); |
521 | #if !defined(GDK_DISABLE_DEPRECATED) || defined(GDK_COMPILATION) |
522 | void gdk_set_sm_client_id (const gchar *sm_client_id); |
523 | #endif |
524 | |
525 | void gdk_window_begin_paint_rect (GdkWindow *window, |
526 | const GdkRectangle *rectangle); |
527 | void gdk_window_begin_paint_region (GdkWindow *window, |
528 | const GdkRegion *region); |
529 | void gdk_window_end_paint (GdkWindow *window); |
530 | void gdk_window_flush (GdkWindow *window); |
531 | |
532 | void gdk_window_set_title (GdkWindow *window, |
533 | const gchar *title); |
534 | void gdk_window_set_role (GdkWindow *window, |
535 | const gchar *role); |
536 | void gdk_window_set_startup_id (GdkWindow *window, |
537 | const gchar *startup_id); |
538 | void gdk_window_set_transient_for (GdkWindow *window, |
539 | GdkWindow *parent); |
540 | void gdk_window_set_background (GdkWindow *window, |
541 | const GdkColor *color); |
542 | void gdk_window_set_back_pixmap (GdkWindow *window, |
543 | GdkPixmap *pixmap, |
544 | gboolean parent_relative); |
545 | cairo_pattern_t *gdk_window_get_background_pattern (GdkWindow *window); |
546 | |
547 | void gdk_window_set_cursor (GdkWindow *window, |
548 | GdkCursor *cursor); |
549 | GdkCursor *gdk_window_get_cursor (GdkWindow *window); |
550 | void gdk_window_get_user_data (GdkWindow *window, |
551 | gpointer *data); |
552 | void gdk_window_get_geometry (GdkWindow *window, |
553 | gint *x, |
554 | gint *y, |
555 | gint *width, |
556 | gint *height, |
557 | gint *depth); |
558 | void gdk_window_get_position (GdkWindow *window, |
559 | gint *x, |
560 | gint *y); |
561 | gint gdk_window_get_origin (GdkWindow *window, |
562 | gint *x, |
563 | gint *y); |
564 | void gdk_window_get_root_coords (GdkWindow *window, |
565 | gint x, |
566 | gint y, |
567 | gint *root_x, |
568 | gint *root_y); |
569 | void gdk_window_coords_to_parent (GdkWindow *window, |
570 | gdouble x, |
571 | gdouble y, |
572 | gdouble *parent_x, |
573 | gdouble *parent_y); |
574 | void gdk_window_coords_from_parent (GdkWindow *window, |
575 | gdouble parent_x, |
576 | gdouble parent_y, |
577 | gdouble *x, |
578 | gdouble *y); |
579 | |
580 | #if !defined (GDK_DISABLE_DEPRECATED) || defined (GDK_COMPILATION) |
581 | /* Used by gtk_handle_box_button_changed () */ |
582 | gboolean gdk_window_get_deskrelative_origin (GdkWindow *window, |
583 | gint *x, |
584 | gint *y); |
585 | #endif |
586 | |
587 | void gdk_window_get_root_origin (GdkWindow *window, |
588 | gint *x, |
589 | gint *y); |
590 | void gdk_window_get_frame_extents (GdkWindow *window, |
591 | GdkRectangle *rect); |
592 | GdkWindow* gdk_window_get_pointer (GdkWindow *window, |
593 | gint *x, |
594 | gint *y, |
595 | GdkModifierType *mask); |
596 | GdkWindow * gdk_window_get_parent (GdkWindow *window); |
597 | GdkWindow * gdk_window_get_toplevel (GdkWindow *window); |
598 | |
599 | GdkWindow * gdk_window_get_effective_parent (GdkWindow *window); |
600 | GdkWindow * gdk_window_get_effective_toplevel (GdkWindow *window); |
601 | |
602 | GList * gdk_window_get_children (GdkWindow *window); |
603 | GList * gdk_window_peek_children (GdkWindow *window); |
604 | GdkEventMask gdk_window_get_events (GdkWindow *window); |
605 | void gdk_window_set_events (GdkWindow *window, |
606 | GdkEventMask event_mask); |
607 | |
608 | void gdk_window_set_icon_list (GdkWindow *window, |
609 | GList *pixbufs); |
610 | void gdk_window_set_icon (GdkWindow *window, |
611 | GdkWindow *icon_window, |
612 | GdkPixmap *pixmap, |
613 | GdkBitmap *mask); |
614 | void gdk_window_set_icon_name (GdkWindow *window, |
615 | const gchar *name); |
616 | void gdk_window_set_group (GdkWindow *window, |
617 | GdkWindow *leader); |
618 | GdkWindow* gdk_window_get_group (GdkWindow *window); |
619 | void gdk_window_set_decorations (GdkWindow *window, |
620 | GdkWMDecoration decorations); |
621 | gboolean gdk_window_get_decorations (GdkWindow *window, |
622 | GdkWMDecoration *decorations); |
623 | void gdk_window_set_functions (GdkWindow *window, |
624 | GdkWMFunction functions); |
625 | #if !defined(GDK_MULTIHEAD_SAFE) && !defined(GDK_DISABLE_DEPRECATED) |
626 | GList * gdk_window_get_toplevels (void); |
627 | #endif |
628 | |
629 | cairo_surface_t * |
630 | gdk_window_create_similar_surface (GdkWindow *window, |
631 | cairo_content_t content, |
632 | int width, |
633 | int height); |
634 | |
635 | void gdk_window_beep (GdkWindow *window); |
636 | void gdk_window_iconify (GdkWindow *window); |
637 | void gdk_window_deiconify (GdkWindow *window); |
638 | void gdk_window_stick (GdkWindow *window); |
639 | void gdk_window_unstick (GdkWindow *window); |
640 | void gdk_window_maximize (GdkWindow *window); |
641 | void gdk_window_unmaximize (GdkWindow *window); |
642 | void gdk_window_fullscreen (GdkWindow *window); |
643 | void gdk_window_unfullscreen (GdkWindow *window); |
644 | void gdk_window_set_keep_above (GdkWindow *window, |
645 | gboolean setting); |
646 | void gdk_window_set_keep_below (GdkWindow *window, |
647 | gboolean setting); |
648 | void gdk_window_set_opacity (GdkWindow *window, |
649 | gdouble opacity); |
650 | void gdk_window_register_dnd (GdkWindow *window); |
651 | |
652 | void gdk_window_begin_resize_drag (GdkWindow *window, |
653 | GdkWindowEdge edge, |
654 | gint button, |
655 | gint root_x, |
656 | gint root_y, |
657 | guint32 timestamp); |
658 | void gdk_window_begin_move_drag (GdkWindow *window, |
659 | gint button, |
660 | gint root_x, |
661 | gint root_y, |
662 | guint32 timestamp); |
663 | |
664 | /* Interface for dirty-region queueing */ |
665 | void gdk_window_invalidate_rect (GdkWindow *window, |
666 | const GdkRectangle *rect, |
667 | gboolean invalidate_children); |
668 | void gdk_window_invalidate_region (GdkWindow *window, |
669 | const GdkRegion *region, |
670 | gboolean invalidate_children); |
671 | void gdk_window_invalidate_maybe_recurse (GdkWindow *window, |
672 | const GdkRegion *region, |
673 | gboolean (*child_func) (GdkWindow *, gpointer), |
674 | gpointer user_data); |
675 | GdkRegion *gdk_window_get_update_area (GdkWindow *window); |
676 | |
677 | void gdk_window_freeze_updates (GdkWindow *window); |
678 | void gdk_window_thaw_updates (GdkWindow *window); |
679 | |
680 | void gdk_window_freeze_toplevel_updates_libgtk_only (GdkWindow *window); |
681 | void gdk_window_thaw_toplevel_updates_libgtk_only (GdkWindow *window); |
682 | |
683 | void gdk_window_process_all_updates (void); |
684 | void gdk_window_process_updates (GdkWindow *window, |
685 | gboolean update_children); |
686 | |
687 | /* Enable/disable flicker, so you can tell if your code is inefficient. */ |
688 | void gdk_window_set_debug_updates (gboolean setting); |
689 | |
690 | void gdk_window_constrain_size (GdkGeometry *geometry, |
691 | guint flags, |
692 | gint width, |
693 | gint height, |
694 | gint *new_width, |
695 | gint *new_height); |
696 | |
697 | void gdk_window_get_internal_paint_info (GdkWindow *window, |
698 | GdkDrawable **real_drawable, |
699 | gint *x_offset, |
700 | gint *y_offset); |
701 | |
702 | void gdk_window_enable_synchronized_configure (GdkWindow *window); |
703 | void gdk_window_configure_finished (GdkWindow *window); |
704 | |
705 | GdkWindow *gdk_get_default_root_window (void); |
706 | |
707 | /* Offscreen redirection */ |
708 | GdkPixmap *gdk_offscreen_window_get_pixmap (GdkWindow *window); |
709 | void gdk_offscreen_window_set_embedder (GdkWindow *window, |
710 | GdkWindow *embedder); |
711 | GdkWindow *gdk_offscreen_window_get_embedder (GdkWindow *window); |
712 | void gdk_window_geometry_changed (GdkWindow *window); |
713 | |
714 | void gdk_window_redirect_to_drawable (GdkWindow *window, |
715 | GdkDrawable *drawable, |
716 | gint src_x, |
717 | gint src_y, |
718 | gint dest_x, |
719 | gint dest_y, |
720 | gint width, |
721 | gint height); |
722 | void gdk_window_remove_redirection (GdkWindow *window); |
723 | |
724 | #ifndef GDK_DISABLE_DEPRECATED |
725 | #ifndef GDK_MULTIHEAD_SAFE |
726 | GdkPointerHooks *gdk_set_pointer_hooks (const GdkPointerHooks *new_hooks); |
727 | #endif /* GDK_MULTIHEAD_SAFE */ |
728 | |
729 | #define GDK_ROOT_PARENT() (gdk_get_default_root_window ()) |
730 | #define gdk_window_get_size gdk_drawable_get_size |
731 | #define gdk_window_get_type gdk_window_get_window_type |
732 | #define gdk_window_get_colormap gdk_drawable_get_colormap |
733 | #define gdk_window_set_colormap gdk_drawable_set_colormap |
734 | #define gdk_window_ref g_object_ref |
735 | #define gdk_window_unref g_object_unref |
736 | |
737 | #define gdk_window_copy_area(drawable,gc,x,y,source_drawable,source_x,source_y,width,height) \ |
738 | gdk_draw_pixmap(drawable,gc,source_drawable,source_x,source_y,x,y,width,height) |
739 | #endif /* GDK_DISABLE_DEPRECATED */ |
740 | |
741 | G_END_DECLS |
742 | |
743 | #endif /* __GDK_WINDOW_H__ */ |
744 | |