#ifndef __GDK_EVENTS_H__
#define __GDK_EVENTS_H__
+#include <gdk/gdkcolor.h>
#include <gdk/gdktypes.h>
#include <gdk/gdkdnd.h>
#include <gdk/gdkinput.h>
extern "C" {
#endif /* __cplusplus */
+#define GDK_TYPE_EVENT (gdk_event_get_type ())
+
#define GDK_PRIORITY_EVENTS (G_PRIORITY_DEFAULT)
#define GDK_PRIORITY_REDRAW (G_PRIORITY_HIGH_IDLE + 20)
typedef struct _GdkEventSelection GdkEventSelection;
typedef struct _GdkEventProximity GdkEventProximity;
typedef struct _GdkEventClient GdkEventClient;
-
typedef struct _GdkEventDND GdkEventDND;
+typedef struct _GdkEventWindowState GdkEventWindowState;
+typedef struct _GdkEventSetting GdkEventSetting;
typedef union _GdkEvent GdkEvent;
/* Event filtering */
-typedef void GdkXEvent; /* Can be cast to XEvent */
+typedef void GdkXEvent; /* Can be cast to window system specific
+ * even type, XEvent on X11, MSG on Win32.
+ */
typedef enum {
GDK_FILTER_CONTINUE, /* Event not handled, continue processesing */
GDK_CLIENT_EVENT = 28,
GDK_VISIBILITY_NOTIFY = 29,
GDK_NO_EXPOSE = 30,
- GDK_SCROLL = 31
+ GDK_SCROLL = 31,
+ GDK_WINDOW_STATE = 32,
+ GDK_SETTING = 33
} GdkEventType;
/* Event masks. (Used to select what types of events a window
GDK_PROPERTY_DELETE
} GdkPropertyState;
+typedef enum
+{
+ GDK_WINDOW_STATE_WITHDRAWN = 1 << 0,
+ GDK_WINDOW_STATE_ICONIFIED = 1 << 1,
+ GDK_WINDOW_STATE_MAXIMIZED = 1 << 2,
+ GDK_WINDOW_STATE_STICKY = 1 << 3
+} GdkWindowState;
+
+typedef enum
+{
+ GDK_SETTING_ACTION_NEW,
+ GDK_SETTING_ACTION_CHANGED,
+ GDK_SETTING_ACTION_DELETED
+} GdkSettingAction;
+
struct _GdkEventAny
{
GdkEventType type;
GdkWindow *window;
gint8 send_event;
GdkRectangle area;
+ GdkRegion *region;
gint count; /* If non-zero, how many more events follow. */
};
guint keyval;
gint length;
gchar *string;
+ guint16 hardware_keycode;
+ guint8 group;
};
struct _GdkEventCrossing
} data;
};
+struct _GdkEventSetting
+{
+ GdkEventType type;
+ GdkWindow *window;
+ gint8 send_event;
+ GdkSettingAction action;
+ char *name;
+};
+
+struct _GdkEventWindowState
+{
+ GdkEventType type;
+ GdkWindow *window;
+ gint8 send_event;
+ GdkWindowState changed_mask;
+ GdkWindowState new_window_state;
+};
+
/* Event types for DND */
struct _GdkEventDND {
GdkEventProximity proximity;
GdkEventClient client;
GdkEventDND dnd;
+ GdkEventWindowState window_state;
+ GdkEventSetting setting;
};
+GType gdk_event_get_type (void);
+
gboolean gdk_events_pending (void);
GdkEvent* gdk_event_get (void);
GdkEvent* gdk_event_copy (GdkEvent *event);
void gdk_event_free (GdkEvent *event);
-guint32 gdk_event_get_time (GdkEvent *event);
-gboolean gdk_event_get_axis (GdkEvent *event,
- GdkAxisUse axis_use,
- gdouble *value);
+guint32 gdk_event_get_time (GdkEvent *event);
+gboolean gdk_event_get_state (GdkEvent *event,
+ GdkModifierType *state);
+gboolean gdk_event_get_coords (GdkEvent *event,
+ gdouble *x_win,
+ gdouble *y_win);
+gboolean gdk_event_get_root_coords (GdkEvent *event,
+ gdouble *x_root,
+ gdouble *y_root);
+gboolean gdk_event_get_axis (GdkEvent *event,
+ GdkAxisUse axis_use,
+ gdouble *value);
void gdk_event_handler_set (GdkEventFunc func,
gpointer data,
GDestroyNotify notify);
GdkFilterFunc func,
gpointer data);
+gboolean gdk_setting_get (const gchar *name,
+ GValue *value);
#ifdef __cplusplus
}