X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=src%2Fpython.hh;h=7c31e85c4a48ed9515dba3763be821e4ea6f85fb;hb=3682df8ed27e96067a171b71cbf58d5a00ca813b;hp=8868ee87503484b9bc842a335c7cb9749d1082c8;hpb=b67f5e702e3cc12e4217dd31e2c522dde1ee19b0;p=chaz%2Fopenbox diff --git a/src/python.hh b/src/python.hh index 8868ee87..7c31e85c 100644 --- a/src/python.hh +++ b/src/python.hh @@ -10,6 +10,7 @@ #include "otk/rect.hh" #include "otk/property.hh" #include "otk/display.hh" +#include "otk/ustring.hh" extern "C" { #include @@ -21,7 +22,7 @@ extern "C" { namespace ob { -class OBClient; +class Client; enum MouseContext { MC_Frame, @@ -31,7 +32,7 @@ enum MouseContext { MC_MaximizeButton, MC_CloseButton, MC_IconifyButton, - MC_StickyButton, + MC_AllDesktopsButton, MC_Grip, MC_Root, MC_MenuItem, @@ -52,6 +53,12 @@ enum KeyContext { NUM_KEY_CONTEXT }; +enum KeyAction { + EventKeyPress, + EventKeyRelease, + NUM_KEY_ACTION +}; + enum EventAction { EventEnterWindow, EventLeaveWindow, @@ -62,13 +69,14 @@ enum EventAction { EventShutdown, EventFocus, EventBell, + EventUrgentWindow, NUM_EVENTS }; class MouseData { public: int screen; - OBClient *client; + Client *client; Time time; unsigned int state; unsigned int button; @@ -83,7 +91,7 @@ public: int press_clientwidth; int press_clientheight; - MouseData(int screen, OBClient *client, Time time, unsigned int state, + MouseData(int screen, Client *client, Time time, unsigned int state, unsigned int button, MouseContext context, MouseAction action, int xroot, int yroot, const otk::Point &initpos, const otk::Rect &initarea) { @@ -103,7 +111,7 @@ public: this->press_clientwidth = initarea.width(); this->press_clientheight = initarea.height(); } - MouseData(int screen, OBClient *client, Time time, unsigned int state, + MouseData(int screen, Client *client, Time time, unsigned int state, unsigned int button, MouseContext context, MouseAction action) { this->screen = screen; this->client = client; @@ -126,11 +134,11 @@ public: class EventData { public: int screen; - OBClient *client; + Client *client; unsigned int state; EventAction action; - EventData(int screen, OBClient *client, EventAction action, + EventData(int screen, Client *client, EventAction action, unsigned int state) { this->screen = screen; this->client = client; @@ -142,19 +150,21 @@ public: class KeyData { public: int screen; - OBClient *client; + Client *client; Time time; unsigned int state; - std::string key; + char *key; + KeyAction action; - KeyData(int screen, OBClient *client, Time time, unsigned int state, - unsigned int key) { + KeyData(int screen, Client *client, Time time, unsigned int state, + unsigned int key, KeyAction action) { this->screen = screen; this->client = client; this->time = time; this->state = state; - this->key = XKeysymToString(XKeycodeToKeysym(otk::OBDisplay::display, + this->key = XKeysymToString(XKeycodeToKeysym(**otk::display, key, 0)); + this->action = action; } }; @@ -165,8 +175,8 @@ void python_destroy(); bool python_exec(const std::string &path); bool python_get_long(const char *name, long *value); -bool python_get_string(const char *name, std::string *value); -bool python_get_stringlist(const char *name, std::vector *value); +bool python_get_string(const char *name, otk::ustring *value); +bool python_get_stringlist(const char *name, std::vector *value); /*********************************************** * These are found in openbox.i, not python.cc * @@ -182,11 +192,14 @@ PyObject *mbind(const std::string &button, ob::MouseContext context, PyObject *kbind(PyObject *keylist, ob::KeyContext context, PyObject *func); +PyObject *kgrab(int screen, PyObject *func); +PyObject *kungrab(); + PyObject *ebind(ob::EventAction action, PyObject *func); void set_reset_key(const std::string &key); -PyObject *send_client_msg(Window target, int type, Window about, +PyObject *send_client_msg(Window target, Atom type, Window about, long data, long data1 = 0, long data2 = 0, long data3 = 0, long data4 = 0); }