diff options
| author | Dana Jansens <danakj@orodu.net> | 2003-03-16 21:11:39 +0000 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2003-03-16 21:11:39 +0000 |
| commit | f8a47de5ec444c452093371e3db16857eb39a490 (patch) | |
| tree | 31db2567842d98232775f9980f7a8d2586c0ac71 /c/eventdata.h | |
| parent | 8ba0586bcbdc7fe9648f1063812126d71a041670 (diff) | |
merge the C branch into HEAD
Diffstat (limited to 'c/eventdata.h')
| -rw-r--r-- | c/eventdata.h | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/c/eventdata.h b/c/eventdata.h new file mode 100644 index 00000000..ef6beabd --- /dev/null +++ b/c/eventdata.h @@ -0,0 +1,74 @@ +#ifndef __eventdata_h +#define __eventdata_h + +#include "obexport.h" +#include <Python.h> +#include <glib.h> + +struct Client; + +typedef struct { + int temp:1; /* just a placeholder to kill warnings for now.. */ +} LogicalEvent; + +typedef struct { + /*! The button which generated the event */ + guint button; + /*! The pointer's x position on the root window when the event occured */ + int xroot; + /*! The pointer's y position on the root window when the event occured */ + int yroot; + /*! The modifiers that were pressed when the event occured. A bitmask of: + ShiftMask, LockMask, ControlMask, Mod1Mask, Mod2Mask, Mod3Mask, + Mod4Mask, Mod5Mask */ + guint modifiers; + /*! The name of the button/modifier combination being pressed, + eg "Mod1-1" */ + char *name; +} PointerEvent; + +typedef struct { + /*! The keycode of the key which generated the event */ + guint keycode; + /*! The modifiers that were pressed when the event occured. A bitmask of: + ShiftMask, LockMask, ControlMask, Mod1Mask, Mod2Mask, Mod3Mask, + Mod4Mask, Mod5Mask */ + guint modifiers; + /* The list of strings which make up the chain that fired, + eg ("Mod1-a", "a") */ + GList *keylist; +} KeyEvent; + +/* EventData is a PyObject */ +typedef struct EventData { + PyObject_HEAD + /* The type of event which occured */ + EventType type; + /*! The context in which the event occured, the type of window it occured + for. */ + const char *context; + /* The Client on which the event occured, or NULL */ + struct Client *client; + + union EventDetails { + LogicalEvent *logical; + PointerEvent *pointer; + KeyEvent *key; + } details; +} EventData; + +void eventdata_startup(); +void eventdata_shutdown(); + +EventData *eventdata_new_logical(EventType type, GQuark context, + struct Client *client); +EventData *eventdata_new_pointer(EventType type, GQuark context, + struct Client *client, guint modifiers, + guint button, char *name, + int xroot, int yroot); +EventData *eventdata_new_key(EventType type, GQuark context, + struct Client *client, guint modifiers, + guint keycode, GList *keylist); +void eventdata_free(EventData *data); + +#endif |
