diff options
| author | Dana Jansens <danakj@orodu.net> | 2003-01-09 22:54:31 +0000 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2003-01-09 22:54:31 +0000 |
| commit | 345d957e1ea577480f807b892b73c3f52fe913d2 (patch) | |
| tree | 489dd8d159f22bbc3828ad094ced5288eb582628 /src/openbox.i | |
| parent | b1739374a61d0c33270bafe84da9d787e79c0686 (diff) | |
new python callbacks data, infrastructure. going to rework bindings code. cvs wont work for shit now. but thats life.
Diffstat (limited to 'src/openbox.i')
| -rw-r--r-- | src/openbox.i | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/src/openbox.i b/src/openbox.i index b914ce9c..0f54362b 100644 --- a/src/openbox.i +++ b/src/openbox.i @@ -12,6 +12,8 @@ #include "client.hh" #include "bindings.hh" #include "actions.hh" +#include "python.hh" +#include "otk/display.hh" %} %include "stl.i" @@ -23,6 +25,91 @@ ob::Openbox *Openbox_instance() { return ob::Openbox::instance; } %}; +%{ +namespace ob { +void python_callback(PyObject *func, MotionData *data) +{ + PyObject *arglist; + PyObject *result; + + arglist = Py_BuildValue("(O)", SWIG_NewPointerObj((void *) data, + SWIGTYPE_p_ob__MotionData, + 0)); + + // call the callback + result = PyEval_CallObject(func, arglist); + if (!result || PyErr_Occurred()) { + // an exception occured in the script, display it + PyErr_Print(); + } + + Py_XDECREF(result); + Py_DECREF(arglist); +} + +void python_callback(PyObject *func, ButtonData *data) +{ + PyObject *arglist; + PyObject *result; + + arglist = Py_BuildValue("(O)", SWIG_NewPointerObj((void *) data, + SWIGTYPE_p_ob__ButtonData, + 0)); + + // call the callback + result = PyEval_CallObject(func, arglist); + if (!result || PyErr_Occurred()) { + // an exception occured in the script, display it + PyErr_Print(); + } + + Py_XDECREF(result); + Py_DECREF(arglist); +} + +void python_callback(PyObject *func, EventData *data) +{ + PyObject *arglist; + PyObject *result; + + arglist = Py_BuildValue("(O)", SWIG_NewPointerObj((void *) data, + SWIGTYPE_p_ob__EventData, + 0)); + + // call the callback + result = PyEval_CallObject(func, arglist); + if (!result || PyErr_Occurred()) { + // an exception occured in the script, display it + PyErr_Print(); + } + + Py_XDECREF(result); + Py_DECREF(arglist); +} + +void python_callback(PyObject *func, KeyData *data) +{ + PyObject *arglist; + PyObject *result; + + arglist = Py_BuildValue("(O)", SWIG_NewPointerObj((void *) data, + SWIGTYPE_p_ob__KeyData, + 0)); + + // call the callback + result = PyEval_CallObject(func, arglist); + if (!result || PyErr_Occurred()) { + // an exception occured in the script, display it + PyErr_Print(); + } + + Py_XDECREF(result); + Py_DECREF(arglist); +} + +} +%} + %ignore ob::OBScreen::clients; %{ #include <iterator> |
