source: trunk/third/gtk/gdk/gdk.h @ 15781

Revision 15781, 33.9 KB checked in by ghudson, 24 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r15780, which included commits to RCS files with non-trunk default branches.
Line 
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
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-1999.  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_H__
28#define __GDK_H__
29
30
31#include <gdk/gdktypes.h>
32
33#ifdef __cplusplus
34extern "C" {
35#endif /* __cplusplus */
36
37
38/* Initialization, exit and events
39 */
40#define   GDK_PRIORITY_EVENTS           (G_PRIORITY_DEFAULT)
41void      gdk_init                      (gint           *argc,
42                                         gchar        ***argv);
43gboolean  gdk_init_check                (gint           *argc,
44                                         gchar        ***argv);
45void      gdk_exit                      (gint            error_code);
46gchar*    gdk_set_locale                (void);
47
48/* Push and pop error handlers for X errors
49 */
50void      gdk_error_trap_push           (void);
51gint      gdk_error_trap_pop            (void);
52
53
54gboolean  gdk_events_pending            (void);
55GdkEvent* gdk_event_get                 (void);
56
57GdkEvent* gdk_event_peek                (void);
58GdkEvent* gdk_event_get_graphics_expose (GdkWindow      *window);
59void      gdk_event_put                 (GdkEvent       *event);
60
61GdkEvent* gdk_event_copy                (GdkEvent       *event);
62void      gdk_event_free                (GdkEvent       *event);
63guint32   gdk_event_get_time            (GdkEvent       *event);
64
65void      gdk_event_handler_set         (GdkEventFunc    func,
66                                         gpointer        data,
67                                         GDestroyNotify  notify);
68
69void      gdk_set_show_events           (gboolean        show_events);
70void      gdk_set_use_xshm              (gboolean        use_xshm);
71
72gboolean  gdk_get_show_events           (void);
73gboolean  gdk_get_use_xshm              (void);
74gchar*    gdk_get_display               (void);
75
76guint32 gdk_time_get      (void);
77guint32 gdk_timer_get     (void);
78void    gdk_timer_set     (guint32 milliseconds);
79void    gdk_timer_enable  (void);
80void    gdk_timer_disable (void);
81
82gint gdk_input_add_full   (gint              source,
83                           GdkInputCondition condition,
84                           GdkInputFunction  function,
85                           gpointer          data,
86                           GdkDestroyNotify  destroy);
87gint gdk_input_add        (gint              source,
88                           GdkInputCondition condition,
89                           GdkInputFunction  function,
90                           gpointer          data);
91void gdk_input_remove     (gint              tag);
92
93gint     gdk_pointer_grab       (GdkWindow    *window,
94                                 gint          owner_events,
95                                 GdkEventMask  event_mask,
96                                 GdkWindow    *confine_to,
97                                 GdkCursor    *cursor,
98                                 guint32       time);
99void     gdk_pointer_ungrab     (guint32       time);
100gint     gdk_keyboard_grab      (GdkWindow    *window,
101                                 gboolean      owner_events,
102                                 guint32       time);
103void     gdk_keyboard_ungrab    (guint32       time);
104gboolean gdk_pointer_is_grabbed (void);
105
106
107gint gdk_screen_width  (void);
108gint gdk_screen_height (void);
109
110gint gdk_screen_width_mm  (void);
111gint gdk_screen_height_mm (void);
112
113void gdk_flush (void);
114void gdk_beep (void);
115
116void gdk_key_repeat_disable (void);
117void gdk_key_repeat_restore (void);
118
119
120/* Visuals
121 */
122gint          gdk_visual_get_best_depth      (void);
123GdkVisualType gdk_visual_get_best_type       (void);
124GdkVisual*    gdk_visual_get_system          (void);
125GdkVisual*    gdk_visual_get_best            (void);
126GdkVisual*    gdk_visual_get_best_with_depth (gint           depth);
127GdkVisual*    gdk_visual_get_best_with_type  (GdkVisualType  visual_type);
128GdkVisual*    gdk_visual_get_best_with_both  (gint           depth,
129                                              GdkVisualType  visual_type);
130
131/* Actually, these are no-ops... */
132GdkVisual* gdk_visual_ref (GdkVisual *visual);
133void       gdk_visual_unref (GdkVisual *visual);
134
135void gdk_query_depths       (gint           **depths,
136                             gint            *count);
137void gdk_query_visual_types (GdkVisualType  **visual_types,
138                             gint            *count);
139
140GList* gdk_list_visuals (void);
141
142
143/* Windows
144 */
145GdkWindow*    gdk_window_new         (GdkWindow     *parent,
146                                      GdkWindowAttr *attributes,
147                                      gint           attributes_mask);
148
149void          gdk_window_destroy     (GdkWindow     *window);
150GdkWindow*    gdk_window_ref         (GdkWindow     *window);
151void          gdk_window_unref       (GdkWindow     *window);
152
153GdkWindow*    gdk_window_at_pointer  (gint         *win_x,
154                                      gint         *win_y);
155void          gdk_window_show        (GdkWindow    *window);
156void          gdk_window_hide        (GdkWindow    *window);
157void          gdk_window_withdraw    (GdkWindow    *window);
158void          gdk_window_move        (GdkWindow    *window,
159                                      gint          x,
160                                      gint          y);
161void          gdk_window_resize      (GdkWindow    *window,
162                                      gint          width,
163                                      gint          height);
164void          gdk_window_move_resize (GdkWindow    *window,
165                                      gint          x,
166                                      gint          y,
167                                      gint          width,
168                                      gint          height);
169void          gdk_window_reparent    (GdkWindow    *window,
170                                      GdkWindow    *new_parent,
171                                      gint          x,
172                                      gint          y);
173void          gdk_window_clear       (GdkWindow    *window);
174void          gdk_window_clear_area  (GdkWindow    *window,
175                                      gint          x,
176                                      gint          y,
177                                      gint          width,
178                                      gint          height);
179void          gdk_window_clear_area_e(GdkWindow    *window,
180                                      gint          x,
181                                      gint          y,
182                                      gint          width,
183                                      gint          height);
184void          gdk_window_copy_area   (GdkWindow    *window,
185                                      GdkGC        *gc,
186                                      gint          x,
187                                      gint          y,
188                                      GdkWindow    *source_window,
189                                      gint          source_x,
190                                      gint          source_y,
191                                      gint          width,
192                                      gint          height);
193void          gdk_window_raise       (GdkWindow    *window);
194void          gdk_window_lower       (GdkWindow    *window);
195
196void          gdk_window_set_user_data   (GdkWindow       *window,
197                                          gpointer         user_data);
198void          gdk_window_set_override_redirect(GdkWindow  *window,
199                                               gboolean override_redirect);
200
201void          gdk_window_add_filter     (GdkWindow     *window,
202                                         GdkFilterFunc  function,
203                                         gpointer       data);
204void          gdk_window_remove_filter  (GdkWindow     *window,
205                                         GdkFilterFunc  function,
206                                         gpointer       data);
207
208/*
209 * This allows for making shaped (partially transparent) windows
210 * - cool feature, needed for Drag and Drag for example.
211 *  The shape_mask can be the mask
212 *  from gdk_pixmap_create_from_xpm.   Stefan Wille
213 */
214void gdk_window_shape_combine_mask (GdkWindow       *window,
215                                    GdkBitmap       *shape_mask,
216                                    gint             offset_x,
217                                    gint             offset_y);
218/*
219 * This routine allows you to quickly take the shapes of all the child windows
220 * of a window and use their shapes as the shape mask for this window - useful
221 * for container windows that dont want to look like a big box
222 *
223 * - Raster
224 */
225void gdk_window_set_child_shapes (GdkWindow *window);
226
227/*
228 * This routine allows you to merge (ie ADD) child shapes to your
229 * own window's shape keeping its current shape and ADDING the shild
230 * shapes to it.
231 *
232 * - Raster
233 */
234void gdk_window_merge_child_shapes (GdkWindow *window);
235
236/*
237 * Check if a window has been shown, and whether all it's
238 * parents up to a toplevel have been shown, respectively.
239 * Note that a window that is_viewable below is not necessarily
240 * viewable in the X sense.
241 */
242gboolean gdk_window_is_visible     (GdkWindow *window);
243gboolean gdk_window_is_viewable    (GdkWindow *window);
244
245/* Set static bit gravity on the parent, and static
246 * window gravity on all children.
247 */
248gboolean gdk_window_set_static_gravities (GdkWindow *window,
249                                          gboolean   use_static);   
250/*
251 * The following function adds a global filter for all client
252 * messages of type message_type
253 */
254void gdk_add_client_message_filter (GdkAtom       message_type,
255                                    GdkFilterFunc func,
256                                    gpointer      data);
257
258/* Drag and Drop */
259
260GdkDragContext * gdk_drag_context_new        (void);
261void             gdk_drag_context_ref        (GdkDragContext *context);
262void             gdk_drag_context_unref      (GdkDragContext *context);
263
264/* Destination side */
265
266void             gdk_drag_status        (GdkDragContext   *context,
267                                         GdkDragAction     action,
268                                         guint32           time);
269void             gdk_drop_reply         (GdkDragContext   *context,
270                                         gboolean          ok,
271                                         guint32           time);
272void             gdk_drop_finish        (GdkDragContext   *context,
273                                         gboolean          success,
274                                         guint32           time);
275GdkAtom          gdk_drag_get_selection (GdkDragContext   *context);
276
277/* Source side */
278
279GdkDragContext * gdk_drag_begin      (GdkWindow      *window,
280                                      GList          *targets);
281guint32         gdk_drag_get_protocol (guint32          xid,
282                                       GdkDragProtocol *protocol);
283void             gdk_drag_find_window (GdkDragContext   *context,
284                                       GdkWindow       *drag_window,
285                                       gint             x_root,
286                                       gint             y_root,
287                                       GdkWindow      **dest_window,
288                                       GdkDragProtocol *protocol);
289gboolean        gdk_drag_motion      (GdkDragContext *context,
290                                      GdkWindow      *dest_window,
291                                      GdkDragProtocol protocol,
292                                      gint            x_root,
293                                      gint            y_root,
294                                      GdkDragAction   suggested_action,
295                                      GdkDragAction   possible_actions,
296                                      guint32         time);
297void            gdk_drag_drop        (GdkDragContext *context,
298                                      guint32         time);
299void            gdk_drag_abort       (GdkDragContext *context,
300                                      guint32         time);
301
302/* GdkWindow */
303
304void          gdk_window_set_hints       (GdkWindow       *window,
305                                          gint             x,
306                                          gint             y,
307                                          gint             min_width,
308                                          gint             min_height,
309                                          gint             max_width,
310                                          gint             max_height,
311                                          gint             flags);
312void          gdk_window_set_geometry_hints (GdkWindow        *window,
313                                             GdkGeometry      *geometry,
314                                             GdkWindowHints    flags);
315void          gdk_set_sm_client_id         (const gchar *sm_client_id);
316
317
318void          gdk_window_set_title         (GdkWindow     *window,
319                                            const gchar   *title);
320void          gdk_window_set_role          (GdkWindow       *window,
321                                            const gchar     *role);
322void          gdk_window_set_transient_for (GdkWindow       *window,
323                                            GdkWindow       *leader);
324void          gdk_window_set_background  (GdkWindow       *window,
325                                          GdkColor        *color);
326void          gdk_window_set_back_pixmap (GdkWindow       *window,
327                                          GdkPixmap       *pixmap,
328                                          gboolean         parent_relative);
329void          gdk_window_set_cursor      (GdkWindow       *window,
330                                          GdkCursor       *cursor);
331void          gdk_window_set_colormap    (GdkWindow       *window,
332                                          GdkColormap     *colormap);
333void          gdk_window_get_user_data   (GdkWindow       *window,
334                                          gpointer        *data);
335void          gdk_window_get_geometry    (GdkWindow       *window,
336                                          gint            *x,
337                                          gint            *y,
338                                          gint            *width,
339                                          gint            *height,
340                                          gint            *depth);
341void          gdk_window_get_position    (GdkWindow       *window,
342                                          gint            *x,
343                                          gint            *y);
344void          gdk_window_get_size        (GdkWindow       *window,
345                                          gint            *width,
346                                          gint            *height);
347GdkVisual*    gdk_window_get_visual      (GdkWindow       *window);
348GdkColormap*  gdk_window_get_colormap    (GdkWindow       *window);
349GdkWindowType gdk_window_get_type        (GdkWindow       *window);
350gint          gdk_window_get_origin      (GdkWindow       *window,
351                                          gint            *x,
352                                          gint            *y);
353gboolean      gdk_window_get_deskrelative_origin (GdkWindow       *window,
354                                          gint            *x,
355                                          gint            *y);
356void          gdk_window_get_root_origin (GdkWindow       *window,
357                                          gint            *x,
358                                          gint            *y);
359GdkWindow*    gdk_window_get_pointer     (GdkWindow       *window,
360                                          gint            *x,
361                                          gint            *y,
362                                          GdkModifierType *mask);
363GdkWindow*    gdk_window_get_parent      (GdkWindow       *window);
364GdkWindow*    gdk_window_get_toplevel    (GdkWindow       *window);
365GList*        gdk_window_get_children    (GdkWindow       *window);
366GdkEventMask  gdk_window_get_events      (GdkWindow       *window);
367void          gdk_window_set_events      (GdkWindow       *window,
368                                          GdkEventMask     event_mask);
369
370void          gdk_window_set_icon        (GdkWindow       *window,
371                                          GdkWindow       *icon_window,
372                                          GdkPixmap       *pixmap,
373                                          GdkBitmap       *mask);
374void          gdk_window_set_icon_name   (GdkWindow       *window,
375                                          const gchar     *name);
376void          gdk_window_set_group       (GdkWindow       *window,
377                                          GdkWindow       *leader);
378void          gdk_window_set_decorations (GdkWindow       *window,
379                                          GdkWMDecoration  decorations);
380void          gdk_window_set_functions   (GdkWindow       *window,
381                                          GdkWMFunction    functions);
382GList *       gdk_window_get_toplevels   (void);
383
384void          gdk_window_register_dnd    (GdkWindow       *window);
385
386void          gdk_drawable_set_data      (GdkDrawable     *drawable,
387                                          const gchar     *key,
388                                          gpointer         data,
389                                          GDestroyNotify   destroy_func);
390                                         
391
392/* Cursors
393 */
394GdkCursor* gdk_cursor_new                (GdkCursorType   cursor_type);
395GdkCursor* gdk_cursor_new_from_pixmap    (GdkPixmap       *source,
396                                          GdkPixmap       *mask,
397                                          GdkColor        *fg,
398                                          GdkColor        *bg,
399                                          gint             x,
400                                          gint             y);
401void       gdk_cursor_destroy            (GdkCursor      *cursor);
402
403
404/* GCs
405 */
406GdkGC* gdk_gc_new                 (GdkWindow        *window);
407GdkGC* gdk_gc_new_with_values     (GdkWindow        *window,
408                                   GdkGCValues      *values,
409                                   GdkGCValuesMask   values_mask);
410GdkGC* gdk_gc_ref                 (GdkGC            *gc);
411void   gdk_gc_unref               (GdkGC            *gc);
412void   gdk_gc_destroy             (GdkGC            *gc);
413void   gdk_gc_get_values          (GdkGC            *gc,
414                                   GdkGCValues      *values);
415void   gdk_gc_set_foreground      (GdkGC            *gc,
416                                   GdkColor         *color);
417void   gdk_gc_set_background      (GdkGC            *gc,
418                                   GdkColor         *color);
419void   gdk_gc_set_font            (GdkGC            *gc,
420                                   GdkFont          *font);
421void   gdk_gc_set_function        (GdkGC            *gc,
422                                   GdkFunction       function);
423void   gdk_gc_set_fill            (GdkGC            *gc,
424                                   GdkFill           fill);
425void   gdk_gc_set_tile            (GdkGC            *gc,
426                                   GdkPixmap        *tile);
427void   gdk_gc_set_stipple         (GdkGC            *gc,
428                                   GdkPixmap        *stipple);
429void   gdk_gc_set_ts_origin       (GdkGC            *gc,
430                                   gint              x,
431                                   gint              y);
432void   gdk_gc_set_clip_origin     (GdkGC            *gc,
433                                   gint              x,
434                                   gint              y);
435void   gdk_gc_set_clip_mask       (GdkGC            *gc,
436                                   GdkBitmap        *mask);
437void   gdk_gc_set_clip_rectangle  (GdkGC            *gc,
438                                   GdkRectangle     *rectangle);
439void   gdk_gc_set_clip_region     (GdkGC            *gc,
440                                   GdkRegion        *region);
441void   gdk_gc_set_subwindow       (GdkGC            *gc,
442                                   GdkSubwindowMode  mode);
443void   gdk_gc_set_exposures       (GdkGC            *gc,
444                                   gboolean          exposures);
445void   gdk_gc_set_line_attributes (GdkGC            *gc,
446                                   gint              line_width,
447                                   GdkLineStyle      line_style,
448                                   GdkCapStyle       cap_style,
449                                   GdkJoinStyle      join_style);
450void   gdk_gc_set_dashes          (GdkGC            *gc,
451                                   gint              dash_offset,
452                                   gint8             dash_list[],
453                                   gint              n);
454void   gdk_gc_copy                (GdkGC             *dst_gc,
455                                   GdkGC             *src_gc);
456
457
458/* Pixmaps
459 */
460GdkPixmap* gdk_pixmap_new               (GdkWindow  *window,
461                                         gint        width,
462                                         gint        height,
463                                         gint        depth);
464GdkBitmap* gdk_bitmap_create_from_data  (GdkWindow   *window,
465                                         const gchar *data,
466                                         gint         width,
467                                         gint         height);
468GdkPixmap* gdk_pixmap_create_from_data  (GdkWindow   *window,
469                                         const gchar *data,
470                                         gint         width,
471                                         gint         height,
472                                         gint         depth,
473                                         GdkColor    *fg,
474                                         GdkColor    *bg);
475GdkPixmap* gdk_pixmap_create_from_xpm   (GdkWindow  *window,
476                                         GdkBitmap **mask,
477                                         GdkColor   *transparent_color,
478                                         const gchar *filename);
479GdkPixmap* gdk_pixmap_colormap_create_from_xpm (
480                                         GdkWindow   *window,
481                                         GdkColormap *colormap,
482                                         GdkBitmap  **mask,
483                                         GdkColor    *transparent_color,
484                                         const gchar *filename);
485GdkPixmap* gdk_pixmap_create_from_xpm_d (GdkWindow  *window,
486                                         GdkBitmap **mask,
487                                         GdkColor   *transparent_color,
488                                         gchar     **data);
489GdkPixmap* gdk_pixmap_colormap_create_from_xpm_d (
490                                         GdkWindow   *window,
491                                         GdkColormap *colormap,
492                                         GdkBitmap  **mask,
493                                         GdkColor    *transparent_color,
494                                         gchar     **data);
495GdkPixmap *gdk_pixmap_ref               (GdkPixmap  *pixmap);
496void       gdk_pixmap_unref             (GdkPixmap  *pixmap);
497
498GdkBitmap *gdk_bitmap_ref               (GdkBitmap  *pixmap);
499void       gdk_bitmap_unref             (GdkBitmap  *pixmap);
500
501
502/* Images
503 */
504GdkImage* gdk_image_new_bitmap(GdkVisual     *visual,
505                                gpointer      data,
506                                gint          width,
507                                gint          height);
508GdkImage*  gdk_image_new       (GdkImageType  type,
509                                GdkVisual    *visual,
510                                gint          width,
511                                gint          height);
512GdkImage*  gdk_image_get       (GdkWindow    *window,
513                                gint          x,
514                                gint          y,
515                                gint          width,
516                                gint          height);
517void       gdk_image_put_pixel (GdkImage     *image,
518                                gint          x,
519                                gint          y,
520                                guint32       pixel);
521guint32    gdk_image_get_pixel (GdkImage     *image,
522                                gint          x,
523                                gint          y);
524void       gdk_image_destroy   (GdkImage     *image);
525
526
527/* Color
528 */
529GdkColormap* gdk_colormap_new             (GdkVisual      *visual,
530                                           gboolean        allocate);
531GdkColormap* gdk_colormap_ref             (GdkColormap    *cmap);
532void         gdk_colormap_unref           (GdkColormap    *cmap);
533
534GdkColormap* gdk_colormap_get_system      (void);
535gint         gdk_colormap_get_system_size (void);
536
537void         gdk_colormap_change          (GdkColormap    *colormap,
538                                           gint            ncolors);
539
540void         gdk_colormap_sync            (GdkColormap    *colormap,
541                                           gboolean        force);
542gint         gdk_colormap_alloc_colors    (GdkColormap    *colormap,
543                                           GdkColor       *colors,
544                                           gint            ncolors,
545                                           gboolean        writeable,
546                                           gboolean        best_match,
547                                           gboolean       *success);
548gboolean     gdk_colormap_alloc_color     (GdkColormap    *colormap,
549                                           GdkColor       *color,
550                                           gboolean        writeable,
551                                           gboolean        best_match);
552void         gdk_colormap_free_colors     (GdkColormap    *colormap,
553                                           GdkColor       *colors,
554                                           gint            ncolors);
555
556GdkVisual*   gdk_colormap_get_visual      (GdkColormap    *colormap);
557
558GdkColor*    gdk_color_copy               (const GdkColor *color);
559void         gdk_color_free               (GdkColor       *color);
560
561gboolean     gdk_color_parse              (const gchar    *spec,
562                                           GdkColor       *color);
563guint        gdk_color_hash               (const GdkColor *colora,
564                                           const GdkColor *colorb);
565gboolean     gdk_color_equal              (const GdkColor *colora,
566                                           const GdkColor *colorb);
567
568
569/* The following functions are deprecated */
570void     gdk_colors_store (GdkColormap  *colormap,
571                           GdkColor     *colors,
572                           gint          ncolors);
573gboolean gdk_colors_alloc (GdkColormap  *colormap,
574                           gboolean      contiguous,
575                           gulong       *planes,
576                           gint          nplanes,
577                           gulong       *pixels,
578                           gint          npixels);
579void     gdk_colors_free  (GdkColormap  *colormap,
580                           gulong       *pixels,
581                           gint          npixels,
582                           gulong        planes);
583gboolean gdk_color_white  (GdkColormap  *colormap,
584                           GdkColor     *color);
585gboolean gdk_color_black  (GdkColormap  *colormap,
586                           GdkColor     *color);
587gboolean gdk_color_alloc  (GdkColormap  *colormap,
588                           GdkColor     *color);
589gboolean gdk_color_change (GdkColormap  *colormap,
590                           GdkColor     *color);
591
592
593/* Fonts
594 */
595GdkFont* gdk_font_load      (const gchar    *font_name);
596GdkFont* gdk_fontset_load   (const gchar    *fontset_name);
597GdkFont* gdk_font_ref       (GdkFont        *font);
598void     gdk_font_unref     (GdkFont        *font);
599gint     gdk_font_id        (const GdkFont  *font);
600gboolean gdk_font_equal     (const GdkFont  *fonta,
601                             const GdkFont  *fontb);
602gint     gdk_string_width   (GdkFont        *font,
603                             const gchar    *string);
604gint     gdk_text_width     (GdkFont        *font,
605                             const gchar    *text,
606                             gint            text_length);
607gint     gdk_text_width_wc  (GdkFont        *font,
608                             const GdkWChar *text,
609                             gint            text_length);
610gint     gdk_char_width     (GdkFont        *font,
611                             gchar           character);
612gint     gdk_char_width_wc  (GdkFont        *font,
613                             GdkWChar        character);
614gint     gdk_string_measure (GdkFont        *font,
615                             const gchar    *string);
616gint     gdk_text_measure   (GdkFont        *font,
617                             const gchar    *text,
618                             gint            text_length);
619gint     gdk_char_measure   (GdkFont        *font,
620                             gchar           character);
621gint     gdk_string_height  (GdkFont        *font,
622                             const gchar    *string);
623gint     gdk_text_height    (GdkFont        *font,
624                             const gchar    *text,
625                             gint            text_length);
626gint     gdk_char_height    (GdkFont        *font,
627                             gchar           character);
628
629void     gdk_text_extents   (GdkFont     *font,
630                             const gchar *text,
631                             gint         text_length,
632                             gint        *lbearing,
633                             gint        *rbearing,
634                             gint        *width,
635                             gint        *ascent,
636                             gint        *descent);
637void    gdk_text_extents_wc (GdkFont        *font,
638                             const GdkWChar *text,
639                             gint            text_length,
640                             gint           *lbearing,
641                             gint           *rbearing,
642                             gint           *width,
643                             gint           *ascent,
644                             gint           *descent);
645void     gdk_string_extents (GdkFont     *font,
646                             const gchar *string,
647                             gint        *lbearing,
648                             gint        *rbearing,
649                             gint        *width,
650                             gint        *ascent,
651                             gint        *descent);
652
653/* Drawing
654 */
655void gdk_draw_point      (GdkDrawable  *drawable,
656                          GdkGC        *gc,
657                          gint          x,
658                          gint          y);
659void gdk_draw_line       (GdkDrawable  *drawable,
660                          GdkGC        *gc,
661                          gint          x1,
662                          gint          y1,
663                          gint          x2,
664                          gint          y2);
665void gdk_draw_rectangle  (GdkDrawable  *drawable,
666                          GdkGC        *gc,
667                          gint          filled,
668                          gint          x,
669                          gint          y,
670                          gint          width,
671                          gint          height);
672void gdk_draw_arc        (GdkDrawable  *drawable,
673                          GdkGC        *gc,
674                          gint          filled,
675                          gint          x,
676                          gint          y,
677                          gint          width,
678                          gint          height,
679                          gint          angle1,
680                          gint          angle2);
681void gdk_draw_polygon    (GdkDrawable  *drawable,
682                          GdkGC        *gc,
683                          gint          filled,
684                          GdkPoint     *points,
685                          gint          npoints);
686void gdk_draw_string     (GdkDrawable  *drawable,
687                          GdkFont      *font,
688                          GdkGC        *gc,
689                          gint          x,
690                          gint          y,
691                          const gchar  *string);
692void gdk_draw_text       (GdkDrawable  *drawable,
693                          GdkFont      *font,
694                          GdkGC        *gc,
695                          gint          x,
696                          gint          y,
697                          const gchar  *text,
698                          gint          text_length);
699void gdk_draw_text_wc    (GdkDrawable    *drawable,
700                          GdkFont        *font,
701                          GdkGC          *gc,
702                          gint            x,
703                          gint            y,
704                          const GdkWChar *text,
705                          gint            text_length);
706void gdk_draw_pixmap     (GdkDrawable  *drawable,
707                          GdkGC        *gc,
708                          GdkDrawable  *src,
709                          gint          xsrc,
710                          gint          ysrc,
711                          gint          xdest,
712                          gint          ydest,
713                          gint          width,
714                          gint          height);
715void gdk_draw_image      (GdkDrawable  *drawable,
716                          GdkGC        *gc,
717                          GdkImage     *image,
718                          gint          xsrc,
719                          gint          ysrc,
720                          gint          xdest,
721                          gint          ydest,
722                          gint          width,
723                          gint          height);
724void gdk_draw_points     (GdkDrawable  *drawable,
725                          GdkGC        *gc,
726                          GdkPoint     *points,
727                          gint          npoints);
728void gdk_draw_segments   (GdkDrawable  *drawable,
729                          GdkGC        *gc,
730                          GdkSegment   *segs,
731                          gint          nsegs);
732void gdk_draw_lines      (GdkDrawable  *drawable,
733                          GdkGC        *gc,
734                          GdkPoint     *points,
735                          gint          npoints);
736 
737
738
739
740/* Selections
741 */
742gboolean   gdk_selection_owner_set (GdkWindow    *owner,
743                                    GdkAtom       selection,
744                                    guint32       time,
745                                    gint          send_event);
746GdkWindow* gdk_selection_owner_get (GdkAtom       selection);
747void       gdk_selection_convert   (GdkWindow    *requestor,
748                                    GdkAtom       selection,
749                                    GdkAtom       target,
750                                    guint32       time);
751gboolean   gdk_selection_property_get (GdkWindow  *requestor,
752                                       guchar    **data,
753                                       GdkAtom    *prop_type,
754                                       gint       *prop_format);
755void       gdk_selection_send_notify (guint32       requestor,
756                                      GdkAtom       selection,
757                                      GdkAtom       target,
758                                      GdkAtom       property,
759                                      guint32       time);
760
761gint       gdk_text_property_to_text_list (GdkAtom encoding, gint format,
762                                           guchar *text, gint length,
763                                           gchar ***list);
764void       gdk_free_text_list             (gchar **list);
765gint       gdk_string_to_compound_text    (const gchar *str,
766                                           GdkAtom *encoding, gint *format,
767                                           guchar **ctext, gint *length);
768void       gdk_free_compound_text         (guchar *ctext);
769
770/* Properties
771 */
772GdkAtom  gdk_atom_intern     (const gchar  *atom_name,
773                              gint          only_if_exists);
774gchar*   gdk_atom_name       (GdkAtom       atom);
775gboolean gdk_property_get    (GdkWindow    *window,
776                              GdkAtom       property,
777                              GdkAtom       type,
778                              gulong        offset,
779                              gulong        length,
780                              gint          pdelete,
781                              GdkAtom      *actual_property_type,
782                              gint         *actual_format,
783                              gint         *actual_length,
784                              guchar      **data);
785void     gdk_property_change (GdkWindow    *window,
786                              GdkAtom       property,
787                              GdkAtom       type,
788                              gint          format,
789                              GdkPropMode   mode,
790                              guchar       *data,
791                              gint          nelements);
792void     gdk_property_delete (GdkWindow    *window,
793                              GdkAtom       property);
794
795
796
797/* Rectangle utilities
798 */
799gboolean gdk_rectangle_intersect (GdkRectangle *src1,
800                                  GdkRectangle *src2,
801                                  GdkRectangle *dest);
802void     gdk_rectangle_union     (GdkRectangle *src1,
803                                  GdkRectangle *src2,
804                                  GdkRectangle *dest);
805
806/* XInput support
807 */
808void          gdk_input_init                 (void);
809void          gdk_input_exit                 (void);
810GList *       gdk_input_list_devices         (void);
811void          gdk_input_set_extension_events (GdkWindow        *window,
812                                              gint              mask,
813                                              GdkExtensionMode  mode);
814void          gdk_input_set_source           (guint32           deviceid,
815                                              GdkInputSource    source);
816gboolean      gdk_input_set_mode             (guint32           deviceid,
817                                              GdkInputMode      mode);
818void          gdk_input_set_axes             (guint32           deviceid,
819                                              GdkAxisUse       *axes);
820void          gdk_input_set_key              (guint32           deviceid,
821                                              guint             index,
822                                              guint             keyval,
823                                              GdkModifierType   modifiers);
824void          gdk_input_window_get_pointer   (GdkWindow        *window,
825                                              guint32           deviceid,
826                                              gdouble          *x,
827                                              gdouble          *y,
828                                              gdouble          *pressure,
829                                              gdouble          *xtilt,
830                                              gdouble          *ytilt,
831                                              GdkModifierType  *mask);
832GdkTimeCoord *gdk_input_motion_events        (GdkWindow        *window,
833                                              guint32           deviceid,
834                                              guint32           start,
835                                              guint32           stop,
836                                              gint             *nevents_return);
837
838/* International Input Method Support Functions
839 */
840
841gboolean     gdk_im_ready          (void);
842
843void         gdk_im_begin          (GdkIC               *ic,
844                                    GdkWindow           *window);
845void         gdk_im_end            (void);
846GdkIMStyle   gdk_im_decide_style   (GdkIMStyle           supported_style);
847GdkIMStyle   gdk_im_set_best_style (GdkIMStyle           best_allowed_style);
848
849GdkIC*       gdk_ic_new            (GdkICAttr           *attr,
850                                    GdkICAttributesType mask);
851void         gdk_ic_destroy        (GdkIC               *ic);
852GdkIMStyle   gdk_ic_get_style      (GdkIC               *ic);
853GdkEventMask gdk_ic_get_events     (GdkIC               *ic);
854
855GdkICAttr*   gdk_ic_attr_new       (void);
856void         gdk_ic_attr_destroy   (GdkICAttr *attr);
857
858GdkICAttributesType  gdk_ic_set_attr (GdkIC              *ic, 
859                                      GdkICAttr          *attr,
860                                      GdkICAttributesType mask);
861GdkICAttributesType  gdk_ic_get_attr (GdkIC              *ic,
862                                      GdkICAttr          *attr,
863                                      GdkICAttributesType mask);
864
865/* Conversion functions between wide char and multibyte strings.
866 */
867gchar     *gdk_wcstombs          (const GdkWChar   *src);
868gint       gdk_mbstowcs          (GdkWChar         *dest,
869                                  const gchar      *src,
870                                  gint              dest_max);
871
872
873/* Color Context */
874
875GdkColorContext *gdk_color_context_new                    (GdkVisual   *visual,
876                                                           GdkColormap *colormap);
877
878GdkColorContext *gdk_color_context_new_mono               (GdkVisual   *visual,
879                                                           GdkColormap *colormap);
880
881void             gdk_color_context_free                   (GdkColorContext *cc);
882
883gulong           gdk_color_context_get_pixel              (GdkColorContext *cc,
884                                                           gushort          red,
885                                                           gushort          green,
886                                                           gushort          blue,
887                                                           gint            *failed);
888void             gdk_color_context_get_pixels             (GdkColorContext *cc,
889                                                           gushort         *reds,
890                                                           gushort         *greens,
891                                                           gushort         *blues,
892                                                           gint             ncolors,
893                                                           gulong          *colors,
894                                                           gint            *nallocated);
895void             gdk_color_context_get_pixels_incremental (GdkColorContext *cc,
896                                                           gushort         *reds,
897                                                           gushort         *greens,
898                                                           gushort         *blues,
899                                                           gint             ncolors,
900                                                           gint            *used,
901                                                           gulong          *colors,
902                                                           gint            *nallocated);
903
904gint             gdk_color_context_query_color            (GdkColorContext *cc,
905                                                           GdkColor        *color);
906gint             gdk_color_context_query_colors           (GdkColorContext *cc,
907                                                           GdkColor        *colors,
908                                                           gint             num_colors);
909
910gint             gdk_color_context_add_palette            (GdkColorContext *cc,
911                                                           GdkColor        *palette,
912                                                           gint             num_palette);
913
914void             gdk_color_context_init_dither            (GdkColorContext *cc);
915void             gdk_color_context_free_dither            (GdkColorContext *cc);
916
917gulong           gdk_color_context_get_pixel_from_palette (GdkColorContext *cc,
918                                                           gushort         *red,
919                                                           gushort         *green,
920                                                           gushort         *blue,
921                                                           gint            *failed);
922guchar           gdk_color_context_get_index_from_palette (GdkColorContext *cc,
923                                                           gint            *red,
924                                                           gint            *green,
925                                                           gint            *blue,
926                                                           gint            *failed);
927/* Regions
928 */
929
930GdkRegion*     gdk_region_new       (void);
931void           gdk_region_destroy   (GdkRegion     *region);
932
933void           gdk_region_get_clipbox(GdkRegion    *region,
934                                      GdkRectangle *rectangle);
935
936gboolean       gdk_region_empty     (GdkRegion     *region);
937gboolean       gdk_region_equal     (GdkRegion     *region1,
938                                     GdkRegion     *region2);
939gboolean       gdk_region_point_in  (GdkRegion     *region,
940                                     int                   x,
941                                     int                   y);
942GdkOverlapType gdk_region_rect_in   (GdkRegion     *region,
943                                     GdkRectangle  *rect);
944
945GdkRegion*     gdk_region_polygon   (GdkPoint      *points,
946                                     gint           npoints,
947                                     GdkFillRule    fill_rule);
948
949void           gdk_region_offset   (GdkRegion      *region,
950                                    gint           dx,
951                                    gint           dy);
952void           gdk_region_shrink   (GdkRegion      *region,
953                                    gint           dx,
954                                    gint           dy);
955
956GdkRegion*    gdk_region_union_with_rect  (GdkRegion      *region,
957                                           GdkRectangle   *rect);
958GdkRegion*    gdk_regions_intersect       (GdkRegion      *source1,
959                                           GdkRegion      *source2);
960GdkRegion*    gdk_regions_union           (GdkRegion      *source1,
961                                           GdkRegion      *source2);
962GdkRegion*    gdk_regions_subtract        (GdkRegion      *source1,
963                                           GdkRegion      *source2);
964GdkRegion*    gdk_regions_xor             (GdkRegion      *source1,
965                                           GdkRegion      *source2);
966
967/* Miscellaneous */
968void     gdk_event_send_clientmessage_toall (GdkEvent    *event);
969gboolean gdk_event_send_client_message (GdkEvent    *event,
970                                        guint32      xid);
971
972/* Key values
973 */
974gchar*   gdk_keyval_name                  (guint        keyval);
975guint    gdk_keyval_from_name             (const gchar *keyval_name);
976guint    gdk_keyval_to_upper              (guint        keyval);
977guint    gdk_keyval_to_lower              (guint        keyval);
978gboolean gdk_keyval_is_upper              (guint        keyval);
979gboolean gdk_keyval_is_lower              (guint        keyval);
980
981/* Threading
982 */
983
984extern GMutex *gdk_threads_mutex;
985
986void     gdk_threads_enter                (void);
987void     gdk_threads_leave                (void);
988
989#ifdef  G_THREADS_ENABLED
990#  define GDK_THREADS_ENTER()   G_STMT_START {  \
991      if (gdk_threads_mutex)                    \
992        g_mutex_lock (gdk_threads_mutex);       \
993   } G_STMT_END
994#  define GDK_THREADS_LEAVE()   G_STMT_START {  \
995      if (gdk_threads_mutex)                    \
996        g_mutex_unlock (gdk_threads_mutex);     \
997   } G_STMT_END
998#else   /* !G_THREADS_ENABLED */
999#  define GDK_THREADS_ENTER()
1000#  define GDK_THREADS_LEAVE()
1001#endif  /* !G_THREADS_ENABLED */
1002
1003#ifdef __cplusplus
1004}
1005#endif /* __cplusplus */
1006
1007#include <gdk/gdkrgb.h>
1008
1009#endif /* __GDK_H__ */
Note: See TracBrowser for help on using the repository browser.