]> Pileus Git - ~andy/gtk/blob - gdk/gdk.h
Required changes for version change to 0.99.4
[~andy/gtk] / gdk / gdk.h
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 Library 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  * Library General Public License for more details.
13  *
14  * You should have received a copy of the GNU Library General Public
15  * License along with this library; if not, write to the Free
16  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
17  */
18 #ifndef __GDK_H__
19 #define __GDK_H__
20
21
22 #include <gdk/gdktypes.h>
23
24
25 #ifdef __cplusplus
26 extern "C" {
27 #endif /* __cplusplus */
28
29
30 /* Initialization, exit and events
31  */
32 void   gdk_init            (int    *argc,
33                             char ***argv);
34 void   gdk_exit            (int     error_code);
35 gchar* gdk_set_locale      (void);
36
37 gint gdk_events_pending  (void);
38 GdkEvent *gdk_event_get  (void);
39 GdkEvent *gdk_event_get_graphics_expose (GdkWindow *window);
40 void gdk_event_put       (GdkEvent     *event);
41
42 GdkEvent *gdk_event_copy (GdkEvent *event);
43 void      gdk_event_free (GdkEvent *event);
44
45 void gdk_set_show_events (gint  show_events);
46 void gdk_set_use_xshm    (gint  use_xshm);
47
48 gint gdk_get_show_events (void);
49 gint gdk_get_use_xshm    (void);
50 gchar *gdk_get_display (void);
51
52 guint32 gdk_time_get      (void);
53 guint32 gdk_timer_get     (void);
54 void    gdk_timer_set     (guint32 milliseconds);
55 void    gdk_timer_enable  (void);
56 void    gdk_timer_disable (void);
57
58 gint gdk_input_add_full   (gint              source,
59                            GdkInputCondition condition,
60                            GdkInputFunction  function,
61                            gpointer          data,
62                            GdkDestroyNotify  destroy);
63 #define gdk_input_add_interp gdk_input_add_full  
64 gint gdk_input_add        (gint              source,
65                            GdkInputCondition condition,
66                            GdkInputFunction  function,
67                            gpointer          data);
68 void gdk_input_remove     (gint              tag);
69
70 gint gdk_pointer_grab   (GdkWindow *     window,
71                          gint            owner_events,
72                          GdkEventMask    event_mask,
73                          GdkWindow *     confine_to,
74                          GdkCursor *     cursor,
75                          guint32         time);
76 void gdk_pointer_ungrab (guint32         time);
77
78 gint gdk_keyboard_grab   (GdkWindow *     window,
79                           gint            owner_events,
80                           guint32         time);
81 void gdk_keyboard_ungrab (guint32         time);
82
83 gint gdk_pointer_is_grabbed (void);
84
85 gint gdk_screen_width  (void);
86 gint gdk_screen_height (void);
87
88 void gdk_flush (void);
89 void gdk_beep (void);
90
91 void gdk_key_repeat_disable (void);
92 void gdk_key_repeat_restore (void);
93
94
95 /* Visuals
96  */
97 gint          gdk_visual_get_best_depth      (void);
98 GdkVisualType gdk_visual_get_best_type       (void);
99 GdkVisual*    gdk_visual_get_system          (void);
100 GdkVisual*    gdk_visual_get_best            (void);
101 GdkVisual*    gdk_visual_get_best_with_depth (gint           depth);
102 GdkVisual*    gdk_visual_get_best_with_type  (GdkVisualType  visual_type);
103 GdkVisual*    gdk_visual_get_best_with_both  (gint           depth,
104                                               GdkVisualType  visual_type);
105
106 /* Actually, these are no-ops... */
107 GdkVisual* gdk_visual_ref (GdkVisual *visual);
108 void       gdk_visual_unref (GdkVisual *visual);
109
110 void gdk_query_depths       (gint           **depths,
111                              gint            *count);
112 void gdk_query_visual_types (GdkVisualType  **visual_types,
113                              gint            *count);
114 void gdk_query_visuals      (GdkVisual      **visuals,
115                              gint            *count);
116
117
118 /* Windows
119  */
120 GdkWindow*    gdk_window_new         (GdkWindow     *parent,
121                                       GdkWindowAttr *attributes,
122                                       gint           attributes_mask);
123
124 GdkWindow *   gdk_window_foreign_new (guint32        anid);
125 void          gdk_window_destroy     (GdkWindow     *window);
126 GdkWindow*    gdk_window_ref         (GdkWindow     *window);
127 void          gdk_window_unref       (GdkWindow     *window);
128
129 void          gdk_window_show        (GdkWindow    *window);
130 void          gdk_window_hide        (GdkWindow    *window);
131 void          gdk_window_withdraw    (GdkWindow    *window);
132 void          gdk_window_move        (GdkWindow    *window,
133                                       gint          x,
134                                       gint          y);
135 void          gdk_window_resize      (GdkWindow    *window,
136                                       gint          width,
137                                       gint          height);
138 void          gdk_window_move_resize (GdkWindow    *window,
139                                       gint          x,
140                                       gint          y,
141                                       gint          width,
142                                       gint          height);
143 void          gdk_window_reparent    (GdkWindow    *window,
144                                       GdkWindow    *new_parent,
145                                       gint          x,
146                                       gint          y);
147 void          gdk_window_clear       (GdkWindow    *window);
148 void          gdk_window_clear_area  (GdkWindow    *window,
149                                       gint          x,
150                                       gint          y,
151                                       gint          width,
152                                       gint          height);
153 void          gdk_window_clear_area_e(GdkWindow    *window,
154                                       gint          x,
155                                       gint          y,
156                                       gint          width,
157                                       gint          height);
158 void          gdk_window_copy_area   (GdkWindow    *window,
159                                       GdkGC        *gc,
160                                       gint          x,
161                                       gint          y,
162                                       GdkWindow    *source_window,
163                                       gint          source_x,
164                                       gint          source_y,
165                                       gint          width,
166                                       gint          height);
167 void          gdk_window_raise       (GdkWindow    *window);
168 void          gdk_window_lower       (GdkWindow    *window);
169
170 void          gdk_window_set_user_data   (GdkWindow       *window,
171                                           gpointer         user_data);
172 void          gdk_window_set_override_redirect(GdkWindow  *window,
173                                                gboolean override_redirect);
174
175 void          gdk_window_add_filter     (GdkWindow     *window,
176                                          GdkFilterFunc  function,
177                                          gpointer       data);
178 void          gdk_window_remove_filter  (GdkWindow     *window,
179                                          GdkFilterFunc  function,
180                                          gpointer       data);
181
182 /* 
183  * This allows for making shaped (partially transparent) windows
184  * - cool feature, needed for Drag and Drag for example.
185  *  The shape_mask can be the mask
186  *  from gdk_pixmap_create_from_xpm.   Stefan Wille
187  */
188 void gdk_window_shape_combine_mask (GdkWindow       *window,
189                                     GdkBitmap       *shape_mask,
190                                     gint             offset_x,
191                                     gint             offset_y);
192
193 /* 
194  * Drag & Drop
195  * Algorithm (drop source):
196  * A window being dragged will be sent a GDK_DRAG_BEGIN message.
197  * It will then do gdk_dnd_drag_addwindow() for any other windows that are to be
198  * dragged.
199  * When we get a DROP_ENTER incoming, we send it on to the window in question.
200  * That window needs to use gdk_dnd_drop_enter_reply() to indicate the state of
201  * things (it must call that even if it's not going to accept the drop)
202  *
203  * These two turn on/off drag or drop, and if enabling it also
204  * sets the list of types supported. The list of types passed in
205  * should be in order of decreasing preference.
206  */
207 void gdk_window_dnd_drag_set (GdkWindow  *window,
208                               guint8      drag_enable,
209                               gchar     **typelist,
210                               guint       numtypes);
211
212 /* 
213  *XXX todo: add a GDK_DROP_ENTER which can look at actual data
214  */
215 void gdk_window_dnd_drop_set (GdkWindow  *window,
216                               guint8      drop_enable,
217                               gchar     **typelist,
218                               guint       numtypes,
219                               guint8      destructive_op);
220
221 /* 
222  * This is used by the GDK_DRAG_BEGIN handler. An example of usage would be a
223  * file manager where multiple icons were selected and the drag began.
224  * The icon that the drag actually began on would gdk_dnd_drag_addwindow
225  * for all the other icons that were being dragged... 
226  */
227 void gdk_dnd_drag_addwindow  (GdkWindow  *window);
228 void gdk_window_dnd_data_set (GdkWindow  *window,
229                               GdkEvent   *event,
230                               gpointer    data,
231                               gulong      data_numbytes);
232 void gdk_dnd_set_drag_cursors(GdkCursor *default_cursor,
233                               GdkCursor *goahead_cursor);
234 void gdk_dnd_set_drag_shape(GdkWindow *default_pixmapwin,
235                             GdkPoint *default_hotspot,
236                             GdkWindow *goahead_pixmapwin,
237                             GdkPoint *goahead_hotspot);
238
239 void          gdk_window_set_hints       (GdkWindow       *window,
240                                           gint             x,
241                                           gint             y,
242                                           gint             min_width,
243                                           gint             min_height,
244                                           gint             max_width,
245                                           gint             max_height,
246                                           gint             flags);
247 void          gdk_window_set_title       (GdkWindow       *window,
248                                           const gchar     *title);
249 void          gdk_window_set_background  (GdkWindow       *window,
250                                           GdkColor        *color);
251 void          gdk_window_set_back_pixmap (GdkWindow       *window,
252                                           GdkPixmap       *pixmap,
253                                           gint             parent_relative);
254 void          gdk_window_set_cursor      (GdkWindow       *window,
255                                           GdkCursor       *cursor);
256 void          gdk_window_set_colormap    (GdkWindow       *window,
257                                           GdkColormap     *colormap);
258 void          gdk_window_get_user_data   (GdkWindow       *window,
259                                           gpointer        *data);
260 void          gdk_window_get_geometry    (GdkWindow       *window,
261                                           gint            *x,
262                                           gint            *y,
263                                           gint            *width,
264                                           gint            *height,
265                                           gint            *depth);
266 void          gdk_window_get_position    (GdkWindow       *window,
267                                           gint            *x,
268                                           gint            *y);
269 void          gdk_window_get_size        (GdkWindow       *window,
270                                           gint            *width,
271                                           gint            *height);
272 GdkVisual*    gdk_window_get_visual      (GdkWindow       *window);
273 GdkColormap*  gdk_window_get_colormap    (GdkWindow       *window);
274 GdkWindowType gdk_window_get_type        (GdkWindow       *window);
275 gint          gdk_window_get_origin      (GdkWindow       *window,
276                                           gint            *x,
277                                           gint            *y);
278 GdkWindow*    gdk_window_get_pointer     (GdkWindow       *window,
279                                           gint            *x,
280                                           gint            *y,
281                                           GdkModifierType *mask);
282 GdkWindow*    gdk_window_get_parent      (GdkWindow       *window);
283 GdkWindow*    gdk_window_get_toplevel    (GdkWindow       *window);
284 GList*        gdk_window_get_children    (GdkWindow       *window);
285 GdkEventMask  gdk_window_get_events      (GdkWindow       *window);
286 void          gdk_window_set_events      (GdkWindow       *window,
287                                           GdkEventMask     event_mask);
288
289 void          gdk_window_set_icon        (GdkWindow       *window, 
290                                           GdkWindow       *icon_window,
291                                           GdkPixmap       *pixmap,
292                                           GdkBitmap       *mask);
293 void          gdk_window_set_icon_name   (GdkWindow       *window, 
294                                           gchar           *name);
295 void          gdk_window_set_group       (GdkWindow       *window, 
296                                           GdkWindow       *leader);
297 void          gdk_window_set_decorations (GdkWindow       *window,
298                                           GdkWMDecoration  decorations);
299 void          gdk_window_set_functions   (GdkWindow       *window,
300                                           GdkWMFunction    functions);
301
302 /* Cursors
303  */
304 GdkCursor* gdk_cursor_new                (GdkCursorType   cursor_type);
305 GdkCursor* gdk_cursor_new_from_pixmap    (GdkPixmap       *source,
306                                           GdkPixmap       *mask,
307                                           GdkColor        *fg,
308                                           GdkColor        *bg,
309                                           gint             x,
310                                           gint             y);
311 void       gdk_cursor_destroy            (GdkCursor      *cursor);
312
313
314 /* GCs
315  */
316 GdkGC* gdk_gc_new                 (GdkWindow        *window);
317 GdkGC* gdk_gc_new_with_values     (GdkWindow        *window,
318                                    GdkGCValues      *values,
319                                    GdkGCValuesMask   values_mask);
320 GdkGC* gdk_gc_ref                 (GdkGC            *gc);
321 void   gdk_gc_unref               (GdkGC            *gc);
322 void   gdk_gc_destroy             (GdkGC            *gc);
323 void   gdk_gc_get_values          (GdkGC            *gc,
324                                    GdkGCValues      *values);
325 void   gdk_gc_set_foreground      (GdkGC            *gc,
326                                    GdkColor         *color);
327 void   gdk_gc_set_background      (GdkGC            *gc,
328                                    GdkColor         *color);
329 void   gdk_gc_set_font            (GdkGC            *gc,
330                                    GdkFont          *font);
331 void   gdk_gc_set_function        (GdkGC            *gc,
332                                    GdkFunction       function);
333 void   gdk_gc_set_fill            (GdkGC            *gc,
334                                    GdkFill           fill);
335 void   gdk_gc_set_tile            (GdkGC            *gc,
336                                    GdkPixmap        *tile);
337 void   gdk_gc_set_stipple         (GdkGC            *gc,
338                                    GdkPixmap        *stipple);
339 void   gdk_gc_set_ts_origin       (GdkGC            *gc,
340                                    gint              x,
341                                    gint              y);
342 void   gdk_gc_set_clip_origin     (GdkGC            *gc,
343                                    gint              x,
344                                    gint              y);
345 void   gdk_gc_set_clip_mask       (GdkGC            *gc,
346                                    GdkBitmap        *mask);
347 void   gdk_gc_set_clip_rectangle  (GdkGC            *gc,
348                                    GdkRectangle     *rectangle);
349 void   gdk_gc_set_clip_region     (GdkGC            *gc,
350                                    GdkRegion        *region);
351 void   gdk_gc_set_subwindow       (GdkGC            *gc,
352                                    GdkSubwindowMode  mode);
353 void   gdk_gc_set_exposures       (GdkGC            *gc,
354                                    gint              exposures);
355 void   gdk_gc_set_line_attributes (GdkGC            *gc,
356                                    gint              line_width,
357                                    GdkLineStyle      line_style,
358                                    GdkCapStyle       cap_style,
359                                    GdkJoinStyle      join_style);
360 void   gdk_gc_copy                (GdkGC             *dst_gc,
361                                    GdkGC             *src_gc);
362
363
364 /* Pixmaps
365  */
366 GdkPixmap* gdk_pixmap_new               (GdkWindow  *window,
367                                          gint        width,
368                                          gint        height,
369                                          gint        depth);
370 GdkBitmap* gdk_bitmap_create_from_data  (GdkWindow  *window,
371                                          gchar      *data,
372                                          gint        width,
373                                          gint        height);
374 GdkPixmap* gdk_pixmap_create_from_data  (GdkWindow  *window,
375                                          gchar      *data,
376                                          gint        width,
377                                          gint        height,
378                                          gint        depth,
379                                          GdkColor   *fg,
380                                          GdkColor   *bg);
381 GdkPixmap* gdk_pixmap_create_from_xpm   (GdkWindow  *window,
382                                          GdkBitmap **mask,
383                                          GdkColor   *transparent_color,
384                                          const gchar *filename);
385 GdkPixmap* gdk_pixmap_create_from_xpm_d (GdkWindow  *window,
386                                          GdkBitmap **mask,
387                                          GdkColor   *transparent_color,
388                                          gchar     **data);
389 GdkPixmap *gdk_pixmap_ref               (GdkPixmap  *pixmap);
390 void       gdk_pixmap_unref             (GdkPixmap  *pixmap);
391
392 GdkBitmap *gdk_bitmap_ref               (GdkBitmap  *pixmap);
393 void       gdk_bitmap_unref             (GdkBitmap  *pixmap);
394
395
396 /* Images
397  */
398 GdkImage* gdk_image_new_bitmap(GdkVisual *,
399                                 gpointer,
400                                 gint,
401                                 gint);
402 GdkImage*  gdk_image_new       (GdkImageType  type,
403                                 GdkVisual    *visual,
404                                 gint          width,
405                                 gint          height);
406 GdkImage*  gdk_image_get       (GdkWindow    *window,
407                                 gint          x,
408                                 gint          y,
409                                 gint          width,
410                                 gint          height);
411 void       gdk_image_put_pixel (GdkImage     *image,
412                                 gint          x,
413                                 gint          y,
414                                 guint32       pixel);
415 guint32    gdk_image_get_pixel (GdkImage     *image,
416                                 gint          x,
417                                 gint          y);
418 void       gdk_image_destroy   (GdkImage     *image);
419
420
421 /* Color
422  */
423 GdkColormap* gdk_colormap_new     (GdkVisual   *visual,
424                                    gint         allocate);
425 GdkColormap* gdk_colormap_ref     (GdkColormap *cmap);
426 void         gdk_colormap_unref   (GdkColormap *cmap);
427
428 GdkColormap* gdk_colormap_get_system       (void);
429 gint         gdk_colormap_get_system_size  (void);
430
431 void gdk_colormap_change (GdkColormap   *colormap,
432                           gint           ncolors);
433 void gdk_colors_store    (GdkColormap   *colormap,
434                           GdkColor      *colors,
435                           gint           ncolors);
436 gint gdk_colors_alloc    (GdkColormap   *colormap,
437                           gint           contiguous,
438                           gulong        *planes,
439                           gint           nplanes,
440                           gulong        *pixels,
441                           gint           npixels);
442 void gdk_colors_free     (GdkColormap   *colormap,
443                           gulong        *pixels,
444                           gint           npixels,
445                           gulong         planes);
446 gint gdk_color_white     (GdkColormap   *colormap,
447                           GdkColor      *color);
448 gint gdk_color_black     (GdkColormap   *colormap,
449                           GdkColor      *color);
450 gint gdk_color_parse     (const gchar   *spec,
451                           GdkColor      *color);
452 gint gdk_color_alloc     (GdkColormap   *colormap,
453                           GdkColor      *color);
454 gint gdk_color_change    (GdkColormap   *colormap,
455                           GdkColor      *color);
456 gint gdk_color_equal     (GdkColor      *colora,
457                           GdkColor      *colorb);
458
459
460 /* Fonts
461  */
462 GdkFont* gdk_font_load      (const gchar    *font_name);
463 GdkFont* gdk_fontset_load   (gchar    *fontset_name);
464 GdkFont* gdk_font_ref       (GdkFont  *font);
465 void     gdk_font_unref     (GdkFont  *font);
466 gint     gdk_font_id        (GdkFont  *font);
467 gint     gdk_font_equal     (GdkFont  *fonta,
468                              GdkFont  *fontb);
469 gint     gdk_string_width   (GdkFont  *font,
470                              const gchar    *string);
471 gint     gdk_text_width     (GdkFont  *font,
472                              const gchar    *text,
473                              gint      text_length);
474 gint     gdk_char_width     (GdkFont  *font,
475                              gchar     character);
476 gint     gdk_string_measure (GdkFont  *font,
477                              const gchar    *string);
478 gint     gdk_text_measure   (GdkFont  *font,
479                              const gchar    *text,
480                              gint      text_length);
481 gint     gdk_char_measure   (GdkFont  *font,
482                              gchar     character);
483
484
485 /* Drawing
486  */
487 void gdk_draw_point      (GdkDrawable  *drawable,
488                           GdkGC        *gc,
489                           gint          x,
490                           gint          y);
491 void gdk_draw_line       (GdkDrawable  *drawable,
492                           GdkGC        *gc,
493                           gint          x1,
494                           gint          y1,
495                           gint          x2,
496                           gint          y2);
497 void gdk_draw_rectangle  (GdkDrawable  *drawable,
498                           GdkGC        *gc,
499                           gint          filled,
500                           gint          x,
501                           gint          y,
502                           gint          width,
503                           gint          height);
504 void gdk_draw_arc        (GdkDrawable  *drawable,
505                           GdkGC        *gc,
506                           gint          filled,
507                           gint          x,
508                           gint          y,
509                           gint          width,
510                           gint          height,
511                           gint          angle1,
512                           gint          angle2);
513 void gdk_draw_polygon    (GdkDrawable  *drawable,
514                           GdkGC        *gc,
515                           gint          filled,
516                           GdkPoint     *points,
517                           gint          npoints);
518 void gdk_draw_string     (GdkDrawable  *drawable,
519                           GdkFont      *font,
520                           GdkGC        *gc,
521                           gint          x,
522                           gint          y,
523                           const gchar        *string);
524 void gdk_draw_text       (GdkDrawable  *drawable,
525                           GdkFont      *font,
526                           GdkGC        *gc,
527                           gint          x,
528                           gint          y,
529                           const gchar        *text,
530                           gint          text_length);
531 void gdk_draw_pixmap     (GdkDrawable  *drawable,
532                           GdkGC        *gc,
533                           GdkDrawable  *src,
534                           gint          xsrc,
535                           gint          ysrc,
536                           gint          xdest,
537                           gint          ydest,
538                           gint          width,
539                           gint          height);
540 void gdk_draw_bitmap     (GdkDrawable  *drawable,
541                           GdkGC        *gc,
542                           GdkDrawable  *src,
543                           gint          xsrc,
544                           gint          ysrc,
545                           gint          xdest,
546                           gint          ydest,
547                           gint          width,
548                           gint          height);
549 void gdk_draw_image      (GdkDrawable  *drawable,
550                           GdkGC        *gc,
551                           GdkImage     *image,
552                           gint          xsrc,
553                           gint          ysrc,
554                           gint          xdest,
555                           gint          ydest,
556                           gint          width,
557                           gint          height);
558 void gdk_draw_points     (GdkDrawable  *drawable,
559                           GdkGC        *gc,
560                           GdkPoint     *points,
561                           gint          npoints);
562 void gdk_draw_segments   (GdkDrawable  *drawable,
563                           GdkGC        *gc,
564                           GdkSegment   *segs,
565                           gint          nsegs);
566 void gdk_draw_lines      (GdkDrawable  *drawable,
567                           GdkGC        *gc,
568                           GdkPoint     *points,
569                           gint          npoints);
570  
571
572
573
574 /* Selections
575  */
576 gint       gdk_selection_owner_set (GdkWindow    *owner,
577                                     GdkAtom       selection,
578                                     guint32       time,
579                                     gint          send_event);
580 GdkWindow* gdk_selection_owner_get (GdkAtom       selection);
581 void       gdk_selection_convert   (GdkWindow    *requestor,
582                                     GdkAtom       selection,
583                                     GdkAtom       target,
584                                     guint32       time);
585 gint       gdk_selection_property_get (GdkWindow  *requestor,
586                                        guchar    **data,
587                                        GdkAtom    *prop_type,
588                                        gint       *prop_format);
589 void       gdk_selection_send_notify (guint32       requestor,
590                                       GdkAtom       selection,
591                                       GdkAtom       target,
592                                       GdkAtom       property,
593                                       guint32       time);
594
595 gint       gdk_text_property_to_text_list (GdkAtom encoding, gint format,
596                                            guchar *text, gint length,
597                                            gchar ***list);
598 void       gdk_free_text_list             (gchar **list);
599 gint       gdk_string_to_compound_text    (gchar *str,
600                                            GdkAtom *encoding, gint *format,
601                                            guchar **ctext, gint *length);
602 void       gdk_free_compound_text         (guchar *ctext);
603
604 /* Properties
605  */
606 GdkAtom gdk_atom_intern     (const gchar *atom_name,
607                              gint         only_if_exists);
608 gchar*  gdk_atom_name       (GdkAtom atom);
609 gint    gdk_property_get    (GdkWindow   *window,
610                              GdkAtom      property,
611                              GdkAtom      type,
612                              gulong       offset,
613                              gulong       length,
614                              gint         pdelete,
615                              GdkAtom     *actual_property_type,
616                              gint        *actual_format,
617                              gint        *actual_length,
618                              guchar     **data);
619
620 void    gdk_property_change (GdkWindow   *window,
621                              GdkAtom      property,
622                              GdkAtom      type,
623                              gint         format,
624                              GdkPropMode  mode,
625                              guchar      *data,
626                              gint         nelements);
627 void    gdk_property_delete (GdkWindow   *window,
628                              GdkAtom      property);
629
630
631 /* Rectangle utilities
632  */
633 gint gdk_rectangle_intersect (GdkRectangle *src1,
634                               GdkRectangle *src2,
635                               GdkRectangle *dest);
636
637 /* XInput support
638  */
639
640 void gdk_input_init                         (void);
641 void gdk_input_exit                         (void);
642 GList *gdk_input_list_devices               (void);
643 void gdk_input_set_extension_events         (GdkWindow *window,
644                                              gint mask,
645                                              GdkExtensionMode mode);
646 void gdk_input_set_source                   (guint32 deviceid,
647                                              GdkInputSource source);
648 gint gdk_input_set_mode                     (guint32 deviceid,
649                                              GdkInputMode mode);
650 void gdk_input_set_axes                     (guint32 deviceid,
651                                              GdkAxisUse *axes);
652 void gdk_input_set_key                      (guint32 deviceid,
653                                              guint   index,
654                                              guint   keyval,
655                                              GdkModifierType modifiers);
656 void gdk_input_window_get_pointer     (GdkWindow       *window,
657                                        guint32         deviceid,
658                                        gdouble         *x,
659                                        gdouble         *y,
660                                        gdouble         *pressure,
661                                        gdouble         *xtilt,
662                                        gdouble         *ytilt,
663                                        GdkModifierType *mask);
664
665 GdkTimeCoord *gdk_input_motion_events (GdkWindow *window,
666                                        guint32 deviceid,
667                                        guint32 start,
668                                        guint32 stop,
669                                        gint *nevents_return);
670
671 /* International Input Method Support Functions
672  */
673
674 gint   gdk_im_ready             (void);
675
676 void   gdk_im_begin             (GdkIC ic, GdkWindow* window);
677 void   gdk_im_end               (void);
678 GdkIMStyle gdk_im_decide_style  (GdkIMStyle supported_style);
679 GdkIMStyle gdk_im_set_best_style (GdkIMStyle best_allowed_style);
680 GdkIC  gdk_ic_new               (GdkWindow* client_window,
681                                  GdkWindow* focus_window,
682                                  GdkIMStyle style, ...);
683 void   gdk_ic_destroy           (GdkIC ic);
684 GdkIMStyle   gdk_ic_get_style   (GdkIC ic);
685 void   gdk_ic_set_values        (GdkIC ic, ...);
686 void   gdk_ic_get_values        (GdkIC ic, ...);
687 void   gdk_ic_set_attr          (GdkIC ic, const char *target, ...);
688 void   gdk_ic_get_attr          (GdkIC ic, const char *target, ...);
689 GdkEventMask gdk_ic_get_events  (GdkIC ic);
690
691 /* Miscellaneous */
692 void gdk_event_send_clientmessage_toall(GdkEvent *event);
693
694 /* Color Context */
695
696 GdkColorContext *gdk_color_context_new                    (GdkVisual   *visual,
697                                                            GdkColormap *colormap);
698
699 GdkColorContext *gdk_color_context_new_mono               (GdkVisual   *visual,
700                                                            GdkColormap *colormap);
701
702 void             gdk_color_context_free                   (GdkColorContext *cc);
703
704 gulong           gdk_color_context_get_pixel              (GdkColorContext *cc,
705                                                            gushort          red,
706                                                            gushort          green,
707                                                            gushort          blue,
708                                                            gint            *failed);
709 void             gdk_color_context_get_pixels             (GdkColorContext *cc,
710                                                            gushort         *reds,
711                                                            gushort         *greens,
712                                                            gushort         *blues,
713                                                            gint             ncolors,
714                                                            gulong          *colors,
715                                                            gint            *nallocated);
716 void             gdk_color_context_get_pixels_incremental (GdkColorContext *cc,
717                                                            gushort         *reds,
718                                                            gushort         *greens,
719                                                            gushort         *blues,
720                                                            gint             ncolors,
721                                                            gint            *used,
722                                                            gulong          *colors,
723                                                            gint            *nallocated);
724
725 gint             gdk_color_context_query_color            (GdkColorContext *cc,
726                                                            GdkColor        *color);
727 gint             gdk_color_context_query_colors           (GdkColorContext *cc,
728                                                            GdkColor        *colors,
729                                                            gint             num_colors);
730
731 gint             gdk_color_context_add_palette            (GdkColorContext *cc,
732                                                            GdkColor        *palette,
733                                                            gint             num_palette);
734
735 void             gdk_color_context_init_dither            (GdkColorContext *cc);
736 void             gdk_color_context_free_dither            (GdkColorContext *cc);
737
738 gulong           gdk_color_context_get_pixel_from_palette (GdkColorContext *cc,
739                                                            gushort         *red,
740                                                            gushort         *green,
741                                                            gushort         *blue,
742                                                            gint            *failed);
743 guchar           gdk_color_context_get_index_from_palette (GdkColorContext *cc,
744                                                            gint            *red,
745                                                            gint            *green,
746                                                            gint            *blue,
747                                                            gint            *failed);
748 /* Regions
749  */
750
751 GdkRegion*     gdk_region_new       (void);
752 void           gdk_region_destroy   (GdkRegion     *region);
753
754 gboolean       gdk_region_empty     (GdkRegion     *region);
755 gboolean       gdk_region_equal     (GdkRegion     *region1,
756                                      GdkRegion     *region2);
757 gboolean       gdk_region_point_in  (GdkRegion     *region,
758                                      int                   x,
759                                      int                   y);
760 GdkOverlapType gdk_region_rect_in   (GdkRegion     *region,
761                                      GdkRectangle   *rect);
762
763 void           gdk_region_offset   (GdkRegion      *region,
764                                     gint           dx,
765                                     gint           dy);
766 void           gdk_region_shrink   (GdkRegion      *region,
767                                     gint           dx,
768                                     gint           dy);
769
770 GdkRegion*    gdk_region_union_with_rect  (GdkRegion      *region,
771                                            GdkRectangle   *rect);
772 GdkRegion*    gdk_regions_intersect       (GdkRegion      *source1,
773                                            GdkRegion      *source2);
774 GdkRegion*    gdk_regions_union           (GdkRegion      *source1,
775                                            GdkRegion      *source2);
776 GdkRegion*    gdk_regions_subtract        (GdkRegion      *source1,
777                                            GdkRegion      *source2);
778 GdkRegion*    gdk_regions_xor             (GdkRegion      *source1,
779                                            GdkRegion      *source2);
780
781
782 #ifdef __cplusplus
783 }
784 #endif /* __cplusplus */
785
786
787 #endif /* __GDK_H__ */