X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=src%2Fpython.hh;h=b868c4722078301b3d759bcd40c3da0b242cbfaa;hb=d7a30f93b517ac76816d0acea92e9c56ad5d6594;hp=496b459de27682ba46879d170be490dcba4d9448;hpb=c645416035d64cc959d1dd0e937b31b07489e54b;p=chaz%2Fopenbox diff --git a/src/python.hh b/src/python.hh index 496b459d..b868c472 100644 --- a/src/python.hh +++ b/src/python.hh @@ -8,6 +8,7 @@ #include "actions.hh" #include "widget.hh" +#include "bindings.hh" extern "C" { #include @@ -16,8 +17,16 @@ extern "C" { namespace ob { //! Add a python callback funtion to the back of the hook list +/*! + Registering functions for KeyPress events is pointless. Use python_bind_key + instead to do this. +*/ bool python_register(int action, PyObject *callback); //! Add a python callback funtion to the front of the hook list +/*! + Registering functions for KeyPress events is pointless. Use python_bind_key + instead to do this. +*/ bool python_preregister(int action, PyObject *callback); //! Remove a python callback function from the hook list bool python_unregister(int action, PyObject *callback); @@ -25,12 +34,38 @@ bool python_unregister(int action, PyObject *callback); //! Removes all python callback functions from the hook list bool python_unregister_all(int action); +//! Add a keybinding +/*! + @param keylist A python list of modifier/key/buttons, in the form: + "C-A-space" or "A-Button1" etc. + @param callback A python function to call when the binding is used. +*/ +bool python_bind_key(PyObject *keylist, PyObject *callback); + +bool python_unbind_key(PyObject *keylist); + +//! Adds a mouse binding +/*! + Bindings do not generate motion events. You can only handle motion events by + using register to set a function for all motion events. Bindings do generate + ButtonPress, ButtonRelease, Click, and DoubleClick events. +*/ +bool python_bind_mouse(const std::string &button, PyObject *callback); + +bool python_unbind_mouse(const std::string &button); + +bool python_unbind_all(); + //! Fire a python callback function void python_callback(OBActions::ActionType action, Window window, OBWidget::WidgetType type, unsigned int state, long d1 = LONG_MIN, long d2 = LONG_MIN, long d3 = LONG_MIN, long d4 = LONG_MIN); +void python_callback_binding(int id, OBActions::ActionType action, + Window window, unsigned int state, + unsigned int keybutton, Time time); + } #endif // __python_hh