2002-12-25 02:19:49 +00:00
|
|
|
// -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*-
|
|
|
|
#ifndef __python_hh
|
|
|
|
#define __python_hh
|
|
|
|
|
|
|
|
/*! @file python.hh
|
|
|
|
@brief wee
|
|
|
|
*/
|
|
|
|
|
|
|
|
extern "C" {
|
2003-01-03 02:48:25 +00:00
|
|
|
#include <X11/Xlib.h>
|
2002-12-25 02:19:49 +00:00
|
|
|
#include <Python.h>
|
|
|
|
}
|
|
|
|
|
2002-12-31 19:15:24 +00:00
|
|
|
#include <string>
|
2003-01-03 02:48:25 +00:00
|
|
|
#include <vector>
|
2002-12-31 19:15:24 +00:00
|
|
|
|
2002-12-25 02:19:49 +00:00
|
|
|
namespace ob {
|
|
|
|
|
2003-01-03 00:26:36 +00:00
|
|
|
enum MouseContext {
|
|
|
|
MC_Frame,
|
|
|
|
MC_Titlebar,
|
|
|
|
MC_Window,
|
|
|
|
MC_MaximizeButton,
|
|
|
|
MC_CloseButton,
|
|
|
|
MC_IconifyButton,
|
|
|
|
MC_StickyButton,
|
|
|
|
MC_Grip,
|
|
|
|
MC_Root,
|
|
|
|
MC_MenuItem,
|
|
|
|
NUM_MOUSE_CONTEXT
|
2003-01-03 02:48:25 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
enum MouseAction {
|
|
|
|
MousePress,
|
|
|
|
MouseClick,
|
|
|
|
MouseDoubleClick,
|
|
|
|
MouseMotion,
|
|
|
|
NUM_MOUSE_ACTION
|
|
|
|
};
|
|
|
|
|
2003-01-03 00:26:36 +00:00
|
|
|
enum KeyContext {
|
|
|
|
KC_Menu,
|
|
|
|
KC_All,
|
|
|
|
NUM_KEY_CONTEXT
|
2003-01-03 02:48:25 +00:00
|
|
|
};
|
2003-01-03 00:26:36 +00:00
|
|
|
|
|
|
|
#ifndef SWIG
|
2002-12-31 19:15:24 +00:00
|
|
|
void python_init(char *argv0);
|
2003-01-02 20:36:14 +00:00
|
|
|
void python_destroy();
|
|
|
|
bool python_exec(const std::string &path);
|
|
|
|
|
2003-01-03 02:48:25 +00:00
|
|
|
void python_callback(PyObject *func, MouseAction action,
|
|
|
|
Window window, MouseContext context,
|
2003-01-02 20:36:14 +00:00
|
|
|
unsigned int state, unsigned int button,
|
|
|
|
int xroot, int yroot, Time time);
|
2002-12-27 08:39:53 +00:00
|
|
|
|
2003-01-02 20:36:14 +00:00
|
|
|
void python_callback(PyObject *func, Window window, unsigned int state,
|
|
|
|
unsigned int key, Time time);
|
2002-12-31 06:59:46 +00:00
|
|
|
|
2002-12-30 06:31:45 +00:00
|
|
|
|
2003-01-02 20:36:14 +00:00
|
|
|
bool python_get_string(const char *name, std::string *value);
|
2003-01-02 21:05:29 +00:00
|
|
|
bool python_get_stringlist(const char *name, std::vector<std::string> *value);
|
2003-01-03 00:26:36 +00:00
|
|
|
#endif
|
2002-12-30 22:27:46 +00:00
|
|
|
|
2003-01-03 02:48:25 +00:00
|
|
|
PyObject * mbind(const std::string &button, ob::MouseContext context,
|
|
|
|
ob::MouseAction action, PyObject *func);
|
|
|
|
|
|
|
|
PyObject * kbind(PyObject *keylist, ob::KeyContext context, PyObject *func);
|
|
|
|
PyObject * kunbind(PyObject *keylist);
|
|
|
|
void kunbind_all();
|
|
|
|
void set_reset_key(const std::string &key);
|
|
|
|
|
2002-12-25 02:19:49 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
#endif // __python_hh
|