Blame gdk/gdkwindow.h

Packit 98cdb6
/* GDK - The GIMP Drawing Kit
Packit 98cdb6
 * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
Packit 98cdb6
 *
Packit 98cdb6
 * This library is free software; you can redistribute it and/or
Packit 98cdb6
 * modify it under the terms of the GNU Lesser General Public
Packit 98cdb6
 * License as published by the Free Software Foundation; either
Packit 98cdb6
 * version 2 of the License, or (at your option) any later version.
Packit 98cdb6
 *
Packit 98cdb6
 * This library is distributed in the hope that it will be useful,
Packit 98cdb6
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit 98cdb6
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit 98cdb6
 * Lesser General Public License for more details.
Packit 98cdb6
 *
Packit 98cdb6
 * You should have received a copy of the GNU Lesser General Public
Packit 98cdb6
 * License along with this library; if not, write to the
Packit 98cdb6
 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Packit 98cdb6
 * Boston, MA 02111-1307, USA.
Packit 98cdb6
 */
Packit 98cdb6
Packit 98cdb6
/*
Packit 98cdb6
 * Modified by the GTK+ Team and others 1997-2000.  See the AUTHORS
Packit 98cdb6
 * file for a list of people on the GTK+ Team.  See the ChangeLog
Packit 98cdb6
 * files for a list of changes.  These files are distributed with
Packit 98cdb6
 * GTK+ at ftp://ftp.gtk.org/pub/gtk/.
Packit 98cdb6
 */
Packit 98cdb6
Packit 98cdb6
#ifndef __GDK_WINDOW_H__
Packit 98cdb6
#define __GDK_WINDOW_H__
Packit 98cdb6
Packit 98cdb6
#if defined(GTK_DISABLE_SINGLE_INCLUDES) && !defined (__GDK_H_INSIDE__) && !defined (GDK_COMPILATION)
Packit 98cdb6
#error "Only <gdk/gdk.h> can be included directly."
Packit 98cdb6
#endif
Packit 98cdb6
Packit 98cdb6
#include <gdk/gdkdrawable.h>
Packit 98cdb6
#include <gdk/gdktypes.h>
Packit 98cdb6
#include <gdk/gdkevents.h>
Packit 98cdb6
Packit 98cdb6
G_BEGIN_DECLS
Packit 98cdb6
Packit 98cdb6
typedef struct _GdkGeometry          GdkGeometry;
Packit 98cdb6
typedef struct _GdkWindowAttr        GdkWindowAttr;
Packit 98cdb6
typedef struct _GdkPointerHooks      GdkPointerHooks;
Packit 98cdb6
typedef struct _GdkWindowRedirect    GdkWindowRedirect;
Packit 98cdb6
Packit 98cdb6
/* Classes of windows.
Packit 98cdb6
 *   InputOutput: Almost every window should be of this type. Such windows
Packit 98cdb6
 *		  receive events and are also displayed on screen.
Packit 98cdb6
 *   InputOnly: Used only in special circumstances when events need to be
Packit 98cdb6
 *		stolen from another window or windows. Input only windows
Packit 98cdb6
 *		have no visible output, so they are handy for placing over
Packit 98cdb6
 *		top of a group of windows in order to grab the events (or
Packit 98cdb6
 *		filter the events) from those windows.
Packit 98cdb6
 */
Packit 98cdb6
typedef enum
Packit 98cdb6
{
Packit 98cdb6
  GDK_INPUT_OUTPUT,
Packit 98cdb6
  GDK_INPUT_ONLY
Packit 98cdb6
} GdkWindowClass;
Packit 98cdb6
Packit 98cdb6
/* Types of windows.
Packit 98cdb6
 *   Root: There is only 1 root window and it is initialized
Packit 98cdb6
 *	   at startup. Creating a window of type GDK_WINDOW_ROOT
Packit 98cdb6
 *	   is an error.
Packit 98cdb6
 *   Toplevel: Windows which interact with the window manager.
Packit 98cdb6
 *   Child: Windows which are children of some other type of window.
Packit 98cdb6
 *	    (Any other type of window). Most windows are child windows.
Packit 98cdb6
 *   Dialog: A special kind of toplevel window which interacts with
Packit 98cdb6
 *	     the window manager slightly differently than a regular
Packit 98cdb6
 *	     toplevel window. Dialog windows should be used for any
Packit 98cdb6
 *	     transient window.
Packit 98cdb6
 *   Foreign: A window that actually belongs to another application
Packit 98cdb6
 */
Packit 98cdb6
typedef enum
Packit 98cdb6
{
Packit 98cdb6
  GDK_WINDOW_ROOT,
Packit 98cdb6
  GDK_WINDOW_TOPLEVEL,
Packit 98cdb6
  GDK_WINDOW_CHILD,
Packit 98cdb6
  GDK_WINDOW_DIALOG,
Packit 98cdb6
  GDK_WINDOW_TEMP,
Packit 98cdb6
  GDK_WINDOW_FOREIGN,
Packit 98cdb6
  GDK_WINDOW_OFFSCREEN
Packit 98cdb6
} GdkWindowType;
Packit 98cdb6
Packit 98cdb6
/* Window attribute mask values.
Packit 98cdb6
 *   GDK_WA_TITLE: The "title" field is valid.
Packit 98cdb6
 *   GDK_WA_X: The "x" field is valid.
Packit 98cdb6
 *   GDK_WA_Y: The "y" field is valid.
Packit 98cdb6
 *   GDK_WA_CURSOR: The "cursor" field is valid.
Packit 98cdb6
 *   GDK_WA_COLORMAP: The "colormap" field is valid.
Packit 98cdb6
 *   GDK_WA_VISUAL: The "visual" field is valid.
Packit 98cdb6
 */
Packit 98cdb6
typedef enum
Packit 98cdb6
{
Packit 98cdb6
  GDK_WA_TITLE	   = 1 << 1,
Packit 98cdb6
  GDK_WA_X	   = 1 << 2,
Packit 98cdb6
  GDK_WA_Y	   = 1 << 3,
Packit 98cdb6
  GDK_WA_CURSOR	   = 1 << 4,
Packit 98cdb6
  GDK_WA_COLORMAP  = 1 << 5,
Packit 98cdb6
  GDK_WA_VISUAL	   = 1 << 6,
Packit 98cdb6
  GDK_WA_WMCLASS   = 1 << 7,
Packit 98cdb6
  GDK_WA_NOREDIR   = 1 << 8,
Packit 98cdb6
  GDK_WA_TYPE_HINT = 1 << 9
Packit 98cdb6
} GdkWindowAttributesType;
Packit 98cdb6
Packit 98cdb6
/* Size restriction enumeration.
Packit 98cdb6
 */
Packit 98cdb6
typedef enum
Packit 98cdb6
{
Packit 98cdb6
  GDK_HINT_POS	       = 1 << 0,
Packit 98cdb6
  GDK_HINT_MIN_SIZE    = 1 << 1,
Packit 98cdb6
  GDK_HINT_MAX_SIZE    = 1 << 2,
Packit 98cdb6
  GDK_HINT_BASE_SIZE   = 1 << 3,
Packit 98cdb6
  GDK_HINT_ASPECT      = 1 << 4,
Packit 98cdb6
  GDK_HINT_RESIZE_INC  = 1 << 5,
Packit 98cdb6
  GDK_HINT_WIN_GRAVITY = 1 << 6,
Packit 98cdb6
  GDK_HINT_USER_POS    = 1 << 7,
Packit 98cdb6
  GDK_HINT_USER_SIZE   = 1 << 8
Packit 98cdb6
} GdkWindowHints;
Packit 98cdb6
Packit 98cdb6
Packit 98cdb6
/* Window type hints.
Packit 98cdb6
 * These are hints for the window manager that indicate
Packit 98cdb6
 * what type of function the window has. The window manager
Packit 98cdb6
 * can use this when determining decoration and behaviour
Packit 98cdb6
 * of the window. The hint must be set before mapping the
Packit 98cdb6
 * window.
Packit 98cdb6
 *
Packit 98cdb6
 *   Normal: Normal toplevel window
Packit 98cdb6
 *   Dialog: Dialog window
Packit 98cdb6
 *   Menu: Window used to implement a menu.
Packit 98cdb6
 *   Toolbar: Window used to implement toolbars.
Packit 98cdb6
 */
Packit 98cdb6
typedef enum
Packit 98cdb6
{
Packit 98cdb6
  GDK_WINDOW_TYPE_HINT_NORMAL,
Packit 98cdb6
  GDK_WINDOW_TYPE_HINT_DIALOG,
Packit 98cdb6
  GDK_WINDOW_TYPE_HINT_MENU,		/* Torn off menu */
Packit 98cdb6
  GDK_WINDOW_TYPE_HINT_TOOLBAR,
Packit 98cdb6
  GDK_WINDOW_TYPE_HINT_SPLASHSCREEN,
Packit 98cdb6
  GDK_WINDOW_TYPE_HINT_UTILITY,
Packit 98cdb6
  GDK_WINDOW_TYPE_HINT_DOCK,
Packit 98cdb6
  GDK_WINDOW_TYPE_HINT_DESKTOP,
Packit 98cdb6
  GDK_WINDOW_TYPE_HINT_DROPDOWN_MENU,	/* A drop down menu (from a menubar) */
Packit 98cdb6
  GDK_WINDOW_TYPE_HINT_POPUP_MENU,	/* A popup menu (from right-click) */
Packit 98cdb6
  GDK_WINDOW_TYPE_HINT_TOOLTIP,
Packit 98cdb6
  GDK_WINDOW_TYPE_HINT_NOTIFICATION,
Packit 98cdb6
  GDK_WINDOW_TYPE_HINT_COMBO,
Packit 98cdb6
  GDK_WINDOW_TYPE_HINT_DND
Packit 98cdb6
} GdkWindowTypeHint;
Packit 98cdb6
Packit 98cdb6
/* The next two enumeration values current match the
Packit 98cdb6
 * Motif constants. If this is changed, the implementation
Packit 98cdb6
 * of gdk_window_set_decorations/gdk_window_set_functions
Packit 98cdb6
 * will need to change as well.
Packit 98cdb6
 */
Packit 98cdb6
typedef enum
Packit 98cdb6
{
Packit 98cdb6
  GDK_DECOR_ALL		= 1 << 0,
Packit 98cdb6
  GDK_DECOR_BORDER	= 1 << 1,
Packit 98cdb6
  GDK_DECOR_RESIZEH	= 1 << 2,
Packit 98cdb6
  GDK_DECOR_TITLE	= 1 << 3,
Packit 98cdb6
  GDK_DECOR_MENU	= 1 << 4,
Packit 98cdb6
  GDK_DECOR_MINIMIZE	= 1 << 5,
Packit 98cdb6
  GDK_DECOR_MAXIMIZE	= 1 << 6
Packit 98cdb6
} GdkWMDecoration;
Packit 98cdb6
Packit 98cdb6
typedef enum
Packit 98cdb6
{
Packit 98cdb6
  GDK_FUNC_ALL		= 1 << 0,
Packit 98cdb6
  GDK_FUNC_RESIZE	= 1 << 1,
Packit 98cdb6
  GDK_FUNC_MOVE		= 1 << 2,
Packit 98cdb6
  GDK_FUNC_MINIMIZE	= 1 << 3,
Packit 98cdb6
  GDK_FUNC_MAXIMIZE	= 1 << 4,
Packit 98cdb6
  GDK_FUNC_CLOSE	= 1 << 5
Packit 98cdb6
} GdkWMFunction;
Packit 98cdb6
Packit 98cdb6
/* Currently, these are the same values numerically as in the
Packit 98cdb6
 * X protocol. If you change that, gdkwindow-x11.c/gdk_window_set_geometry_hints()
Packit 98cdb6
 * will need fixing.
Packit 98cdb6
 */
Packit 98cdb6
typedef enum
Packit 98cdb6
{
Packit 98cdb6
  GDK_GRAVITY_NORTH_WEST = 1,
Packit 98cdb6
  GDK_GRAVITY_NORTH,
Packit 98cdb6
  GDK_GRAVITY_NORTH_EAST,
Packit 98cdb6
  GDK_GRAVITY_WEST,
Packit 98cdb6
  GDK_GRAVITY_CENTER,
Packit 98cdb6
  GDK_GRAVITY_EAST,
Packit 98cdb6
  GDK_GRAVITY_SOUTH_WEST,
Packit 98cdb6
  GDK_GRAVITY_SOUTH,
Packit 98cdb6
  GDK_GRAVITY_SOUTH_EAST,
Packit 98cdb6
  GDK_GRAVITY_STATIC
Packit 98cdb6
} GdkGravity;
Packit 98cdb6
Packit 98cdb6
Packit 98cdb6
typedef enum
Packit 98cdb6
{
Packit 98cdb6
  GDK_WINDOW_EDGE_NORTH_WEST,
Packit 98cdb6
  GDK_WINDOW_EDGE_NORTH,
Packit 98cdb6
  GDK_WINDOW_EDGE_NORTH_EAST,
Packit 98cdb6
  GDK_WINDOW_EDGE_WEST,
Packit 98cdb6
  GDK_WINDOW_EDGE_EAST,
Packit 98cdb6
  GDK_WINDOW_EDGE_SOUTH_WEST,
Packit 98cdb6
  GDK_WINDOW_EDGE_SOUTH,
Packit 98cdb6
  GDK_WINDOW_EDGE_SOUTH_EAST  
Packit 98cdb6
} GdkWindowEdge;
Packit 98cdb6
Packit 98cdb6
struct _GdkWindowAttr
Packit 98cdb6
{
Packit 98cdb6
  gchar *title;
Packit 98cdb6
  gint event_mask;
Packit 98cdb6
  gint x, y;
Packit 98cdb6
  gint width;
Packit 98cdb6
  gint height;
Packit 98cdb6
  GdkWindowClass wclass;
Packit 98cdb6
  GdkVisual *visual;
Packit 98cdb6
  GdkColormap *colormap;
Packit 98cdb6
  GdkWindowType window_type;
Packit 98cdb6
  GdkCursor *cursor;
Packit 98cdb6
  gchar *wmclass_name;
Packit 98cdb6
  gchar *wmclass_class;
Packit 98cdb6
  gboolean override_redirect;
Packit 98cdb6
  GdkWindowTypeHint type_hint;
Packit 98cdb6
};
Packit 98cdb6
Packit 98cdb6
struct _GdkGeometry
Packit 98cdb6
{
Packit 98cdb6
  gint min_width;
Packit 98cdb6
  gint min_height;
Packit 98cdb6
  gint max_width;
Packit 98cdb6
  gint max_height;
Packit 98cdb6
  gint base_width;
Packit 98cdb6
  gint base_height;
Packit 98cdb6
  gint width_inc;
Packit 98cdb6
  gint height_inc;
Packit 98cdb6
  gdouble min_aspect;
Packit 98cdb6
  gdouble max_aspect;
Packit 98cdb6
  GdkGravity win_gravity;
Packit 98cdb6
};
Packit 98cdb6
Packit 98cdb6
struct _GdkPointerHooks 
Packit 98cdb6
{
Packit 98cdb6
  GdkWindow* (*get_pointer)       (GdkWindow	   *window,
Packit 98cdb6
			           gint	           *x,
Packit 98cdb6
			           gint   	   *y,
Packit 98cdb6
			           GdkModifierType *mask);
Packit 98cdb6
  GdkWindow* (*window_at_pointer) (GdkScreen       *screen, /* unused */
Packit 98cdb6
                                   gint            *win_x,
Packit 98cdb6
                                   gint            *win_y);
Packit 98cdb6
};
Packit 98cdb6
Packit 98cdb6
typedef struct _GdkWindowObject GdkWindowObject;
Packit 98cdb6
typedef struct _GdkWindowObjectClass GdkWindowObjectClass;
Packit 98cdb6
Packit 98cdb6
#define GDK_TYPE_WINDOW              (gdk_window_object_get_type ())
Packit 98cdb6
#define GDK_WINDOW(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_WINDOW, GdkWindow))
Packit 98cdb6
#define GDK_WINDOW_CLASS(klass)      (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_WINDOW, GdkWindowObjectClass))
Packit 98cdb6
#define GDK_IS_WINDOW(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_WINDOW))
Packit 98cdb6
#define GDK_IS_WINDOW_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_WINDOW))
Packit 98cdb6
#define GDK_WINDOW_GET_CLASS(obj)    (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_WINDOW, GdkWindowObjectClass))
Packit 98cdb6
Packit 98cdb6
#ifndef GDK_DISABLE_DEPRECATED
Packit 98cdb6
#define GDK_WINDOW_OBJECT(object)    ((GdkWindowObject *) GDK_WINDOW (object))
Packit 98cdb6
Packit 98cdb6
#ifndef GDK_COMPILATION
Packit 98cdb6
Packit 98cdb6
/* We used to export all of GdkWindowObject, but we don't want to keep doing so.
Packit 98cdb6
   However, there are various parts of it accessed by macros and other code,
Packit 98cdb6
   so we keep the old exported version public, but in reality it is larger. */
Packit 98cdb6
Packit 98cdb6
/**** DON'T CHANGE THIS STRUCT, the real version is in gdkinternals.h ****/
Packit 98cdb6
struct _GdkWindowObject
Packit 98cdb6
{
Packit 98cdb6
  GdkDrawable parent_instance;
Packit 98cdb6
Packit 98cdb6
  GdkDrawable *GSEAL (impl); /* window-system-specific delegate object */
Packit 98cdb6
  
Packit 98cdb6
  GdkWindowObject *GSEAL (parent);
Packit 98cdb6
Packit 98cdb6
  gpointer GSEAL (user_data);
Packit 98cdb6
Packit 98cdb6
  gint GSEAL (x);
Packit 98cdb6
  gint GSEAL (y);
Packit 98cdb6
  
Packit 98cdb6
  gint GSEAL (extension_events);
Packit 98cdb6
Packit 98cdb6
  GList *GSEAL (filters);
Packit 98cdb6
  GList *GSEAL (children);
Packit 98cdb6
Packit 98cdb6
  GdkColor GSEAL (bg_color);
Packit 98cdb6
  GdkPixmap *GSEAL (bg_pixmap);
Packit 98cdb6
  
Packit 98cdb6
  GSList *GSEAL (paint_stack);
Packit 98cdb6
  
Packit 98cdb6
  GdkRegion *GSEAL (update_area);
Packit 98cdb6
  guint GSEAL (update_freeze_count);
Packit 98cdb6
  
Packit 98cdb6
  guint8 GSEAL (window_type);
Packit 98cdb6
  guint8 GSEAL (depth);
Packit 98cdb6
  guint8 GSEAL (resize_count);
Packit 98cdb6
Packit 98cdb6
  GdkWindowState GSEAL (state);
Packit 98cdb6
  
Packit 98cdb6
  guint GSEAL (guffaw_gravity) : 1;
Packit 98cdb6
  guint GSEAL (input_only) : 1;
Packit 98cdb6
  guint GSEAL (modal_hint) : 1;
Packit 98cdb6
  guint GSEAL (composited) : 1;
Packit 98cdb6
  
Packit 98cdb6
  guint GSEAL (destroyed) : 2;
Packit 98cdb6
Packit 98cdb6
  guint GSEAL (accept_focus) : 1;
Packit 98cdb6
  guint GSEAL (focus_on_map) : 1;
Packit 98cdb6
  guint GSEAL (shaped) : 1;
Packit 98cdb6
  
Packit 98cdb6
  GdkEventMask GSEAL (event_mask);
Packit 98cdb6
Packit 98cdb6
  guint GSEAL (update_and_descendants_freeze_count);
Packit 98cdb6
Packit 98cdb6
  GdkWindowRedirect *GSEAL (redirect);
Packit 98cdb6
};
Packit 98cdb6
#endif
Packit 98cdb6
#endif
Packit 98cdb6
Packit 98cdb6
struct _GdkWindowObjectClass
Packit 98cdb6
{
Packit 98cdb6
  GdkDrawableClass parent_class;
Packit 98cdb6
};
Packit 98cdb6
Packit 98cdb6
/* Windows
Packit 98cdb6
 */
Packit 98cdb6
GType         gdk_window_object_get_type       (void) G_GNUC_CONST;
Packit 98cdb6
GdkWindow*    gdk_window_new                   (GdkWindow     *parent,
Packit 98cdb6
                                                GdkWindowAttr *attributes,
Packit 98cdb6
                                                gint           attributes_mask);
Packit 98cdb6
void          gdk_window_destroy               (GdkWindow     *window);
Packit 98cdb6
GdkWindowType gdk_window_get_window_type       (GdkWindow     *window);
Packit 98cdb6
gboolean      gdk_window_is_destroyed          (GdkWindow     *window);
Packit 98cdb6
Packit 98cdb6
GdkScreen*    gdk_window_get_screen            (GdkWindow     *window);
Packit 98cdb6
GdkDisplay*   gdk_window_get_display           (GdkWindow     *window);
Packit 98cdb6
GdkVisual*    gdk_window_get_visual            (GdkWindow     *window);
Packit 98cdb6
int           gdk_window_get_width             (GdkWindow     *window);
Packit 98cdb6
int           gdk_window_get_height            (GdkWindow     *window);
Packit 98cdb6
Packit 98cdb6
GdkWindow*    gdk_window_at_pointer            (gint          *win_x,
Packit 98cdb6
                                                gint          *win_y);
Packit 98cdb6
void          gdk_window_show                  (GdkWindow     *window);
Packit 98cdb6
void          gdk_window_hide                  (GdkWindow     *window);
Packit 98cdb6
void          gdk_window_withdraw              (GdkWindow     *window);
Packit 98cdb6
void          gdk_window_show_unraised         (GdkWindow     *window);
Packit 98cdb6
void          gdk_window_move                  (GdkWindow     *window,
Packit 98cdb6
                                                gint           x,
Packit 98cdb6
                                                gint           y);
Packit 98cdb6
void          gdk_window_resize                (GdkWindow     *window,
Packit 98cdb6
                                                gint           width,
Packit 98cdb6
                                                gint           height);
Packit 98cdb6
void          gdk_window_move_resize           (GdkWindow     *window,
Packit 98cdb6
                                                gint           x,
Packit 98cdb6
                                                gint           y,
Packit 98cdb6
                                                gint           width,
Packit 98cdb6
                                                gint           height);
Packit 98cdb6
void          gdk_window_reparent              (GdkWindow     *window,
Packit 98cdb6
                                                GdkWindow     *new_parent,
Packit 98cdb6
                                                gint           x,
Packit 98cdb6
                                                gint           y);
Packit 98cdb6
void          gdk_window_clear                 (GdkWindow     *window);
Packit 98cdb6
void          gdk_window_clear_area            (GdkWindow     *window,
Packit 98cdb6
                                                gint           x,
Packit 98cdb6
                                                gint           y,
Packit 98cdb6
                                                gint           width,
Packit 98cdb6
                                                gint           height);
Packit 98cdb6
void          gdk_window_clear_area_e          (GdkWindow     *window,
Packit 98cdb6
                                                gint           x,
Packit 98cdb6
                                                gint           y,
Packit 98cdb6
                                                gint           width,
Packit 98cdb6
                                                gint           height);
Packit 98cdb6
void          gdk_window_raise                 (GdkWindow     *window);
Packit 98cdb6
void          gdk_window_lower                 (GdkWindow     *window);
Packit 98cdb6
void          gdk_window_restack               (GdkWindow     *window,
Packit 98cdb6
						GdkWindow     *sibling,
Packit 98cdb6
						gboolean       above);
Packit 98cdb6
void          gdk_window_focus                 (GdkWindow     *window,
Packit 98cdb6
                                                guint32        timestamp);
Packit 98cdb6
void          gdk_window_set_user_data         (GdkWindow     *window,
Packit 98cdb6
                                                gpointer       user_data);
Packit 98cdb6
void          gdk_window_set_override_redirect (GdkWindow     *window,
Packit 98cdb6
                                                gboolean       override_redirect);
Packit 98cdb6
gboolean      gdk_window_get_accept_focus      (GdkWindow     *window);
Packit 98cdb6
void          gdk_window_set_accept_focus      (GdkWindow     *window,
Packit 98cdb6
					        gboolean       accept_focus);
Packit 98cdb6
gboolean      gdk_window_get_focus_on_map      (GdkWindow     *window);
Packit 98cdb6
void          gdk_window_set_focus_on_map      (GdkWindow     *window,
Packit 98cdb6
					        gboolean       focus_on_map);
Packit 98cdb6
void          gdk_window_add_filter            (GdkWindow     *window,
Packit 98cdb6
                                                GdkFilterFunc  function,
Packit 98cdb6
                                                gpointer       data);
Packit 98cdb6
void          gdk_window_remove_filter         (GdkWindow     *window,
Packit 98cdb6
                                                GdkFilterFunc  function,
Packit 98cdb6
                                                gpointer       data);
Packit 98cdb6
void          gdk_window_scroll                (GdkWindow     *window,
Packit 98cdb6
                                                gint           dx,
Packit 98cdb6
                                                gint           dy);
Packit 98cdb6
void	      gdk_window_move_region           (GdkWindow       *window,
Packit 98cdb6
						const GdkRegion *region,
Packit 98cdb6
						gint             dx,
Packit 98cdb6
						gint             dy);
Packit 98cdb6
gboolean      gdk_window_ensure_native        (GdkWindow       *window);
Packit 98cdb6
Packit 98cdb6
/* 
Packit 98cdb6
 * This allows for making shaped (partially transparent) windows
Packit 98cdb6
 * - cool feature, needed for Drag and Drag for example.
Packit 98cdb6
 *  The shape_mask can be the mask
Packit 98cdb6
 *  from gdk_pixmap_create_from_xpm.   Stefan Wille
Packit 98cdb6
 */
Packit 98cdb6
void gdk_window_shape_combine_mask  (GdkWindow	      *window,
Packit 98cdb6
                                     GdkBitmap	      *mask,
Packit 98cdb6
                                     gint	       x,
Packit 98cdb6
                                     gint	       y);
Packit 98cdb6
void gdk_window_shape_combine_region (GdkWindow	      *window,
Packit 98cdb6
                                      const GdkRegion *shape_region,
Packit 98cdb6
                                      gint	       offset_x,
Packit 98cdb6
                                      gint	       offset_y);
Packit 98cdb6
Packit 98cdb6
/*
Packit 98cdb6
 * This routine allows you to quickly take the shapes of all the child windows
Packit 98cdb6
 * of a window and use their shapes as the shape mask for this window - useful
Packit 98cdb6
 * for container windows that dont want to look like a big box
Packit 98cdb6
 * 
Packit 98cdb6
 * - Raster
Packit 98cdb6
 */
Packit 98cdb6
void gdk_window_set_child_shapes (GdkWindow *window);
Packit 98cdb6
Packit 98cdb6
gboolean gdk_window_get_composited (GdkWindow *window);
Packit 98cdb6
void gdk_window_set_composited   (GdkWindow *window,
Packit 98cdb6
                                  gboolean   composited);
Packit 98cdb6
Packit 98cdb6
/*
Packit 98cdb6
 * This routine allows you to merge (ie ADD) child shapes to your
Packit 98cdb6
 * own window's shape keeping its current shape and ADDING the child
Packit 98cdb6
 * shapes to it.
Packit 98cdb6
 * 
Packit 98cdb6
 * - Raster
Packit 98cdb6
 */
Packit 98cdb6
void gdk_window_merge_child_shapes         (GdkWindow       *window);
Packit 98cdb6
Packit 98cdb6
void gdk_window_input_shape_combine_mask   (GdkWindow       *window,
Packit 98cdb6
					    GdkBitmap       *mask,
Packit 98cdb6
					    gint             x,
Packit 98cdb6
					    gint             y);
Packit 98cdb6
void gdk_window_input_shape_combine_region (GdkWindow       *window,
Packit 98cdb6
                                            const GdkRegion *shape_region,
Packit 98cdb6
                                            gint             offset_x,
Packit 98cdb6
                                            gint             offset_y);
Packit 98cdb6
void gdk_window_set_child_input_shapes     (GdkWindow       *window);
Packit 98cdb6
void gdk_window_merge_child_input_shapes   (GdkWindow       *window);
Packit 98cdb6
Packit 98cdb6
Packit 98cdb6
/*
Packit 98cdb6
 * Check if a window has been shown, and whether all its
Packit 98cdb6
 * parents up to a toplevel have been shown, respectively.
Packit 98cdb6
 * Note that a window that is_viewable below is not necessarily
Packit 98cdb6
 * viewable in the X sense.
Packit 98cdb6
 */
Packit 98cdb6
gboolean gdk_window_is_visible     (GdkWindow *window);
Packit 98cdb6
gboolean gdk_window_is_viewable    (GdkWindow *window);
Packit 98cdb6
gboolean gdk_window_is_input_only  (GdkWindow *window);
Packit 98cdb6
gboolean gdk_window_is_shaped      (GdkWindow *window);
Packit 98cdb6
Packit 98cdb6
GdkWindowState gdk_window_get_state (GdkWindow *window);
Packit 98cdb6
Packit 98cdb6
/* Set static bit gravity on the parent, and static
Packit 98cdb6
 * window gravity on all children.
Packit 98cdb6
 */
Packit 98cdb6
gboolean gdk_window_set_static_gravities (GdkWindow *window,
Packit 98cdb6
					  gboolean   use_static);   
Packit 98cdb6
Packit 98cdb6
/* Functions to create/lookup windows from their native equivalents */ 
Packit 98cdb6
#if !defined(GDK_DISABLE_DEPRECATED) || defined(GDK_COMPILATION)
Packit 98cdb6
#ifndef GDK_MULTIHEAD_SAFE
Packit 98cdb6
GdkWindow*    gdk_window_foreign_new (GdkNativeWindow anid);
Packit 98cdb6
GdkWindow*    gdk_window_lookup      (GdkNativeWindow anid);
Packit 98cdb6
#endif
Packit 98cdb6
GdkWindow    *gdk_window_foreign_new_for_display (GdkDisplay      *display,
Packit 98cdb6
						  GdkNativeWindow  anid);
Packit 98cdb6
GdkWindow*    gdk_window_lookup_for_display (GdkDisplay      *display,
Packit 98cdb6
					     GdkNativeWindow  anid);
Packit 98cdb6
#endif
Packit 98cdb6
Packit 98cdb6
Packit 98cdb6
/* GdkWindow */
Packit 98cdb6
Packit 98cdb6
gboolean      gdk_window_has_native      (GdkWindow       *window);
Packit 98cdb6
#ifndef GDK_DISABLE_DEPRECATED
Packit 98cdb6
void	      gdk_window_set_hints	 (GdkWindow	  *window,
Packit 98cdb6
					  gint		   x,
Packit 98cdb6
					  gint		   y,
Packit 98cdb6
					  gint		   min_width,
Packit 98cdb6
					  gint		   min_height,
Packit 98cdb6
					  gint		   max_width,
Packit 98cdb6
					  gint		   max_height,
Packit 98cdb6
					  gint		   flags);
Packit 98cdb6
#endif
Packit 98cdb6
void              gdk_window_set_type_hint (GdkWindow        *window,
Packit 98cdb6
                                            GdkWindowTypeHint hint);
Packit 98cdb6
GdkWindowTypeHint gdk_window_get_type_hint (GdkWindow        *window);
Packit 98cdb6
Packit 98cdb6
gboolean      gdk_window_get_modal_hint   (GdkWindow       *window);
Packit 98cdb6
void          gdk_window_set_modal_hint   (GdkWindow       *window,
Packit 98cdb6
                                           gboolean         modal);
Packit 98cdb6
Packit 98cdb6
void gdk_window_set_skip_taskbar_hint (GdkWindow *window,
Packit 98cdb6
                                       gboolean   skips_taskbar);
Packit 98cdb6
void gdk_window_set_skip_pager_hint   (GdkWindow *window,
Packit 98cdb6
                                       gboolean   skips_pager);
Packit 98cdb6
void gdk_window_set_urgency_hint      (GdkWindow *window,
Packit 98cdb6
				       gboolean   urgent);
Packit 98cdb6
Packit 98cdb6
void          gdk_window_set_geometry_hints (GdkWindow          *window,
Packit 98cdb6
					     const GdkGeometry  *geometry,
Packit 98cdb6
					     GdkWindowHints      geom_mask);
Packit 98cdb6
#if !defined(GDK_DISABLE_DEPRECATED) || defined(GDK_COMPILATION)
Packit 98cdb6
void          gdk_set_sm_client_id          (const gchar        *sm_client_id);
Packit 98cdb6
#endif
Packit 98cdb6
Packit 98cdb6
void	      gdk_window_begin_paint_rect   (GdkWindow          *window,
Packit 98cdb6
					     const GdkRectangle *rectangle);
Packit 98cdb6
void	      gdk_window_begin_paint_region (GdkWindow          *window,
Packit 98cdb6
					     const GdkRegion    *region);
Packit 98cdb6
void	      gdk_window_end_paint          (GdkWindow          *window);
Packit 98cdb6
void	      gdk_window_flush             (GdkWindow          *window);
Packit 98cdb6
Packit 98cdb6
void	      gdk_window_set_title	   (GdkWindow	  *window,
Packit 98cdb6
					    const gchar	  *title);
Packit 98cdb6
void          gdk_window_set_role          (GdkWindow     *window,
Packit 98cdb6
					    const gchar   *role);
Packit 98cdb6
void          gdk_window_set_startup_id    (GdkWindow     *window,
Packit 98cdb6
					    const gchar   *startup_id);
Packit 98cdb6
void          gdk_window_set_transient_for (GdkWindow     *window,
Packit 98cdb6
					    GdkWindow     *parent);
Packit 98cdb6
void	      gdk_window_set_background	 (GdkWindow	  *window,
Packit 98cdb6
					  const GdkColor  *color);
Packit 98cdb6
void	      gdk_window_set_back_pixmap (GdkWindow	  *window,
Packit 98cdb6
					  GdkPixmap	  *pixmap,
Packit 98cdb6
					  gboolean	   parent_relative);
Packit 98cdb6
cairo_pattern_t *gdk_window_get_background_pattern (GdkWindow     *window);
Packit 98cdb6
Packit 98cdb6
void	      gdk_window_set_cursor	 (GdkWindow	  *window,
Packit 98cdb6
					  GdkCursor	  *cursor);
Packit 98cdb6
GdkCursor    *gdk_window_get_cursor      (GdkWindow       *window);
Packit 98cdb6
void	      gdk_window_get_user_data	 (GdkWindow	  *window,
Packit 98cdb6
					  gpointer	  *data);
Packit 98cdb6
void	      gdk_window_get_geometry	 (GdkWindow	  *window,
Packit 98cdb6
					  gint		  *x,
Packit 98cdb6
					  gint		  *y,
Packit 98cdb6
					  gint		  *width,
Packit 98cdb6
					  gint		  *height,
Packit 98cdb6
					  gint		  *depth);
Packit 98cdb6
void	      gdk_window_get_position	 (GdkWindow	  *window,
Packit 98cdb6
					  gint		  *x,
Packit 98cdb6
					  gint		  *y);
Packit 98cdb6
gint	      gdk_window_get_origin	 (GdkWindow	  *window,
Packit 98cdb6
					  gint		  *x,
Packit 98cdb6
					  gint		  *y);
Packit 98cdb6
void	      gdk_window_get_root_coords (GdkWindow	  *window,
Packit 98cdb6
					  gint             x,
Packit 98cdb6
					  gint             y,
Packit 98cdb6
					  gint		  *root_x,
Packit 98cdb6
					  gint		  *root_y);
Packit 98cdb6
void       gdk_window_coords_to_parent   (GdkWindow       *window,
Packit 98cdb6
                                          gdouble          x,
Packit 98cdb6
                                          gdouble          y,
Packit 98cdb6
                                          gdouble         *parent_x,
Packit 98cdb6
                                          gdouble         *parent_y);
Packit 98cdb6
void       gdk_window_coords_from_parent (GdkWindow       *window,
Packit 98cdb6
                                          gdouble          parent_x,
Packit 98cdb6
                                          gdouble          parent_y,
Packit 98cdb6
                                          gdouble         *x,
Packit 98cdb6
                                          gdouble         *y);
Packit 98cdb6
Packit 98cdb6
#if !defined (GDK_DISABLE_DEPRECATED) || defined (GDK_COMPILATION)
Packit 98cdb6
/* Used by gtk_handle_box_button_changed () */
Packit 98cdb6
gboolean      gdk_window_get_deskrelative_origin (GdkWindow	  *window,
Packit 98cdb6
					  gint		  *x,
Packit 98cdb6
					  gint		  *y);
Packit 98cdb6
#endif
Packit 98cdb6
Packit 98cdb6
void	      gdk_window_get_root_origin (GdkWindow	  *window,
Packit 98cdb6
					  gint		  *x,
Packit 98cdb6
					  gint		  *y);
Packit 98cdb6
void          gdk_window_get_frame_extents (GdkWindow     *window,
Packit 98cdb6
                                            GdkRectangle  *rect);
Packit 98cdb6
GdkWindow*    gdk_window_get_pointer	 (GdkWindow	  *window,
Packit 98cdb6
					  gint		  *x,
Packit 98cdb6
					  gint		  *y,
Packit 98cdb6
					  GdkModifierType *mask);
Packit 98cdb6
GdkWindow *   gdk_window_get_parent      (GdkWindow       *window);
Packit 98cdb6
GdkWindow *   gdk_window_get_toplevel    (GdkWindow       *window);
Packit 98cdb6
Packit 98cdb6
GdkWindow *   gdk_window_get_effective_parent   (GdkWindow *window);
Packit 98cdb6
GdkWindow *   gdk_window_get_effective_toplevel (GdkWindow *window);
Packit 98cdb6
Packit 98cdb6
GList *	      gdk_window_get_children	 (GdkWindow	  *window);
Packit 98cdb6
GList *       gdk_window_peek_children   (GdkWindow       *window);
Packit 98cdb6
GdkEventMask  gdk_window_get_events	 (GdkWindow	  *window);
Packit 98cdb6
void	      gdk_window_set_events	 (GdkWindow	  *window,
Packit 98cdb6
					  GdkEventMask	   event_mask);
Packit 98cdb6
Packit 98cdb6
void          gdk_window_set_icon_list   (GdkWindow       *window,
Packit 98cdb6
					  GList           *pixbufs);
Packit 98cdb6
void	      gdk_window_set_icon	 (GdkWindow	  *window, 
Packit 98cdb6
					  GdkWindow	  *icon_window,
Packit 98cdb6
					  GdkPixmap	  *pixmap,
Packit 98cdb6
					  GdkBitmap	  *mask);
Packit 98cdb6
void	      gdk_window_set_icon_name	 (GdkWindow	  *window, 
Packit 98cdb6
					  const gchar	  *name);
Packit 98cdb6
void	      gdk_window_set_group	 (GdkWindow	  *window, 
Packit 98cdb6
					  GdkWindow	  *leader);
Packit 98cdb6
GdkWindow*    gdk_window_get_group	 (GdkWindow	  *window);
Packit 98cdb6
void	      gdk_window_set_decorations (GdkWindow	  *window,
Packit 98cdb6
					  GdkWMDecoration  decorations);
Packit 98cdb6
gboolean      gdk_window_get_decorations (GdkWindow       *window,
Packit 98cdb6
					  GdkWMDecoration *decorations);
Packit 98cdb6
void	      gdk_window_set_functions	 (GdkWindow	  *window,
Packit 98cdb6
					  GdkWMFunction	   functions);
Packit 98cdb6
#if !defined(GDK_MULTIHEAD_SAFE) && !defined(GDK_DISABLE_DEPRECATED)
Packit 98cdb6
GList *       gdk_window_get_toplevels   (void);
Packit 98cdb6
#endif
Packit 98cdb6
Packit 98cdb6
cairo_surface_t *
Packit 98cdb6
              gdk_window_create_similar_surface (GdkWindow *window,
Packit 98cdb6
                                          cairo_content_t  content,
Packit 98cdb6
                                          int              width,
Packit 98cdb6
                                          int              height);
Packit 98cdb6
Packit 98cdb6
void          gdk_window_beep            (GdkWindow       *window);
Packit 98cdb6
void          gdk_window_iconify         (GdkWindow       *window);
Packit 98cdb6
void          gdk_window_deiconify       (GdkWindow       *window);
Packit 98cdb6
void          gdk_window_stick           (GdkWindow       *window);
Packit 98cdb6
void          gdk_window_unstick         (GdkWindow       *window);
Packit 98cdb6
void          gdk_window_maximize        (GdkWindow       *window);
Packit 98cdb6
void          gdk_window_unmaximize      (GdkWindow       *window);
Packit 98cdb6
void          gdk_window_fullscreen      (GdkWindow       *window);
Packit 98cdb6
void          gdk_window_unfullscreen    (GdkWindow       *window);
Packit 98cdb6
void          gdk_window_set_keep_above  (GdkWindow       *window,
Packit 98cdb6
                                          gboolean         setting);
Packit 98cdb6
void          gdk_window_set_keep_below  (GdkWindow       *window,
Packit 98cdb6
                                          gboolean         setting);
Packit 98cdb6
void          gdk_window_set_opacity     (GdkWindow       *window,
Packit 98cdb6
                                          gdouble          opacity);
Packit 98cdb6
void          gdk_window_register_dnd    (GdkWindow       *window);
Packit 98cdb6
Packit 98cdb6
void gdk_window_begin_resize_drag (GdkWindow     *window,
Packit 98cdb6
                                   GdkWindowEdge  edge,
Packit 98cdb6
                                   gint           button,
Packit 98cdb6
                                   gint           root_x,
Packit 98cdb6
                                   gint           root_y,
Packit 98cdb6
                                   guint32        timestamp);
Packit 98cdb6
void gdk_window_begin_move_drag   (GdkWindow     *window,
Packit 98cdb6
                                   gint           button,
Packit 98cdb6
                                   gint           root_x,
Packit 98cdb6
                                   gint           root_y,
Packit 98cdb6
                                   guint32        timestamp);
Packit 98cdb6
Packit 98cdb6
/* Interface for dirty-region queueing */
Packit 98cdb6
void       gdk_window_invalidate_rect           (GdkWindow          *window,
Packit 98cdb6
					         const GdkRectangle *rect,
Packit 98cdb6
					         gboolean            invalidate_children);
Packit 98cdb6
void       gdk_window_invalidate_region         (GdkWindow          *window,
Packit 98cdb6
					         const GdkRegion    *region,
Packit 98cdb6
					         gboolean            invalidate_children);
Packit 98cdb6
void       gdk_window_invalidate_maybe_recurse  (GdkWindow          *window,
Packit 98cdb6
						 const GdkRegion    *region,
Packit 98cdb6
						 gboolean (*child_func) (GdkWindow *, gpointer),
Packit 98cdb6
						 gpointer   user_data);
Packit 98cdb6
GdkRegion *gdk_window_get_update_area     (GdkWindow    *window);
Packit 98cdb6
Packit 98cdb6
void       gdk_window_freeze_updates      (GdkWindow    *window);
Packit 98cdb6
void       gdk_window_thaw_updates        (GdkWindow    *window);
Packit 98cdb6
Packit 98cdb6
void       gdk_window_freeze_toplevel_updates_libgtk_only (GdkWindow *window);
Packit 98cdb6
void       gdk_window_thaw_toplevel_updates_libgtk_only   (GdkWindow *window);
Packit 98cdb6
Packit 98cdb6
void       gdk_window_process_all_updates (void);
Packit 98cdb6
void       gdk_window_process_updates     (GdkWindow    *window,
Packit 98cdb6
					   gboolean      update_children);
Packit 98cdb6
Packit 98cdb6
/* Enable/disable flicker, so you can tell if your code is inefficient. */
Packit 98cdb6
void       gdk_window_set_debug_updates   (gboolean      setting);
Packit 98cdb6
Packit 98cdb6
void       gdk_window_constrain_size      (GdkGeometry  *geometry,
Packit 98cdb6
                                           guint         flags,
Packit 98cdb6
                                           gint          width,
Packit 98cdb6
                                           gint          height,
Packit 98cdb6
                                           gint         *new_width,
Packit 98cdb6
                                           gint         *new_height);
Packit 98cdb6
Packit 98cdb6
void gdk_window_get_internal_paint_info (GdkWindow    *window,
Packit 98cdb6
					 GdkDrawable **real_drawable,
Packit 98cdb6
					 gint         *x_offset,
Packit 98cdb6
					 gint         *y_offset);
Packit 98cdb6
Packit 98cdb6
void gdk_window_enable_synchronized_configure (GdkWindow *window);
Packit 98cdb6
void gdk_window_configure_finished            (GdkWindow *window);
Packit 98cdb6
Packit 98cdb6
GdkWindow *gdk_get_default_root_window (void);
Packit 98cdb6
Packit 98cdb6
/* Offscreen redirection */
Packit 98cdb6
GdkPixmap *gdk_offscreen_window_get_pixmap     (GdkWindow     *window);
Packit 98cdb6
void       gdk_offscreen_window_set_embedder   (GdkWindow     *window,
Packit 98cdb6
						GdkWindow     *embedder);
Packit 98cdb6
GdkWindow *gdk_offscreen_window_get_embedder   (GdkWindow     *window);
Packit 98cdb6
void       gdk_window_geometry_changed         (GdkWindow     *window);
Packit 98cdb6
Packit 98cdb6
void       gdk_window_redirect_to_drawable   (GdkWindow     *window,
Packit 98cdb6
                                              GdkDrawable   *drawable,
Packit 98cdb6
                                              gint           src_x,
Packit 98cdb6
                                              gint           src_y,
Packit 98cdb6
                                              gint           dest_x,
Packit 98cdb6
                                              gint           dest_y,
Packit 98cdb6
                                              gint           width,
Packit 98cdb6
                                              gint           height);
Packit 98cdb6
void       gdk_window_remove_redirection     (GdkWindow     *window);
Packit 98cdb6
Packit 98cdb6
#ifndef GDK_DISABLE_DEPRECATED
Packit 98cdb6
#ifndef GDK_MULTIHEAD_SAFE
Packit 98cdb6
GdkPointerHooks *gdk_set_pointer_hooks (const GdkPointerHooks *new_hooks);   
Packit 98cdb6
#endif /* GDK_MULTIHEAD_SAFE */
Packit 98cdb6
Packit 98cdb6
#define GDK_ROOT_PARENT()             (gdk_get_default_root_window ())
Packit 98cdb6
#define gdk_window_get_size            gdk_drawable_get_size
Packit 98cdb6
#define gdk_window_get_type            gdk_window_get_window_type
Packit 98cdb6
#define gdk_window_get_colormap        gdk_drawable_get_colormap
Packit 98cdb6
#define gdk_window_set_colormap        gdk_drawable_set_colormap
Packit 98cdb6
#define gdk_window_ref                 g_object_ref
Packit 98cdb6
#define gdk_window_unref               g_object_unref
Packit 98cdb6
Packit 98cdb6
#define gdk_window_copy_area(drawable,gc,x,y,source_drawable,source_x,source_y,width,height) \
Packit 98cdb6
   gdk_draw_pixmap(drawable,gc,source_drawable,source_x,source_y,x,y,width,height)
Packit 98cdb6
#endif /* GDK_DISABLE_DEPRECATED */
Packit 98cdb6
Packit 98cdb6
G_END_DECLS
Packit 98cdb6
Packit 98cdb6
#endif /* __GDK_WINDOW_H__ */