#define __python_hh
/*! @file python.hh
- @brief Python stuff
+ @brief wee
*/
-#include <python2.2/Python.h>
+#include "actions.hh"
+#include "widget.hh"
+#include "bindings.hh"
+
+extern "C" {
+#include <Python.h>
+}
namespace ob {
-extern "C" {
+//! Add a python callback funtion to the back of the hook list
+bool python_register(int action, PyObject *callback);
+//! Add a python callback funtion to the front of the hook list
+bool python_preregister(int action, PyObject *callback);
+//! Remove a python callback function from the hook list
+bool python_unregister(int action, PyObject *callback);
-void initopenbox();
+//! Removes all python callback functions from the hook list
+bool python_unregister_all(int action);
+
+//! Add a mouse/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(PyObject *keylist, PyObject *callback);
+
+bool python_unbind(PyObject *keylist);
+
+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);
-}
}
#endif // __python_hh