PyRun_SimpleString("from _otk import *; from _openbox import *;");
PyRun_SimpleString("openbox = Openbox_instance()");
+ /* XXX
+ sys.path.append('stuff')
+ install the .py wrappers, and include their path with this, then import em
+ */
+
// set up access to the python global variables
PyObject *obmodule = PyImport_AddModule("__main__");
obdict = PyModule_GetDict(obmodule);
return NULL;
}
- if (!ob::Openbox::instance->actions()->bind(action, func)) {
+ if (!ob::Openbox::instance->bindings()->addEvent(action, func)) {
PyErr_SetString(PyExc_RuntimeError,"Unable to add binding.");
return NULL;
}
Py_INCREF(Py_None); return Py_None;
}
-PyObject *kunbind(PyObject *keylist)
+PyObject *kunbind(PyObject *keylist, PyObject *func)
{
if (!PyList_Check(keylist)) {
PyErr_SetString(PyExc_TypeError, "Invalid keylist. Not a list.");
return NULL;
}
-
+ if (!PyCallable_Check(func)) {
+ PyErr_SetString(PyExc_TypeError, "Invalid callback function.");
+ return NULL;
+ }
+
ob::OBBindings::StringVect vectkeylist;
for (int i = 0, end = PyList_Size(keylist); i < end; ++i) {
PyObject *str = PyList_GetItem(keylist, i);
vectkeylist.push_back(PyString_AsString(str));
}
- ob::Openbox::instance->bindings()->removeKey(vectkeylist);
+ if (!ob::Openbox::instance->bindings()->removeKey(vectkeylist, func)) {
+ PyErr_SetString(PyExc_RuntimeError, "Could not remove callback.");
+ return NULL;
+ }
Py_INCREF(Py_None); return Py_None;
}