X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Fopenbox.i;h=aeae40dd051188937098bfd488e4374f79e3d659;hb=1c8090fa67994215f5e79cd9dd08f82110589d8a;hp=dfd532f30eb1774e0d3f22ed2abcd6a7b043a7e6;hpb=579ed5aa8d1b33a69476c2182a98ebc30557f096;p=chaz%2Fopenbox diff --git a/src/openbox.i b/src/openbox.i index dfd532f3..aeae40dd 100644 --- a/src/openbox.i +++ b/src/openbox.i @@ -24,154 +24,7 @@ ob::Openbox *Openbox_instance() { return ob::Openbox::instance; } %}; -// stuff for scripting callbacks! -%inline %{ - enum ActionType { - Action_ButtonPress, - Action_Click, - Action_DoubleClick, - Action_EnterWindow, - Action_LeaveWindow, - Action_KeyPress, - Action_MouseMotion, - Action_NewWindow, - Action_CloseWindow - }; - enum WidgetType { - Type_Frame, - Type_Titlebar, - Type_Handle, - Type_Plate, - Type_Label, - Type_MaximizeButton, - Type_CloseButton, - Type_IconifyButton, - Type_StickyButton, - Type_LeftGrip, - Type_RightGrip, - Type_Window, - Type_Root - }; -%} %rename(register) python_register; -%inline %{ -/*PyObject * python_register(int action, PyObject *func, bool infront = false) -{ - if (!PyCallable_Check(func)) { - PyErr_SetString(PyExc_TypeError, "Invalid callback function."); - return NULL; - } - - if (!ob::Openbox::instance->actions()->registerCallback( - (ob::OBActions::ActionType)action, func, infront)) { - PyErr_SetString(PyExc_RuntimeError, "Unable to register action callback."); - return NULL; - } - Py_INCREF(Py_None); return Py_None; -} - -PyObject * unregister(int action, PyObject *func) -{ - if (!PyCallable_Check(func)) { - PyErr_SetString(PyExc_TypeError, "Invalid callback function."); - return NULL; - } - - if (!ob::Openbox::instance->actions()->unregisterCallback( - (ob::OBActions::ActionType)action, func)) { - PyErr_SetString(PyExc_RuntimeError, "Unable to unregister action callback."); - return NULL; - } - Py_INCREF(Py_None); return Py_None; -} - -PyObject * unregister_all(int action) -{ - if (!ob::Openbox::instance->actions()->unregisterAllCallbacks( - (ob::OBActions::ActionType)action)) { - PyErr_SetString(PyExc_RuntimeError, - "Unable to unregister action callbacks."); - return NULL; - } - Py_INCREF(Py_None); return Py_None; -} -*/ -PyObject * mbind(const std::string &button, MouseContext context, - PyObject *func) -{ - if (!PyCallable_Check(func)) { - PyErr_SetString(PyExc_TypeError, "Invalid callback function."); - return NULL; - } - - if (!ob::Openbox::instance->bindings()->add(vectkeylist, func)) { - PyErr_SetString(PyExc_RuntimeError,"Unable to add binding."); - return NULL; - } - Py_INCREF(Py_None); return Py_None; -} - -PyObject * kbind(PyObject *keylist, KeyContext context, PyObject *func) -{ - if (!PyCallable_Check(func)) { - PyErr_SetString(PyExc_TypeError, "Invalid callback function."); - return NULL; - } - if (!PyList_Check(keylist)) { - PyErr_SetString(PyExc_TypeError, "Invalid keylist. Not a list."); - return NULL; - } - - ob::OBBindings::StringVect vectkeylist; - for (int i = 0, end = PyList_Size(keylist); i < end; ++i) { - PyObject *str = PyList_GetItem(keylist, i); - if (!PyString_Check(str)) { - PyErr_SetString(PyExc_TypeError, - "Invalid keylist. It must contain only strings."); - return NULL; - } - vectkeylist.push_back(PyString_AsString(str)); - } - - if (!ob::Openbox::instance->bindings()->add(vectkeylist, func)) { - PyErr_SetString(PyExc_RuntimeError,"Unable to add binding."); - return NULL; - } - Py_INCREF(Py_None); return Py_None; -} - -PyObject * kunbind(PyObject *keylist) -{ - if (!PyList_Check(keylist)) { - PyErr_SetString(PyExc_TypeError, "Invalid keylist. Not a list."); - return NULL; - } - - ob::OBBindings::StringVect vectkeylist; - for (int i = 0, end = PyList_Size(keylist); i < end; ++i) { - PyObject *str = PyList_GetItem(keylist, i); - if (!PyString_Check(str)) { - PyErr_SetString(PyExc_TypeError, - "Invalid keylist. It must contain only strings."); - return NULL; - } - vectkeylist.push_back(PyString_AsString(str)); - } - - ob::Openbox::instance->bindings()->remove(vectkeylist); - Py_INCREF(Py_None); return Py_None; -} - -void kunbind_all() -{ - ob::Openbox::instance->bindings()->removeAll(); -} - -void set_reset_key(const std::string &key) -{ - ob::Openbox::instance->bindings()->setResetKey(key); -} -%} %ignore ob::OBScreen::clients; %{