]> Pileus Git - ~andy/gtk/blobdiff - gdk/gdk.h
Practically everything changed.
[~andy/gtk] / gdk / gdk.h
index 1d487e466d678ee9e491340a72975216310d71e6..b4adf414e7c27768c0d78d172ff3be286bccd1db 100644 (file)
--- a/gdk/gdk.h
+++ b/gdk/gdk.h
-/* GDK - The GIMP Drawing Kit
+/* GDK - The GTK+ Drawing Kit
  * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
  *
  * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
+ * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
  * version 2 of the License, or (at your option) any later version.
  *
  * This library is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the GNU
- * Library General Public License for more details.
+ * Lesser General Public License for more details.
  *
- * You should have received a copy of the GNU Library General Public
+ * You should have received a copy of the GNU Lesser General Public
  * License along with this library; if not, write to the
  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  * Boston, MA 02111-1307, USA.
  */
+
+/*
+ * Modified by the GTK+ Team and others 1997-2000.  See the AUTHORS
+ * file for a list of people on the GTK+ Team.  See the ChangeLog
+ * files for a list of changes.  These files are distributed with
+ * GTK+ at ftp://ftp.gtk.org/pub/gtk/.
+ */
+
 #ifndef __GDK_H__
 #define __GDK_H__
 
-
+#define __GDK_H_INSIDE__
+
+#include <gdk/gdkapplaunchcontext.h>
+#include <gdk/gdkcairo.h>
+#include <gdk/gdkcolor.h>
+#include <gdk/gdkcursor.h>
+#include <gdk/gdkdisplay.h>
+#include <gdk/gdkdisplaymanager.h>
+#include <gdk/gdkdnd.h>
+#include <gdk/gdkdrawable.h>
+#include <gdk/gdkenumtypes.h>
+#include <gdk/gdkevents.h>
+#include <gdk/gdkfont.h>
+#include <gdk/gdkgc.h>
+#include <gdk/gdkimage.h>
+#include <gdk/gdkinput.h>
+#include <gdk/gdkkeys.h>
+#include <gdk/gdkpango.h>
+#include <gdk/gdkpixbuf.h>
+#include <gdk/gdkpixmap.h>
+#include <gdk/gdkproperty.h>
+#include <gdk/gdkregion.h>
+#include <gdk/gdkrgb.h>
+#include <gdk/gdkscreen.h>
+#include <gdk/gdkselection.h>
+#include <gdk/gdkspawn.h>
+#include <gdk/gdktestutils.h>
 #include <gdk/gdktypes.h>
+#include <gdk/gdkvisual.h>
+#include <gdk/gdkwindow.h>
 
+#undef __GDK_H_INSIDE__
 
-#ifdef __cplusplus
-extern "C" {
-#pragma }
-#endif /* __cplusplus */
+G_BEGIN_DECLS
 
 
 /* Initialization, exit and events
  */
-void   gdk_init                   (int    *argc,
-                           char ***argv);
-void   gdk_exit                   (int     error_code);
-gchar* gdk_set_locale     (void);
+#define          GDK_PRIORITY_EVENTS           (G_PRIORITY_DEFAULT)
+void     gdk_parse_args                (gint           *argc,
+                                        gchar        ***argv);
+void     gdk_init                      (gint           *argc,
+                                        gchar        ***argv);
+gboolean  gdk_init_check               (gint           *argc,
+                                        gchar        ***argv);
+void gdk_add_option_entries_libgtk_only (GOptionGroup *group);
+void gdk_pre_parse_libgtk_only          (void);
 
-gint gdk_events_pending         (void);
-GdkEvent *gdk_event_get         (void);
-GdkEvent *gdk_event_get_graphics_expose (GdkWindow *window);
-void gdk_event_put      (GdkEvent     *event);
+#ifndef GDK_DISABLE_DEPRECATED
+void     gdk_exit                      (gint            error_code);
+#endif /* GDK_DISABLE_DEPRECATED */
+gchar*   gdk_set_locale                (void);
 
-GdkEvent *gdk_event_copy (GdkEvent *event);
-void     gdk_event_free (GdkEvent *event);
+G_CONST_RETURN char *gdk_get_program_class (void);
+void                 gdk_set_program_class (const char *program_class);
 
-void gdk_set_show_events (gint show_events);
-void gdk_set_use_xshm   (gint  use_xshm);
+/* Push and pop error handlers for X errors
+ */
+void      gdk_error_trap_push           (void);
+gint      gdk_error_trap_pop            (void);
 
-gint gdk_get_show_events (void);
-gint gdk_get_use_xshm   (void);
-gchar *gdk_get_display (void);
+#ifndef GDK_DISABLE_DEPRECATED
+void     gdk_set_use_xshm              (gboolean        use_xshm);
+gboolean  gdk_get_use_xshm             (void);
+#endif /* GDK_DISABLE_DEPRECATED */
 
-guint32 gdk_time_get     (void);
-guint32 gdk_timer_get    (void);
-void   gdk_timer_set     (guint32 milliseconds);
-void   gdk_timer_enable  (void);
-void   gdk_timer_disable (void);
+gchar*                   gdk_get_display               (void);
+G_CONST_RETURN gchar*    gdk_get_display_arg_name      (void);
 
+#if !defined (GDK_DISABLE_DEPRECATED) || defined (GTK_COMPILATION)
+/* Used by gtk_input_add_full () */
 gint gdk_input_add_full          (gint              source,
                           GdkInputCondition condition,
                           GdkInputFunction  function,
                           gpointer          data,
-                          GdkDestroyNotify  destroy);
-#define gdk_input_add_interp gdk_input_add_full         
+                          GDestroyNotify    destroy);
+#endif /* !GDK_DISABLE_DEPRECATED || GTK_COMPILATION */
+#ifndef GDK_DISABLE_DEPRECATED
 gint gdk_input_add       (gint              source,
                           GdkInputCondition condition,
                           GdkInputFunction  function,
                           gpointer          data);
 void gdk_input_remove    (gint              tag);
+#endif /* GDK_DISABLE_DEPRECATED */
+
+GdkGrabStatus gdk_pointer_grab       (GdkWindow    *window,
+                                     gboolean      owner_events,
+                                     GdkEventMask  event_mask,
+                                     GdkWindow    *confine_to,
+                                     GdkCursor    *cursor,
+                                     guint32       time_);
+GdkGrabStatus gdk_keyboard_grab      (GdkWindow    *window,
+                                     gboolean      owner_events,
+                                     guint32       time_);
+
+gboolean gdk_pointer_grab_info_libgtk_only (GdkDisplay *display,
+                                           GdkWindow **grab_window,
+                                           gboolean   *owner_events);
+gboolean gdk_keyboard_grab_info_libgtk_only (GdkDisplay *display,
+                                            GdkWindow **grab_window,
+                                            gboolean   *owner_events);
+
+#ifndef GDK_MULTIHEAD_SAFE
+void          gdk_pointer_ungrab     (guint32       time_);
+void          gdk_keyboard_ungrab    (guint32       time_);
+gboolean      gdk_pointer_is_grabbed (void);
+
+gint gdk_screen_width  (void) G_GNUC_CONST;
+gint gdk_screen_height (void) G_GNUC_CONST;
+
+gint gdk_screen_width_mm  (void) G_GNUC_CONST;
+gint gdk_screen_height_mm (void) G_GNUC_CONST;
 
-gint gdk_pointer_grab  (GdkWindow *     window,
-                        gint            owner_events,
-                        GdkEventMask    event_mask,
-                        GdkWindow *     confine_to,
-                        GdkCursor *     cursor,
-                        guint32         time);
-void gdk_pointer_ungrab (guint32        time);
-
-gint gdk_keyboard_grab  (GdkWindow *     window,
-                         gint            owner_events,
-                         guint32         time);
-void gdk_keyboard_ungrab (guint32        time);
-
-gint gdk_pointer_is_grabbed (void);
-
-gint gdk_screen_width  (void);
-gint gdk_screen_height (void);
-
-gint gdk_screen_width_mm  (void);
-gint gdk_screen_height_mm (void);
-
-void gdk_flush (void);
 void gdk_beep (void);
+#endif /* GDK_MULTIHEAD_SAFE */
 
-void gdk_key_repeat_disable (void);
-void gdk_key_repeat_restore (void);
-
-
-/* Visuals
- */
-gint         gdk_visual_get_best_depth      (void);
-GdkVisualType gdk_visual_get_best_type      (void);
-GdkVisual*    gdk_visual_get_system         (void);
-GdkVisual*    gdk_visual_get_best           (void);
-GdkVisual*    gdk_visual_get_best_with_depth (gint          depth);
-GdkVisual*    gdk_visual_get_best_with_type  (GdkVisualType  visual_type);
-GdkVisual*    gdk_visual_get_best_with_both  (gint          depth,
-                                             GdkVisualType  visual_type);
-
-/* Actually, these are no-ops... */
-GdkVisual* gdk_visual_ref (GdkVisual *visual);
-void      gdk_visual_unref (GdkVisual *visual);
-
-void gdk_query_depths      (gint           **depths,
-                            gint            *count);
-void gdk_query_visual_types (GdkVisualType  **visual_types,
-                            gint            *count);
-
-GList* gdk_list_visuals (void);
-
-
-/* Windows
- */
-GdkWindow*    gdk_window_new        (GdkWindow     *parent,
-                                     GdkWindowAttr *attributes,
-                                     gint           attributes_mask);
-
-GdkWindow *   gdk_window_foreign_new (guint32       anid);
-void         gdk_window_destroy     (GdkWindow     *window);
-GdkWindow*    gdk_window_ref        (GdkWindow     *window);
-void         gdk_window_unref       (GdkWindow     *window);
-
-void         gdk_window_show        (GdkWindow    *window);
-void         gdk_window_hide        (GdkWindow    *window);
-void         gdk_window_withdraw    (GdkWindow    *window);
-void         gdk_window_move        (GdkWindow    *window,
-                                     gint          x,
-                                     gint          y);
-void         gdk_window_resize      (GdkWindow    *window,
-                                     gint          width,
-                                     gint          height);
-void         gdk_window_move_resize (GdkWindow    *window,
-                                     gint          x,
-                                     gint          y,
-                                     gint          width,
-                                     gint          height);
-void         gdk_window_reparent    (GdkWindow    *window,
-                                     GdkWindow    *new_parent,
-                                     gint          x,
-                                     gint          y);
-void         gdk_window_clear       (GdkWindow    *window);
-void         gdk_window_clear_area  (GdkWindow    *window,
-                                     gint          x,
-                                     gint          y,
-                                     gint          width,
-                                     gint          height);
-void         gdk_window_clear_area_e(GdkWindow    *window,
-                                     gint          x,
-                                     gint          y,
-                                     gint          width,
-                                     gint          height);
-void         gdk_window_copy_area   (GdkWindow    *window,
-                                     GdkGC        *gc,
-                                     gint          x,
-                                     gint          y,
-                                     GdkWindow    *source_window,
-                                     gint          source_x,
-                                     gint          source_y,
-                                     gint          width,
-                                     gint          height);
-void         gdk_window_raise       (GdkWindow    *window);
-void         gdk_window_lower       (GdkWindow    *window);
-
-void         gdk_window_set_user_data   (GdkWindow       *window,
-                                         gpointer         user_data);
-void         gdk_window_set_override_redirect(GdkWindow  *window,
-                                              gboolean override_redirect);
-
-void         gdk_window_add_filter     (GdkWindow     *window,
-                                        GdkFilterFunc  function,
-                                        gpointer       data);
-void         gdk_window_remove_filter  (GdkWindow     *window,
-                                        GdkFilterFunc  function,
-                                        gpointer       data);
-
-/* 
- * This allows for making shaped (partially transparent) windows
- * - cool feature, needed for Drag and Drag for example.
- *  The shape_mask can be the mask
- *  from gdk_pixmap_create_from_xpm.   Stefan Wille
- */
-void gdk_window_shape_combine_mask (GdkWindow      *window,
-                                   GdkBitmap       *shape_mask,
-                                   gint             offset_x,
-                                   gint             offset_y);
-
-/* 
- * Drag & Drop
- * Algorithm (drop source):
- * A window being dragged will be sent a GDK_DRAG_BEGIN message.
- * It will then do gdk_dnd_drag_addwindow() for any other windows that are to be
- * dragged.
- * When we get a DROP_ENTER incoming, we send it on to the window in question.
- * That window needs to use gdk_dnd_drop_enter_reply() to indicate the state of
- * things (it must call that even if it's not going to accept the drop)
- *
- * These two turn on/off drag or drop, and if enabling it also
- * sets the list of types supported. The list of types passed in
- * should be in order of decreasing preference.
- */
-void gdk_window_dnd_drag_set (GdkWindow         *window,
-                             guint8      drag_enable,
-                             gchar     **typelist,
-                             guint       numtypes);
-
-/* 
- *XXX todo: add a GDK_DROP_ENTER which can look at actual data
- */
-void gdk_window_dnd_drop_set (GdkWindow         *window,
-                             guint8      drop_enable,
-                             gchar     **typelist,
-                             guint       numtypes,
-                             guint8      destructive_op);
-
-/* 
- * This is used by the GDK_DRAG_BEGIN handler. An example of usage would be a
- * file manager where multiple icons were selected and the drag began.
- * The icon that the drag actually began on would gdk_dnd_drag_addwindow
- * for all the other icons that were being dragged... 
- */
-void gdk_dnd_drag_addwindow  (GdkWindow         *window);
-void gdk_window_dnd_data_set (GdkWindow         *window,
-                             GdkEvent   *event,
-                             gpointer    data,
-                             gulong      data_numbytes);
-void gdk_dnd_set_drag_cursors(GdkCursor *default_cursor,
-                             GdkCursor *goahead_cursor);
-void gdk_dnd_set_drag_shape(GdkWindow *default_pixmapwin,
-                           GdkPoint *default_hotspot,
-                           GdkWindow *goahead_pixmapwin,
-                           GdkPoint *goahead_hotspot);
-
-void         gdk_window_set_hints       (GdkWindow       *window,
-                                         gint             x,
-                                         gint             y,
-                                         gint             min_width,
-                                         gint             min_height,
-                                         gint             max_width,
-                                         gint             max_height,
-                                         gint             flags);
-void         gdk_window_set_title       (GdkWindow       *window,
-                                         const gchar     *title);
-void         gdk_window_set_background  (GdkWindow       *window,
-                                         GdkColor        *color);
-void         gdk_window_set_back_pixmap (GdkWindow       *window,
-                                         GdkPixmap       *pixmap,
-                                         gint             parent_relative);
-void         gdk_window_set_cursor      (GdkWindow       *window,
-                                         GdkCursor       *cursor);
-void         gdk_window_set_colormap    (GdkWindow       *window,
-                                         GdkColormap     *colormap);
-void         gdk_window_get_user_data   (GdkWindow       *window,
-                                         gpointer        *data);
-void         gdk_window_get_geometry    (GdkWindow       *window,
-                                         gint            *x,
-                                         gint            *y,
-                                         gint            *width,
-                                         gint            *height,
-                                         gint            *depth);
-void         gdk_window_get_position    (GdkWindow       *window,
-                                         gint            *x,
-                                         gint            *y);
-void         gdk_window_get_size        (GdkWindow       *window,
-                                         gint            *width,
-                                         gint            *height);
-GdkVisual*    gdk_window_get_visual     (GdkWindow       *window);
-GdkColormap*  gdk_window_get_colormap   (GdkWindow       *window);
-GdkWindowType gdk_window_get_type       (GdkWindow       *window);
-gint         gdk_window_get_origin      (GdkWindow       *window,
-                                         gint            *x,
-                                         gint            *y);
-GdkWindow*    gdk_window_get_pointer    (GdkWindow       *window,
-                                         gint            *x,
-                                         gint            *y,
-                                         GdkModifierType *mask);
-GdkWindow*    gdk_window_get_parent     (GdkWindow       *window);
-GdkWindow*    gdk_window_get_toplevel   (GdkWindow       *window);
-GList*       gdk_window_get_children    (GdkWindow       *window);
-GdkEventMask  gdk_window_get_events     (GdkWindow       *window);
-void         gdk_window_set_events      (GdkWindow       *window,
-                                         GdkEventMask     event_mask);
-
-void         gdk_window_set_icon        (GdkWindow       *window, 
-                                         GdkWindow       *icon_window,
-                                         GdkPixmap       *pixmap,
-                                         GdkBitmap       *mask);
-void         gdk_window_set_icon_name   (GdkWindow       *window, 
-                                         gchar           *name);
-void         gdk_window_set_group       (GdkWindow       *window, 
-                                         GdkWindow       *leader);
-void         gdk_window_set_decorations (GdkWindow       *window,
-                                         GdkWMDecoration  decorations);
-void         gdk_window_set_functions   (GdkWindow       *window,
-                                         GdkWMFunction    functions);
-GList *       gdk_window_get_toplevels   (void);
-
-
-/* Cursors
- */
-GdkCursor* gdk_cursor_new               (GdkCursorType   cursor_type);
-GdkCursor* gdk_cursor_new_from_pixmap   (GdkPixmap       *source,
-                                         GdkPixmap       *mask,
-                                         GdkColor        *fg,
-                                         GdkColor        *bg,
-                                         gint             x,
-                                         gint             y);
-void      gdk_cursor_destroy            (GdkCursor      *cursor);
-
-
-/* GCs
- */
-GdkGC* gdk_gc_new                (GdkWindow        *window);
-GdkGC* gdk_gc_new_with_values    (GdkWindow        *window,
-                                  GdkGCValues      *values,
-                                  GdkGCValuesMask   values_mask);
-GdkGC* gdk_gc_ref                (GdkGC            *gc);
-void   gdk_gc_unref              (GdkGC            *gc);
-void   gdk_gc_destroy            (GdkGC            *gc);
-void   gdk_gc_get_values         (GdkGC            *gc,
-                                  GdkGCValues      *values);
-void   gdk_gc_set_foreground     (GdkGC            *gc,
-                                  GdkColor         *color);
-void   gdk_gc_set_background     (GdkGC            *gc,
-                                  GdkColor         *color);
-void   gdk_gc_set_font           (GdkGC            *gc,
-                                  GdkFont          *font);
-void   gdk_gc_set_function       (GdkGC            *gc,
-                                  GdkFunction       function);
-void   gdk_gc_set_fill           (GdkGC            *gc,
-                                  GdkFill           fill);
-void   gdk_gc_set_tile           (GdkGC            *gc,
-                                  GdkPixmap        *tile);
-void   gdk_gc_set_stipple        (GdkGC            *gc,
-                                  GdkPixmap        *stipple);
-void   gdk_gc_set_ts_origin      (GdkGC            *gc,
-                                  gint              x,
-                                  gint              y);
-void   gdk_gc_set_clip_origin    (GdkGC            *gc,
-                                  gint              x,
-                                  gint              y);
-void   gdk_gc_set_clip_mask      (GdkGC            *gc,
-                                  GdkBitmap        *mask);
-void   gdk_gc_set_clip_rectangle  (GdkGC           *gc,
-                                  GdkRectangle     *rectangle);
-void   gdk_gc_set_clip_region    (GdkGC            *gc,
-                                  GdkRegion        *region);
-void   gdk_gc_set_subwindow      (GdkGC            *gc,
-                                  GdkSubwindowMode  mode);
-void   gdk_gc_set_exposures      (GdkGC            *gc,
-                                  gint              exposures);
-void   gdk_gc_set_line_attributes (GdkGC           *gc,
-                                  gint              line_width,
-                                  GdkLineStyle      line_style,
-                                  GdkCapStyle       cap_style,
-                                  GdkJoinStyle      join_style);
-void   gdk_gc_set_dashes          (GdkGC            *gc,
-                                  gint              dash_offset,
-                                  gchar             dash_list[],
-                                  gint              n);
-void   gdk_gc_copy               (GdkGC             *dst_gc,
-                                  GdkGC             *src_gc);
-
-
-/* Pixmaps
- */
-GdkPixmap* gdk_pixmap_new              (GdkWindow  *window,
-                                        gint        width,
-                                        gint        height,
-                                        gint        depth);
-GdkBitmap* gdk_bitmap_create_from_data (GdkWindow  *window,
-                                        gchar      *data,
-                                        gint        width,
-                                        gint        height);
-GdkPixmap* gdk_pixmap_create_from_data (GdkWindow  *window,
-                                        gchar      *data,
-                                        gint        width,
-                                        gint        height,
-                                        gint        depth,
-                                        GdkColor   *fg,
-                                        GdkColor   *bg);
-GdkPixmap* gdk_pixmap_create_from_xpm  (GdkWindow  *window,
-                                        GdkBitmap **mask,
-                                        GdkColor   *transparent_color,
-                                        const gchar *filename);
-GdkPixmap* gdk_pixmap_colormap_create_from_xpm 
-                                        (GdkWindow   *window,
-                                        GdkColormap *colormap,
-                                        GdkBitmap  **mask,
-                                        GdkColor    *transparent_color,
-                                        const gchar *filename);
-GdkPixmap* gdk_pixmap_create_from_xpm_d (GdkWindow  *window,
-                                        GdkBitmap **mask,
-                                        GdkColor   *transparent_color,
-                                        gchar     **data);
-GdkPixmap* gdk_pixmap_colormap_create_from_xpm_d 
-                                        (GdkWindow   *window,
-                                        GdkColormap *colormap,
-                                        GdkBitmap  **mask,
-                                        GdkColor    *transparent_color,
-                                        gchar     **data);
-GdkPixmap *gdk_pixmap_ref              (GdkPixmap  *pixmap);
-void      gdk_pixmap_unref             (GdkPixmap  *pixmap);
-
-GdkBitmap *gdk_bitmap_ref              (GdkBitmap  *pixmap);
-void      gdk_bitmap_unref             (GdkBitmap  *pixmap);
-
-
-/* Images
- */
-GdkImage* gdk_image_new_bitmap(GdkVisual *,
-                               gpointer,
-                               gint,
-                               gint);
-GdkImage*  gdk_image_new       (GdkImageType  type,
-                               GdkVisual    *visual,
-                               gint          width,
-                               gint          height);
-GdkImage*  gdk_image_get       (GdkWindow    *window,
-                               gint          x,
-                               gint          y,
-                               gint          width,
-                               gint          height);
-void      gdk_image_put_pixel (GdkImage     *image,
-                               gint          x,
-                               gint          y,
-                               guint32       pixel);
-guint32           gdk_image_get_pixel (GdkImage     *image,
-                               gint          x,
-                               gint          y);
-void      gdk_image_destroy   (GdkImage     *image);
-
-
-/* Color
- */
-GdkColormap* gdk_colormap_new    (GdkVisual   *visual,
-                                  gint         allocate);
-GdkColormap* gdk_colormap_ref    (GdkColormap *cmap);
-void        gdk_colormap_unref   (GdkColormap *cmap);
-
-GdkColormap* gdk_colormap_get_system      (void);
-gint        gdk_colormap_get_system_size  (void);
-
-void gdk_colormap_change (GdkColormap  *colormap,
-                         gint           ncolors);
-void gdk_colors_store   (GdkColormap   *colormap,
-                         GdkColor      *colors,
-                         gint           ncolors);
-gint gdk_colors_alloc   (GdkColormap   *colormap,
-                         gint           contiguous,
-                         gulong        *planes,
-                         gint           nplanes,
-                         gulong        *pixels,
-                         gint           npixels);
-void gdk_colors_free    (GdkColormap   *colormap,
-                         gulong        *pixels,
-                         gint           npixels,
-                         gulong         planes);
-gint gdk_color_white    (GdkColormap   *colormap,
-                         GdkColor      *color);
-gint gdk_color_black    (GdkColormap   *colormap,
-                         GdkColor      *color);
-gint gdk_color_parse    (const gchar   *spec,
-                         GdkColor      *color);
-gint gdk_color_alloc    (GdkColormap   *colormap,
-                         GdkColor      *color);
-gint gdk_color_change   (GdkColormap   *colormap,
-                         GdkColor      *color);
-gint gdk_color_equal    (GdkColor      *colora,
-                         GdkColor      *colorb);
-
-
-/* Fonts
- */
-GdkFont* gdk_font_load     (const gchar    *font_name);
-GdkFont* gdk_fontset_load   (gchar    *fontset_name);
-GdkFont* gdk_font_ref      (GdkFont  *font);
-void    gdk_font_unref     (GdkFont  *font);
-gint    gdk_font_id        (GdkFont  *font);
-gint    gdk_font_equal     (GdkFont  *fonta,
-                            GdkFont  *fontb);
-gint    gdk_string_width   (GdkFont  *font,
-                            const gchar    *string);
-gint    gdk_text_width     (GdkFont  *font,
-                            const gchar    *text,
-                            gint      text_length);
-gint    gdk_char_width     (GdkFont  *font,
-                            gchar     character);
-gint    gdk_string_measure (GdkFont  *font,
-                            const gchar    *string);
-gint    gdk_text_measure   (GdkFont  *font,
-                            const gchar    *text,
-                            gint      text_length);
-gint    gdk_char_measure   (GdkFont  *font,
-                            gchar     character);
-
-
-/* Drawing
- */
-void gdk_draw_point     (GdkDrawable  *drawable,
-                         GdkGC        *gc,
-                         gint          x,
-                         gint          y);
-void gdk_draw_line      (GdkDrawable  *drawable,
-                         GdkGC        *gc,
-                         gint          x1,
-                         gint          y1,
-                         gint          x2,
-                         gint          y2);
-void gdk_draw_rectangle         (GdkDrawable  *drawable,
-                         GdkGC        *gc,
-                         gint          filled,
-                         gint          x,
-                         gint          y,
-                         gint          width,
-                         gint          height);
-void gdk_draw_arc       (GdkDrawable  *drawable,
-                         GdkGC        *gc,
-                         gint          filled,
-                         gint          x,
-                         gint          y,
-                         gint          width,
-                         gint          height,
-                         gint          angle1,
-                         gint          angle2);
-void gdk_draw_polygon   (GdkDrawable  *drawable,
-                         GdkGC        *gc,
-                         gint          filled,
-                         GdkPoint     *points,
-                         gint          npoints);
-void gdk_draw_string    (GdkDrawable  *drawable,
-                         GdkFont      *font,
-                         GdkGC        *gc,
-                         gint          x,
-                         gint          y,
-                         const gchar        *string);
-void gdk_draw_text      (GdkDrawable  *drawable,
-                         GdkFont      *font,
-                         GdkGC        *gc,
-                         gint          x,
-                         gint          y,
-                         const gchar        *text,
-                         gint          text_length);
-void gdk_draw_pixmap    (GdkDrawable  *drawable,
-                         GdkGC        *gc,
-                         GdkDrawable  *src,
-                         gint          xsrc,
-                         gint          ysrc,
-                         gint          xdest,
-                         gint          ydest,
-                         gint          width,
-                         gint          height);
-void gdk_draw_bitmap    (GdkDrawable  *drawable,
-                         GdkGC        *gc,
-                         GdkDrawable  *src,
-                         gint          xsrc,
-                         gint          ysrc,
-                         gint          xdest,
-                         gint          ydest,
-                         gint          width,
-                         gint          height);
-void gdk_draw_image     (GdkDrawable  *drawable,
-                         GdkGC        *gc,
-                         GdkImage     *image,
-                         gint          xsrc,
-                         gint          ysrc,
-                         gint          xdest,
-                         gint          ydest,
-                         gint          width,
-                         gint          height);
-void gdk_draw_points    (GdkDrawable  *drawable,
-                         GdkGC        *gc,
-                         GdkPoint     *points,
-                         gint          npoints);
-void gdk_draw_segments  (GdkDrawable  *drawable,
-                         GdkGC        *gc,
-                         GdkSegment   *segs,
-                         gint          nsegs);
-void gdk_draw_lines      (GdkDrawable  *drawable,
-                          GdkGC        *gc,
-                          GdkPoint     *points,
-                          gint          npoints);
-
-
-
-/* Selections
- */
-gint      gdk_selection_owner_set (GdkWindow    *owner,
-                                   GdkAtom       selection,
-                                   guint32       time,
-                                   gint          send_event);
-GdkWindow* gdk_selection_owner_get (GdkAtom      selection);
-void      gdk_selection_convert   (GdkWindow    *requestor,
-                                   GdkAtom       selection,
-                                   GdkAtom       target,
-                                   guint32       time);
-gint      gdk_selection_property_get (GdkWindow  *requestor,
-                                      guchar    **data,
-                                      GdkAtom    *prop_type,
-                                      gint       *prop_format);
-void      gdk_selection_send_notify (guint32       requestor,
-                                     GdkAtom       selection,
-                                     GdkAtom       target,
-                                     GdkAtom       property,
-                                     guint32       time);
-
-gint      gdk_text_property_to_text_list (GdkAtom encoding, gint format,
-                                          guchar *text, gint length,
-                                          gchar ***list);
-void      gdk_free_text_list             (gchar **list);
-gint      gdk_string_to_compound_text    (gchar *str,
-                                          GdkAtom *encoding, gint *format,
-                                          guchar **ctext, gint *length);
-void      gdk_free_compound_text         (guchar *ctext);
-
-/* Properties
- */
-GdkAtom gdk_atom_intern            (const gchar *atom_name,
-                            gint         only_if_exists);
-gchar* gdk_atom_name       (GdkAtom atom);
-gint   gdk_property_get    (GdkWindow   *window,
-                            GdkAtom      property,
-                            GdkAtom      type,
-                            gulong       offset,
-                            gulong       length,
-                            gint         pdelete,
-                            GdkAtom     *actual_property_type,
-                            gint        *actual_format,
-                            gint        *actual_length,
-                            guchar     **data);
-
-void   gdk_property_change (GdkWindow   *window,
-                            GdkAtom      property,
-                            GdkAtom      type,
-                            gint         format,
-                            GdkPropMode  mode,
-                            guchar      *data,
-                            gint         nelements);
-void   gdk_property_delete (GdkWindow   *window,
-                            GdkAtom      property);
+void gdk_flush (void);
 
+#ifndef GDK_MULTIHEAD_SAFE
+void gdk_set_double_click_time             (guint       msec);
+#endif
 
 /* Rectangle utilities
  */
-gint gdk_rectangle_intersect (GdkRectangle *src1,
-                             GdkRectangle *src2,
-                             GdkRectangle *dest);
+gboolean gdk_rectangle_intersect (const GdkRectangle *src1,
+                                 const GdkRectangle *src2,
+                                 GdkRectangle       *dest);
+void     gdk_rectangle_union     (const GdkRectangle *src1,
+                                 const GdkRectangle *src2,
+                                 GdkRectangle       *dest);
 
-/* XInput support
- */
-
-void gdk_input_init                        (void);
-void gdk_input_exit                        (void);
-GList *gdk_input_list_devices              (void);
-void gdk_input_set_extension_events        (GdkWindow *window,
-                                            gint mask,
-                                            GdkExtensionMode mode);
-void gdk_input_set_source                  (guint32 deviceid,
-                                            GdkInputSource source);
-gint gdk_input_set_mode                            (guint32 deviceid,
-                                            GdkInputMode mode);
-void gdk_input_set_axes                            (guint32 deviceid,
-                                            GdkAxisUse *axes);
-void gdk_input_set_key                     (guint32 deviceid,
-                                            guint   index,
-                                            guint   keyval,
-                                            GdkModifierType modifiers);
-void gdk_input_window_get_pointer     (GdkWindow       *window,
-                                      guint32         deviceid,
-                                      gdouble         *x,
-                                      gdouble         *y,
-                                      gdouble         *pressure,
-                                      gdouble         *xtilt,
-                                      gdouble         *ytilt,
-                                      GdkModifierType *mask);
-
-GdkTimeCoord *gdk_input_motion_events (GdkWindow *window,
-                                      guint32 deviceid,
-                                      guint32 start,
-                                      guint32 stop,
-                                      gint *nevents_return);
-
-/* International Input Method Support Functions
- */
-
-gint   gdk_im_ready            (void);
-
-void   gdk_im_begin            (GdkIC ic, GdkWindow* window);
-void   gdk_im_end              (void);
-GdkIMStyle gdk_im_decide_style (GdkIMStyle supported_style);
-GdkIMStyle gdk_im_set_best_style (GdkIMStyle best_allowed_style);
-GdkIC  gdk_ic_new              (GdkWindow* client_window,
-                                GdkWindow* focus_window,
-                                GdkIMStyle style, ...);
-void   gdk_ic_destroy          (GdkIC ic);
-GdkIMStyle   gdk_ic_get_style  (GdkIC ic);
-void   gdk_ic_set_values       (GdkIC ic, ...);
-void   gdk_ic_get_values       (GdkIC ic, ...);
-void   gdk_ic_set_attr         (GdkIC ic, const char *target, ...);
-void   gdk_ic_get_attr         (GdkIC ic, const char *target, ...);
-GdkEventMask gdk_ic_get_events (GdkIC ic);
-
-/* Color Context */
-
-GdkColorContext *gdk_color_context_new                   (GdkVisual   *visual,
-                                                          GdkColormap *colormap);
-
-GdkColorContext *gdk_color_context_new_mono              (GdkVisual   *visual,
-                                                          GdkColormap *colormap);
-
-void            gdk_color_context_free                   (GdkColorContext *cc);
-
-gulong          gdk_color_context_get_pixel              (GdkColorContext *cc,
-                                                          gushort          red,
-                                                          gushort          green,
-                                                          gushort          blue,
-                                                          gint            *failed);
-void            gdk_color_context_get_pixels             (GdkColorContext *cc,
-                                                          gushort         *reds,
-                                                          gushort         *greens,
-                                                          gushort         *blues,
-                                                          gint             ncolors,
-                                                          gulong          *colors,
-                                                          gint            *nallocated);
-void            gdk_color_context_get_pixels_incremental (GdkColorContext *cc,
-                                                          gushort         *reds,
-                                                          gushort         *greens,
-                                                          gushort         *blues,
-                                                          gint             ncolors,
-                                                          gint            *used,
-                                                          gulong          *colors,
-                                                          gint            *nallocated);
-
-gint            gdk_color_context_query_color            (GdkColorContext *cc,
-                                                          GdkColor        *color);
-gint            gdk_color_context_query_colors           (GdkColorContext *cc,
-                                                          GdkColor        *colors,
-                                                          gint             num_colors);
-
-gint            gdk_color_context_add_palette            (GdkColorContext *cc,
-                                                          GdkColor        *palette,
-                                                          gint             num_palette);
-
-void            gdk_color_context_init_dither            (GdkColorContext *cc);
-void            gdk_color_context_free_dither            (GdkColorContext *cc);
-
-gulong          gdk_color_context_get_pixel_from_palette (GdkColorContext *cc,
-                                                          gushort         *red,
-                                                          gushort         *green,
-                                                          gushort         *blue,
-                                                          gint            *failed);
-guchar          gdk_color_context_get_index_from_palette (GdkColorContext *cc,
-                                                          gint            *red,
-                                                          gint            *green,
-                                                          gint            *blue,
-                                                          gint            *failed);
-/* Regions
- */
-
-GdkRegion*     gdk_region_new      (void);
-void          gdk_region_destroy   (GdkRegion     *region);
-
-void          gdk_region_get_clipbox(GdkRegion    *region,
-                                     GdkRectangle *rectangle);
-
-gboolean       gdk_region_empty            (GdkRegion     *region);
-gboolean       gdk_region_equal            (GdkRegion     *region1,
-                                    GdkRegion     *region2);
-gboolean       gdk_region_point_in  (GdkRegion    *region,
-                                    int                   x,
-                                    int                   y);
-GdkOverlapType gdk_region_rect_in   (GdkRegion    *region,
-                                    GdkRectangle  *rect);
-
-GdkRegion*     gdk_region_polygon   (GdkPoint      *points,
-                                    gint           npoints,
-                                    GdkFillRule    fill_rule);
-
-void          gdk_region_offset   (GdkRegion      *region,
-                                   gint           dx,
-                                   gint           dy);
-void          gdk_region_shrink   (GdkRegion      *region,
-                                   gint           dx,
-                                   gint           dy);
-
-GdkRegion*    gdk_region_union_with_rect  (GdkRegion     *region,
-                                          GdkRectangle   *rect);
-GdkRegion*    gdk_regions_intersect      (GdkRegion      *source1,
-                                          GdkRegion      *source2);
-GdkRegion*    gdk_regions_union                  (GdkRegion      *source1,
-                                          GdkRegion      *source2);
-GdkRegion*    gdk_regions_subtract       (GdkRegion      *source1,
-                                          GdkRegion      *source2);
-GdkRegion*    gdk_regions_xor            (GdkRegion      *source1,
-                                          GdkRegion      *source2);
-
-/* Threads
- */
+GType gdk_rectangle_get_type (void) G_GNUC_CONST;
 
-gboolean      gdk_threads_init  (void);
-void          gdk_threads_enter (void);
-void          gdk_threads_leave (void);
+#define GDK_TYPE_RECTANGLE (gdk_rectangle_get_type ())
 
-/* If the mainloop thread is in its select, wake it up. 
- * For GTK's idle handling 
+/* Conversion functions between wide char and multibyte strings. 
  */
-void          gdk_threads_wake (void);
+#ifndef GDK_DISABLE_DEPRECATED
+gchar     *gdk_wcstombs          (const GdkWChar   *src);
+gint       gdk_mbstowcs          (GdkWChar         *dest,
+                                 const gchar      *src,
+                                 gint              dest_max);
+#endif
 
 /* Miscellaneous */
-void     gdk_event_send_clientmessage_toall (GdkEvent    *event);
-
-/* Key values
- */
-gchar*   gdk_keyval_name                 (guint        keyval);
-guint    gdk_keyval_from_name            (const gchar *keyval_name);
-guint    gdk_keyval_to_upper             (guint        keyval);
-guint    gdk_keyval_to_lower             (guint        keyval);
-gboolean gdk_keyval_is_upper             (guint        keyval);
-gboolean gdk_keyval_is_lower             (guint        keyval);
-
-
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
+#ifndef GDK_MULTIHEAD_SAFE
+gboolean gdk_event_send_client_message      (GdkEvent       *event,
+                                            GdkNativeWindow winid);
+void     gdk_event_send_clientmessage_toall (GdkEvent  *event);
+#endif
+gboolean gdk_event_send_client_message_for_display (GdkDisplay *display,
+                                                   GdkEvent       *event,
+                                                   GdkNativeWindow winid);
+
+void gdk_notify_startup_complete (void);
+
+void gdk_notify_startup_complete_with_id (const gchar* startup_id);
+
+/* Threading
+ */
+
+#if !defined (GDK_DISABLE_DEPRECATED) || defined (GDK_COMPILATION)
+GDKVAR GMutex *gdk_threads_mutex; /* private */
+#endif
+
+GDKVAR GCallback gdk_threads_lock;
+GDKVAR GCallback gdk_threads_unlock;
+
+void     gdk_threads_enter                (void);
+void     gdk_threads_leave                (void);
+void     gdk_threads_init                 (void);
+void     gdk_threads_set_lock_functions   (GCallback enter_fn,
+                                          GCallback leave_fn);
+
+guint    gdk_threads_add_idle_full        (gint           priority,
+                                          GSourceFunc    function,
+                                          gpointer       data,
+                                          GDestroyNotify notify);
+guint    gdk_threads_add_idle             (GSourceFunc    function,
+                                          gpointer       data);
+guint    gdk_threads_add_timeout_full     (gint           priority,
+                                           guint          interval,
+                                           GSourceFunc    function,
+                                           gpointer       data,
+                                           GDestroyNotify notify);
+guint    gdk_threads_add_timeout          (guint          interval,
+                                           GSourceFunc    function,
+                                           gpointer       data);
+
+#ifdef G_THREADS_ENABLED
+#  define GDK_THREADS_ENTER()  G_STMT_START {  \
+      if (gdk_threads_lock)                    \
+        (*gdk_threads_lock) ();                        \
+   } G_STMT_END
+#  define GDK_THREADS_LEAVE()  G_STMT_START {  \
+      if (gdk_threads_unlock)                  \
+        (*gdk_threads_unlock) ();              \
+   } G_STMT_END
+#else  /* !G_THREADS_ENABLED */
+#  define GDK_THREADS_ENTER()
+#  define GDK_THREADS_LEAVE()
+#endif /* !G_THREADS_ENABLED */
+
+G_END_DECLS
 
 
 #endif /* __GDK_H__ */