X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=gdk%2Fgdkevents.h;h=763c1a377a31fa72c2a0760585feb7e04fffe31f;hb=51c6334d10cb7a57f7163417b35b67da63af8b31;hp=a6d8384f6b2146c4e48e9b56ec232ec2612960a4;hpb=01212ce1709bc85d03576969c45397cf20c3dcc1;p=~andy%2Fgtk diff --git a/gdk/gdkevents.h b/gdk/gdkevents.h index a6d8384f6..763c1a377 100644 --- a/gdk/gdkevents.h +++ b/gdk/gdkevents.h @@ -1,6 +1,7 @@ #ifndef __GDK_EVENTS_H__ #define __GDK_EVENTS_H__ +#include #include #include #include @@ -9,6 +10,8 @@ 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) @@ -28,8 +31,9 @@ typedef struct _GdkEventProperty GdkEventProperty; 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; @@ -38,7 +42,9 @@ typedef void (*GdkEventFunc) (GdkEvent *event, /* 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 */ @@ -108,7 +114,9 @@ typedef enum 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 @@ -191,6 +199,21 @@ typedef enum 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; @@ -204,6 +227,7 @@ struct _GdkEventExpose GdkWindow *window; gint8 send_event; GdkRectangle area; + GdkRegion *region; gint count; /* If non-zero, how many more events follow. */ }; @@ -277,6 +301,8 @@ struct _GdkEventKey guint keyval; gint length; gchar *string; + guint16 hardware_keycode; + guint8 group; }; struct _GdkEventCrossing @@ -362,6 +388,24 @@ struct _GdkEventClient } 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 { @@ -393,8 +437,12 @@ union _GdkEvent 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); @@ -404,11 +452,19 @@ void gdk_event_put (GdkEvent *event); 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); @@ -424,6 +480,8 @@ void gdk_add_client_message_filter (GdkAtom message_type, GdkFilterFunc func, gpointer data); +gboolean gdk_setting_get (const gchar *name, + GValue *value); #ifdef __cplusplus }