Blame gdk/gdkevents.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_EVENTS_H__
Packit 98cdb6
#define __GDK_EVENTS_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/gdkcolor.h>
Packit 98cdb6
#include <gdk/gdktypes.h>
Packit 98cdb6
#include <gdk/gdkdnd.h>
Packit 98cdb6
#include <gdk/gdkinput.h>
Packit 98cdb6
Packit 98cdb6
G_BEGIN_DECLS
Packit 98cdb6
Packit 98cdb6
#define GDK_TYPE_EVENT          (gdk_event_get_type ())
Packit 98cdb6
Packit 98cdb6
#define GDK_PRIORITY_EVENTS	(G_PRIORITY_DEFAULT)
Packit 98cdb6
#define GDK_PRIORITY_REDRAW     (G_PRIORITY_HIGH_IDLE + 20)
Packit 98cdb6
Packit 98cdb6
Packit 98cdb6
typedef struct _GdkEventAny	    GdkEventAny;
Packit 98cdb6
typedef struct _GdkEventExpose	    GdkEventExpose;
Packit 98cdb6
typedef struct _GdkEventNoExpose    GdkEventNoExpose;
Packit 98cdb6
typedef struct _GdkEventVisibility  GdkEventVisibility;
Packit 98cdb6
typedef struct _GdkEventMotion	    GdkEventMotion;
Packit 98cdb6
typedef struct _GdkEventButton	    GdkEventButton;
Packit 98cdb6
typedef struct _GdkEventScroll      GdkEventScroll;  
Packit 98cdb6
typedef struct _GdkEventKey	    GdkEventKey;
Packit 98cdb6
typedef struct _GdkEventFocus	    GdkEventFocus;
Packit 98cdb6
typedef struct _GdkEventCrossing    GdkEventCrossing;
Packit 98cdb6
typedef struct _GdkEventConfigure   GdkEventConfigure;
Packit 98cdb6
typedef struct _GdkEventProperty    GdkEventProperty;
Packit 98cdb6
typedef struct _GdkEventSelection   GdkEventSelection;
Packit 98cdb6
typedef struct _GdkEventOwnerChange GdkEventOwnerChange;
Packit 98cdb6
typedef struct _GdkEventProximity   GdkEventProximity;
Packit 98cdb6
typedef struct _GdkEventClient	    GdkEventClient;
Packit 98cdb6
typedef struct _GdkEventDND         GdkEventDND;
Packit 98cdb6
typedef struct _GdkEventWindowState GdkEventWindowState;
Packit 98cdb6
typedef struct _GdkEventSetting     GdkEventSetting;
Packit 98cdb6
typedef struct _GdkEventGrabBroken  GdkEventGrabBroken;
Packit 98cdb6
Packit 98cdb6
typedef union  _GdkEvent	    GdkEvent;
Packit 98cdb6
Packit 98cdb6
typedef void (*GdkEventFunc) (GdkEvent *event,
Packit 98cdb6
			      gpointer	data);
Packit 98cdb6
Packit 98cdb6
/* Event filtering */
Packit 98cdb6
Packit 98cdb6
typedef void GdkXEvent;	  /* Can be cast to window system specific
Packit 98cdb6
			   * even type, XEvent on X11, MSG on Win32.
Packit 98cdb6
			   */
Packit 98cdb6
Packit 98cdb6
typedef enum {
Packit 98cdb6
  GDK_FILTER_CONTINUE,	  /* Event not handled, continue processesing */
Packit 98cdb6
  GDK_FILTER_TRANSLATE,	  /* Native event translated into a GDK event and
Packit 98cdb6
                             stored in the "event" structure that was
Packit 98cdb6
                             passed in */
Packit 98cdb6
  GDK_FILTER_REMOVE	  /* Terminate processing, removing event */
Packit 98cdb6
} GdkFilterReturn;
Packit 98cdb6
Packit 98cdb6
typedef GdkFilterReturn (*GdkFilterFunc) (GdkXEvent *xevent,
Packit 98cdb6
					  GdkEvent *event,
Packit 98cdb6
					  gpointer  data);
Packit 98cdb6
Packit 98cdb6
Packit 98cdb6
/* Event types.
Packit 98cdb6
 *   Nothing: No event occurred.
Packit 98cdb6
 *   Delete: A window delete event was sent by the window manager.
Packit 98cdb6
 *	     The specified window should be deleted.
Packit 98cdb6
 *   Destroy: A window has been destroyed.
Packit 98cdb6
 *   Expose: Part of a window has been uncovered.
Packit 98cdb6
 *   NoExpose: Same as expose, but no expose event was generated.
Packit 98cdb6
 *   VisibilityNotify: A window has become fully/partially/not obscured.
Packit 98cdb6
 *   MotionNotify: The mouse has moved.
Packit 98cdb6
 *   ButtonPress: A mouse button was pressed.
Packit 98cdb6
 *   ButtonRelease: A mouse button was release.
Packit 98cdb6
 *   KeyPress: A key was pressed.
Packit 98cdb6
 *   KeyRelease: A key was released.
Packit 98cdb6
 *   EnterNotify: A window was entered.
Packit 98cdb6
 *   LeaveNotify: A window was exited.
Packit 98cdb6
 *   FocusChange: The focus window has changed. (The focus window gets
Packit 98cdb6
 *		  keyboard events).
Packit 98cdb6
 *   Resize: A window has been resized.
Packit 98cdb6
 *   Map: A window has been mapped. (It is now visible on the screen).
Packit 98cdb6
 *   Unmap: A window has been unmapped. (It is no longer visible on
Packit 98cdb6
 *	    the screen).
Packit 98cdb6
 *   Scroll: A mouse wheel was scrolled either up or down.
Packit 98cdb6
 */
Packit 98cdb6
typedef enum
Packit 98cdb6
{
Packit 98cdb6
  GDK_NOTHING		= -1,
Packit 98cdb6
  GDK_DELETE		= 0,
Packit 98cdb6
  GDK_DESTROY		= 1,
Packit 98cdb6
  GDK_EXPOSE		= 2,
Packit 98cdb6
  GDK_MOTION_NOTIFY	= 3,
Packit 98cdb6
  GDK_BUTTON_PRESS	= 4,
Packit 98cdb6
  GDK_2BUTTON_PRESS	= 5,
Packit 98cdb6
  GDK_3BUTTON_PRESS	= 6,
Packit 98cdb6
  GDK_BUTTON_RELEASE	= 7,
Packit 98cdb6
  GDK_KEY_PRESS		= 8,
Packit 98cdb6
  GDK_KEY_RELEASE	= 9,
Packit 98cdb6
  GDK_ENTER_NOTIFY	= 10,
Packit 98cdb6
  GDK_LEAVE_NOTIFY	= 11,
Packit 98cdb6
  GDK_FOCUS_CHANGE	= 12,
Packit 98cdb6
  GDK_CONFIGURE		= 13,
Packit 98cdb6
  GDK_MAP		= 14,
Packit 98cdb6
  GDK_UNMAP		= 15,
Packit 98cdb6
  GDK_PROPERTY_NOTIFY	= 16,
Packit 98cdb6
  GDK_SELECTION_CLEAR	= 17,
Packit 98cdb6
  GDK_SELECTION_REQUEST = 18,
Packit 98cdb6
  GDK_SELECTION_NOTIFY	= 19,
Packit 98cdb6
  GDK_PROXIMITY_IN	= 20,
Packit 98cdb6
  GDK_PROXIMITY_OUT	= 21,
Packit 98cdb6
  GDK_DRAG_ENTER        = 22,
Packit 98cdb6
  GDK_DRAG_LEAVE        = 23,
Packit 98cdb6
  GDK_DRAG_MOTION       = 24,
Packit 98cdb6
  GDK_DRAG_STATUS       = 25,
Packit 98cdb6
  GDK_DROP_START        = 26,
Packit 98cdb6
  GDK_DROP_FINISHED     = 27,
Packit 98cdb6
  GDK_CLIENT_EVENT	= 28,
Packit 98cdb6
  GDK_VISIBILITY_NOTIFY = 29,
Packit 98cdb6
  GDK_NO_EXPOSE		= 30,
Packit 98cdb6
  GDK_SCROLL            = 31,
Packit 98cdb6
  GDK_WINDOW_STATE      = 32,
Packit 98cdb6
  GDK_SETTING           = 33,
Packit 98cdb6
  GDK_OWNER_CHANGE      = 34,
Packit 98cdb6
  GDK_GRAB_BROKEN       = 35,
Packit 98cdb6
  GDK_DAMAGE            = 36,
Packit 98cdb6
  GDK_EVENT_LAST        /* helper variable for decls */
Packit 98cdb6
} GdkEventType;
Packit 98cdb6
Packit 98cdb6
/* Event masks. (Used to select what types of events a window
Packit 98cdb6
 *  will receive).
Packit 98cdb6
 */
Packit 98cdb6
typedef enum
Packit 98cdb6
{
Packit 98cdb6
  GDK_EXPOSURE_MASK		= 1 << 1,
Packit 98cdb6
  GDK_POINTER_MOTION_MASK	= 1 << 2,
Packit 98cdb6
  GDK_POINTER_MOTION_HINT_MASK	= 1 << 3,
Packit 98cdb6
  GDK_BUTTON_MOTION_MASK	= 1 << 4,
Packit 98cdb6
  GDK_BUTTON1_MOTION_MASK	= 1 << 5,
Packit 98cdb6
  GDK_BUTTON2_MOTION_MASK	= 1 << 6,
Packit 98cdb6
  GDK_BUTTON3_MOTION_MASK	= 1 << 7,
Packit 98cdb6
  GDK_BUTTON_PRESS_MASK		= 1 << 8,
Packit 98cdb6
  GDK_BUTTON_RELEASE_MASK	= 1 << 9,
Packit 98cdb6
  GDK_KEY_PRESS_MASK		= 1 << 10,
Packit 98cdb6
  GDK_KEY_RELEASE_MASK		= 1 << 11,
Packit 98cdb6
  GDK_ENTER_NOTIFY_MASK		= 1 << 12,
Packit 98cdb6
  GDK_LEAVE_NOTIFY_MASK		= 1 << 13,
Packit 98cdb6
  GDK_FOCUS_CHANGE_MASK		= 1 << 14,
Packit 98cdb6
  GDK_STRUCTURE_MASK		= 1 << 15,
Packit 98cdb6
  GDK_PROPERTY_CHANGE_MASK	= 1 << 16,
Packit 98cdb6
  GDK_VISIBILITY_NOTIFY_MASK	= 1 << 17,
Packit 98cdb6
  GDK_PROXIMITY_IN_MASK		= 1 << 18,
Packit 98cdb6
  GDK_PROXIMITY_OUT_MASK	= 1 << 19,
Packit 98cdb6
  GDK_SUBSTRUCTURE_MASK		= 1 << 20,
Packit 98cdb6
  GDK_SCROLL_MASK               = 1 << 21,
Packit 98cdb6
  GDK_ALL_EVENTS_MASK		= 0x3FFFFE
Packit 98cdb6
} GdkEventMask;
Packit 98cdb6
Packit 98cdb6
typedef enum
Packit 98cdb6
{
Packit 98cdb6
  GDK_VISIBILITY_UNOBSCURED,
Packit 98cdb6
  GDK_VISIBILITY_PARTIAL,
Packit 98cdb6
  GDK_VISIBILITY_FULLY_OBSCURED
Packit 98cdb6
} GdkVisibilityState;
Packit 98cdb6
Packit 98cdb6
typedef enum
Packit 98cdb6
{
Packit 98cdb6
  GDK_SCROLL_UP,
Packit 98cdb6
  GDK_SCROLL_DOWN,
Packit 98cdb6
  GDK_SCROLL_LEFT,
Packit 98cdb6
  GDK_SCROLL_RIGHT
Packit 98cdb6
} GdkScrollDirection;
Packit 98cdb6
Packit 98cdb6
/* Types of enter/leave notifications.
Packit 98cdb6
 *   Ancestor:
Packit 98cdb6
 *   Virtual:
Packit 98cdb6
 *   Inferior:
Packit 98cdb6
 *   Nonlinear:
Packit 98cdb6
 *   NonlinearVirtual:
Packit 98cdb6
 *   Unknown: An unknown type of enter/leave event occurred.
Packit 98cdb6
 */
Packit 98cdb6
typedef enum
Packit 98cdb6
{
Packit 98cdb6
  GDK_NOTIFY_ANCESTOR		= 0,
Packit 98cdb6
  GDK_NOTIFY_VIRTUAL		= 1,
Packit 98cdb6
  GDK_NOTIFY_INFERIOR		= 2,
Packit 98cdb6
  GDK_NOTIFY_NONLINEAR		= 3,
Packit 98cdb6
  GDK_NOTIFY_NONLINEAR_VIRTUAL	= 4,
Packit 98cdb6
  GDK_NOTIFY_UNKNOWN		= 5
Packit 98cdb6
} GdkNotifyType;
Packit 98cdb6
Packit 98cdb6
/* Enter/leave event modes.
Packit 98cdb6
 *   NotifyNormal
Packit 98cdb6
 *   NotifyGrab
Packit 98cdb6
 *   NotifyUngrab
Packit 98cdb6
 */
Packit 98cdb6
typedef enum
Packit 98cdb6
{
Packit 98cdb6
  GDK_CROSSING_NORMAL,
Packit 98cdb6
  GDK_CROSSING_GRAB,
Packit 98cdb6
  GDK_CROSSING_UNGRAB,
Packit 98cdb6
  GDK_CROSSING_GTK_GRAB,
Packit 98cdb6
  GDK_CROSSING_GTK_UNGRAB,
Packit 98cdb6
  GDK_CROSSING_STATE_CHANGED
Packit 98cdb6
} GdkCrossingMode;
Packit 98cdb6
Packit 98cdb6
typedef enum
Packit 98cdb6
{
Packit 98cdb6
  GDK_PROPERTY_NEW_VALUE,
Packit 98cdb6
  GDK_PROPERTY_DELETE
Packit 98cdb6
} GdkPropertyState;
Packit 98cdb6
Packit 98cdb6
typedef enum
Packit 98cdb6
{
Packit 98cdb6
  GDK_WINDOW_STATE_WITHDRAWN  = 1 << 0,
Packit 98cdb6
  GDK_WINDOW_STATE_ICONIFIED  = 1 << 1,
Packit 98cdb6
  GDK_WINDOW_STATE_MAXIMIZED  = 1 << 2,
Packit 98cdb6
  GDK_WINDOW_STATE_STICKY     = 1 << 3,
Packit 98cdb6
  GDK_WINDOW_STATE_FULLSCREEN = 1 << 4,
Packit 98cdb6
  GDK_WINDOW_STATE_ABOVE      = 1 << 5,
Packit 98cdb6
  GDK_WINDOW_STATE_BELOW      = 1 << 6
Packit 98cdb6
} GdkWindowState;
Packit 98cdb6
Packit 98cdb6
typedef enum
Packit 98cdb6
{
Packit 98cdb6
  GDK_SETTING_ACTION_NEW,
Packit 98cdb6
  GDK_SETTING_ACTION_CHANGED,
Packit 98cdb6
  GDK_SETTING_ACTION_DELETED
Packit 98cdb6
} GdkSettingAction;
Packit 98cdb6
Packit 98cdb6
typedef enum
Packit 98cdb6
{
Packit 98cdb6
  GDK_OWNER_CHANGE_NEW_OWNER,
Packit 98cdb6
  GDK_OWNER_CHANGE_DESTROY,
Packit 98cdb6
  GDK_OWNER_CHANGE_CLOSE
Packit 98cdb6
} GdkOwnerChange;
Packit 98cdb6
Packit 98cdb6
struct _GdkEventAny
Packit 98cdb6
{
Packit 98cdb6
  GdkEventType type;
Packit 98cdb6
  GdkWindow *window;
Packit 98cdb6
  gint8 send_event;
Packit 98cdb6
};
Packit 98cdb6
Packit 98cdb6
struct _GdkEventExpose
Packit 98cdb6
{
Packit 98cdb6
  GdkEventType type;
Packit 98cdb6
  GdkWindow *window;
Packit 98cdb6
  gint8 send_event;
Packit 98cdb6
  GdkRectangle area;
Packit 98cdb6
  GdkRegion *region;
Packit 98cdb6
  gint count; /* If non-zero, how many more events follow. */
Packit 98cdb6
};
Packit 98cdb6
Packit 98cdb6
struct _GdkEventNoExpose
Packit 98cdb6
{
Packit 98cdb6
  GdkEventType type;
Packit 98cdb6
  GdkWindow *window;
Packit 98cdb6
  gint8 send_event;
Packit 98cdb6
};
Packit 98cdb6
Packit 98cdb6
struct _GdkEventVisibility
Packit 98cdb6
{
Packit 98cdb6
  GdkEventType type;
Packit 98cdb6
  GdkWindow *window;
Packit 98cdb6
  gint8 send_event;
Packit 98cdb6
  GdkVisibilityState state;
Packit 98cdb6
};
Packit 98cdb6
Packit 98cdb6
struct _GdkEventMotion
Packit 98cdb6
{
Packit 98cdb6
  GdkEventType type;
Packit 98cdb6
  GdkWindow *window;
Packit 98cdb6
  gint8 send_event;
Packit 98cdb6
  guint32 time;
Packit 98cdb6
  gdouble x;
Packit 98cdb6
  gdouble y;
Packit 98cdb6
  gdouble *axes;
Packit 98cdb6
  guint state;
Packit 98cdb6
  gint16 is_hint;
Packit 98cdb6
  GdkDevice *device;
Packit 98cdb6
  gdouble x_root, y_root;
Packit 98cdb6
};
Packit 98cdb6
Packit 98cdb6
struct _GdkEventButton
Packit 98cdb6
{
Packit 98cdb6
  GdkEventType type;
Packit 98cdb6
  GdkWindow *window;
Packit 98cdb6
  gint8 send_event;
Packit 98cdb6
  guint32 time;
Packit 98cdb6
  gdouble x;
Packit 98cdb6
  gdouble y;
Packit 98cdb6
  gdouble *axes;
Packit 98cdb6
  guint state;
Packit 98cdb6
  guint button;
Packit 98cdb6
  GdkDevice *device;
Packit 98cdb6
  gdouble x_root, y_root;
Packit 98cdb6
};
Packit 98cdb6
Packit 98cdb6
struct _GdkEventScroll
Packit 98cdb6
{
Packit 98cdb6
  GdkEventType type;
Packit 98cdb6
  GdkWindow *window;
Packit 98cdb6
  gint8 send_event;
Packit 98cdb6
  guint32 time;
Packit 98cdb6
  gdouble x;
Packit 98cdb6
  gdouble y;
Packit 98cdb6
  guint state;
Packit 98cdb6
  GdkScrollDirection direction;
Packit 98cdb6
  GdkDevice *device;
Packit 98cdb6
  gdouble x_root, y_root;
Packit 98cdb6
};
Packit 98cdb6
Packit 98cdb6
struct _GdkEventKey
Packit 98cdb6
{
Packit 98cdb6
  GdkEventType type;
Packit 98cdb6
  GdkWindow *window;
Packit 98cdb6
  gint8 send_event;
Packit 98cdb6
  guint32 time;
Packit 98cdb6
  guint state;
Packit 98cdb6
  guint keyval;
Packit 98cdb6
  gint length;
Packit 98cdb6
  gchar *string;
Packit 98cdb6
  guint16 hardware_keycode;
Packit 98cdb6
  guint8 group;
Packit 98cdb6
  guint is_modifier : 1;
Packit 98cdb6
};
Packit 98cdb6
Packit 98cdb6
struct _GdkEventCrossing
Packit 98cdb6
{
Packit 98cdb6
  GdkEventType type;
Packit 98cdb6
  GdkWindow *window;
Packit 98cdb6
  gint8 send_event;
Packit 98cdb6
  GdkWindow *subwindow;
Packit 98cdb6
  guint32 time;
Packit 98cdb6
  gdouble x;
Packit 98cdb6
  gdouble y;
Packit 98cdb6
  gdouble x_root;
Packit 98cdb6
  gdouble y_root;
Packit 98cdb6
  GdkCrossingMode mode;
Packit 98cdb6
  GdkNotifyType detail;
Packit 98cdb6
  gboolean focus;
Packit 98cdb6
  guint state;
Packit 98cdb6
};
Packit 98cdb6
Packit 98cdb6
struct _GdkEventFocus
Packit 98cdb6
{
Packit 98cdb6
  GdkEventType type;
Packit 98cdb6
  GdkWindow *window;
Packit 98cdb6
  gint8 send_event;
Packit 98cdb6
  gint16 in;
Packit 98cdb6
};
Packit 98cdb6
Packit 98cdb6
struct _GdkEventConfigure
Packit 98cdb6
{
Packit 98cdb6
  GdkEventType type;
Packit 98cdb6
  GdkWindow *window;
Packit 98cdb6
  gint8 send_event;
Packit 98cdb6
  gint x, y;
Packit 98cdb6
  gint width;
Packit 98cdb6
  gint height;
Packit 98cdb6
};
Packit 98cdb6
Packit 98cdb6
struct _GdkEventProperty
Packit 98cdb6
{
Packit 98cdb6
  GdkEventType type;
Packit 98cdb6
  GdkWindow *window;
Packit 98cdb6
  gint8 send_event;
Packit 98cdb6
  GdkAtom atom;
Packit 98cdb6
  guint32 time;
Packit 98cdb6
  guint state;
Packit 98cdb6
};
Packit 98cdb6
Packit 98cdb6
struct _GdkEventSelection
Packit 98cdb6
{
Packit 98cdb6
  GdkEventType type;
Packit 98cdb6
  GdkWindow *window;
Packit 98cdb6
  gint8 send_event;
Packit 98cdb6
  GdkAtom selection;
Packit 98cdb6
  GdkAtom target;
Packit 98cdb6
  GdkAtom property;
Packit 98cdb6
  guint32 time;
Packit 98cdb6
  GdkNativeWindow requestor;
Packit 98cdb6
};
Packit 98cdb6
Packit 98cdb6
struct _GdkEventOwnerChange
Packit 98cdb6
{
Packit 98cdb6
  GdkEventType type;
Packit 98cdb6
  GdkWindow *window;
Packit 98cdb6
  gint8 send_event;
Packit 98cdb6
  GdkNativeWindow owner;
Packit 98cdb6
  GdkOwnerChange reason;
Packit 98cdb6
  GdkAtom selection;
Packit 98cdb6
  guint32 time;
Packit 98cdb6
  guint32 selection_time;
Packit 98cdb6
};
Packit 98cdb6
Packit 98cdb6
/* This event type will be used pretty rarely. It only is important
Packit 98cdb6
   for XInput aware programs that are drawing their own cursor */
Packit 98cdb6
Packit 98cdb6
struct _GdkEventProximity
Packit 98cdb6
{
Packit 98cdb6
  GdkEventType type;
Packit 98cdb6
  GdkWindow *window;
Packit 98cdb6
  gint8 send_event;
Packit 98cdb6
  guint32 time;
Packit 98cdb6
  GdkDevice *device;
Packit 98cdb6
};
Packit 98cdb6
Packit 98cdb6
struct _GdkEventClient
Packit 98cdb6
{
Packit 98cdb6
  GdkEventType type;
Packit 98cdb6
  GdkWindow *window;
Packit 98cdb6
  gint8 send_event;
Packit 98cdb6
  GdkAtom message_type;
Packit 98cdb6
  gushort data_format;
Packit 98cdb6
  union {
Packit 98cdb6
    char b[20];
Packit 98cdb6
    short s[10];
Packit 98cdb6
    long l[5];
Packit 98cdb6
  } data;
Packit 98cdb6
};
Packit 98cdb6
Packit 98cdb6
struct _GdkEventSetting
Packit 98cdb6
{
Packit 98cdb6
  GdkEventType type;
Packit 98cdb6
  GdkWindow *window;
Packit 98cdb6
  gint8 send_event;
Packit 98cdb6
  GdkSettingAction action;
Packit 98cdb6
  char *name;
Packit 98cdb6
};
Packit 98cdb6
Packit 98cdb6
struct _GdkEventWindowState
Packit 98cdb6
{
Packit 98cdb6
  GdkEventType type;
Packit 98cdb6
  GdkWindow *window;
Packit 98cdb6
  gint8 send_event;
Packit 98cdb6
  GdkWindowState changed_mask;
Packit 98cdb6
  GdkWindowState new_window_state;
Packit 98cdb6
};
Packit 98cdb6
Packit 98cdb6
struct _GdkEventGrabBroken {
Packit 98cdb6
  GdkEventType type;
Packit 98cdb6
  GdkWindow *window;
Packit 98cdb6
  gint8 send_event;
Packit 98cdb6
  gboolean keyboard;
Packit 98cdb6
  gboolean implicit;
Packit 98cdb6
  GdkWindow *grab_window;
Packit 98cdb6
};
Packit 98cdb6
Packit 98cdb6
/* Event types for DND */
Packit 98cdb6
Packit 98cdb6
struct _GdkEventDND {
Packit 98cdb6
  GdkEventType type;
Packit 98cdb6
  GdkWindow *window;
Packit 98cdb6
  gint8 send_event;
Packit 98cdb6
  GdkDragContext *context;
Packit 98cdb6
Packit 98cdb6
  guint32 time;
Packit 98cdb6
  gshort x_root, y_root;
Packit 98cdb6
};
Packit 98cdb6
Packit 98cdb6
union _GdkEvent
Packit 98cdb6
{
Packit 98cdb6
  GdkEventType		    type;
Packit 98cdb6
  GdkEventAny		    any;
Packit 98cdb6
  GdkEventExpose	    expose;
Packit 98cdb6
  GdkEventNoExpose	    no_expose;
Packit 98cdb6
  GdkEventVisibility	    visibility;
Packit 98cdb6
  GdkEventMotion	    motion;
Packit 98cdb6
  GdkEventButton	    button;
Packit 98cdb6
  GdkEventScroll            scroll;
Packit 98cdb6
  GdkEventKey		    key;
Packit 98cdb6
  GdkEventCrossing	    crossing;
Packit 98cdb6
  GdkEventFocus		    focus_change;
Packit 98cdb6
  GdkEventConfigure	    configure;
Packit 98cdb6
  GdkEventProperty	    property;
Packit 98cdb6
  GdkEventSelection	    selection;
Packit 98cdb6
  GdkEventOwnerChange  	    owner_change;
Packit 98cdb6
  GdkEventProximity	    proximity;
Packit 98cdb6
  GdkEventClient	    client;
Packit 98cdb6
  GdkEventDND               dnd;
Packit 98cdb6
  GdkEventWindowState       window_state;
Packit 98cdb6
  GdkEventSetting           setting;
Packit 98cdb6
  GdkEventGrabBroken        grab_broken;
Packit 98cdb6
};
Packit 98cdb6
Packit 98cdb6
GType     gdk_event_get_type            (void) G_GNUC_CONST;
Packit 98cdb6
Packit 98cdb6
gboolean  gdk_events_pending	 	(void);
Packit 98cdb6
GdkEvent* gdk_event_get			(void);
Packit 98cdb6
Packit 98cdb6
GdkEvent* gdk_event_peek                (void);
Packit 98cdb6
#ifndef GDK_DISABLE_DEPRECATED
Packit 98cdb6
GdkEvent* gdk_event_get_graphics_expose (GdkWindow 	*window);
Packit 98cdb6
#endif
Packit 98cdb6
void      gdk_event_put	 		(const GdkEvent *event);
Packit 98cdb6
Packit 98cdb6
GdkEvent* gdk_event_new                 (GdkEventType    type);
Packit 98cdb6
GdkEvent* gdk_event_copy     		(const GdkEvent *event);
Packit 98cdb6
void	  gdk_event_free     		(GdkEvent 	*event);
Packit 98cdb6
Packit 98cdb6
guint32   gdk_event_get_time            (const GdkEvent  *event);
Packit 98cdb6
gboolean  gdk_event_get_state           (const GdkEvent  *event,
Packit 98cdb6
                                         GdkModifierType *state);
Packit 98cdb6
gboolean  gdk_event_get_coords		(const GdkEvent  *event,
Packit 98cdb6
					 gdouble	 *x_win,
Packit 98cdb6
					 gdouble	 *y_win);
Packit 98cdb6
gboolean  gdk_event_get_root_coords	(const GdkEvent  *event,
Packit 98cdb6
					 gdouble	 *x_root,
Packit 98cdb6
					 gdouble	 *y_root);
Packit 98cdb6
gboolean  gdk_event_get_axis            (const GdkEvent  *event,
Packit 98cdb6
                                         GdkAxisUse       axis_use,
Packit 98cdb6
                                         gdouble         *value);
Packit 98cdb6
void      gdk_event_request_motions     (const GdkEventMotion *event);
Packit 98cdb6
void	  gdk_event_handler_set 	(GdkEventFunc    func,
Packit 98cdb6
					 gpointer        data,
Packit 98cdb6
					 GDestroyNotify  notify);
Packit 98cdb6
Packit 98cdb6
void       gdk_event_set_screen         (GdkEvent        *event,
Packit 98cdb6
                                         GdkScreen       *screen);
Packit 98cdb6
GdkScreen *gdk_event_get_screen         (const GdkEvent  *event);
Packit 98cdb6
Packit 98cdb6
void	  gdk_set_show_events		(gboolean	 show_events);
Packit 98cdb6
gboolean  gdk_get_show_events		(void);
Packit 98cdb6
Packit 98cdb6
#ifndef GDK_MULTIHEAD_SAFE
Packit 98cdb6
void gdk_add_client_message_filter (GdkAtom       message_type,
Packit 98cdb6
				    GdkFilterFunc func,
Packit 98cdb6
				    gpointer      data);
Packit 98cdb6
Packit 98cdb6
gboolean gdk_setting_get (const gchar *name,
Packit 98cdb6
			  GValue      *value); 
Packit 98cdb6
#endif /* GDK_MULTIHEAD_SAFE */
Packit 98cdb6
Packit 98cdb6
G_END_DECLS
Packit 98cdb6
Packit 98cdb6
#endif /* __GDK_EVENTS_H__ */