+PyObject *MotionData_xroot(MotionData *self, PyObject *args)
+{
+ if(!PyArg_ParseTuple(args,":xroot")) return NULL;
+ return PyLong_FromLong(self->xroot);
+}
+
+PyObject *MotionData_yroot(MotionData *self, PyObject *args)
+{
+ if(!PyArg_ParseTuple(args,":yroot")) return NULL;
+ return PyLong_FromLong(self->yroot);
+}
+
+PyObject *MotionData_pressx(MotionData *self, PyObject *args)
+{
+ if(!PyArg_ParseTuple(args,":pressx")) return NULL;
+ return PyLong_FromLong(self->pressx);
+}
+
+PyObject *MotionData_pressy(MotionData *self, PyObject *args)
+{
+ if(!PyArg_ParseTuple(args,":pressy")) return NULL;
+ return PyLong_FromLong(self->pressy);
+}
+
+
+PyObject *MotionData_press_clientx(MotionData *self, PyObject *args)
+{
+ if(!PyArg_ParseTuple(args,":press_clientx")) return NULL;
+ return PyLong_FromLong(self->press_clientx);
+}
+
+PyObject *MotionData_press_clienty(MotionData *self, PyObject *args)
+{
+ if(!PyArg_ParseTuple(args,":press_clienty")) return NULL;
+ return PyLong_FromLong(self->press_clienty);
+}
+
+PyObject *MotionData_press_clientwidth(MotionData *self, PyObject *args)
+{
+ if(!PyArg_ParseTuple(args,":press_clientwidth")) return NULL;
+ return PyLong_FromLong(self->press_clientwidth);
+}
+
+PyObject *MotionData_press_clientheight(MotionData *self, PyObject *args)
+{
+ if(!PyArg_ParseTuple(args,":press_clientheight")) return NULL;
+ return PyLong_FromLong(self->press_clientheight);
+}
+
+PyObject *MotionData_time(MotionData *self, PyObject *args)
+{
+ if(!PyArg_ParseTuple(args,":time")) return NULL;
+ return PyLong_FromLong(self->time);
+}
+
+static PyMethodDef MotionData_methods[] = {
+ {"action", (PyCFunction)MotionData_action, METH_VARARGS,
+ "Return the action being executed."},
+ {"window", (PyCFunction)MotionData_window, METH_VARARGS,
+ "Return the client window id."},
+ {"context", (PyCFunction)MotionData_context, METH_VARARGS,
+ "Return the context that the action is occuring in."},
+ {"modifiers", (PyCFunction)MotionData_modifiers, METH_VARARGS,
+ "Return the modifier keys state."},
+ {"button", (PyCFunction)MotionData_button, METH_VARARGS,
+ "Return the number of the pressed button (1-5)."},
+ {"xroot", (PyCFunction)MotionData_xroot, METH_VARARGS,
+ "Return the X-position of the mouse cursor on the root window."},
+ {"yroot", (PyCFunction)MotionData_yroot, METH_VARARGS,
+ "Return the Y-position of the mouse cursor on the root window."},
+ {"pressx", (PyCFunction)MotionData_pressx, METH_VARARGS,
+ "Return the X-position of the mouse cursor at the start of the drag."},
+ {"pressy", (PyCFunction)MotionData_pressy, METH_VARARGS,
+ "Return the Y-position of the mouse cursor at the start of the drag."},
+ {"press_clientx", (PyCFunction)MotionData_press_clientx, METH_VARARGS,
+ "Return the X-position of the client at the start of the drag."},
+ {"press_clienty", (PyCFunction)MotionData_press_clienty, METH_VARARGS,
+ "Return the Y-position of the client at the start of the drag."},
+ {"press_clientwidth", (PyCFunction)MotionData_press_clientwidth,
+ METH_VARARGS,
+ "Return the width of the client at the start of the drag."},
+ {"press_clientheight", (PyCFunction)MotionData_press_clientheight,
+ METH_VARARGS,
+ "Return the height of the client at the start of the drag."},
+ {"time", (PyCFunction)MotionData_time, METH_VARARGS,
+ "Return the time at which the event occured."},
+ {NULL, NULL, 0, NULL}
+};
+
+static PyMethodDef ButtonData_methods[] = {
+ {"action", (PyCFunction)MotionData_action, METH_VARARGS,
+ "Return the action being executed."},
+ {"context", (PyCFunction)MotionData_context, METH_VARARGS,
+ "Return the context that the action is occuring in."},
+ {"window", (PyCFunction)MotionData_window, METH_VARARGS,
+ "Return the client window id."},
+ {"modifiers", (PyCFunction)MotionData_modifiers, METH_VARARGS,
+ "Return the modifier keys state."},
+ {"button", (PyCFunction)MotionData_button, METH_VARARGS,
+ "Return the number of the pressed button (1-5)."},
+ {"time", (PyCFunction)MotionData_time, METH_VARARGS,
+ "Return the time at which the event occured."},
+ {NULL, NULL, 0, NULL}
+};
+
+PyObject *KeyData_key(KeyData *self, PyObject *args)
+{
+ if(!PyArg_ParseTuple(args,":key")) return NULL;
+ return PyString_FromString(
+ XKeysymToString(XKeycodeToKeysym(otk::OBDisplay::display, self->key, 0)));
+
+}
+
+static PyMethodDef KeyData_methods[] = {
+ {"window", (PyCFunction)MotionData_window, METH_VARARGS,
+ "Return the client window id."},
+ {"modifiers", (PyCFunction)MotionData_modifiers, METH_VARARGS,
+ "Return the modifier keys state."},
+ {"key", (PyCFunction)KeyData_key, METH_VARARGS,
+ "Return the name of the pressed key."},
+ {"time", (PyCFunction)MotionData_time, METH_VARARGS,
+ "Return the time at which the event occured."},