X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=src%2Fpython.hh;h=de9afdfb626bea56179b0168f63f8a33f36e6fc8;hb=0348a2f3abd2334f5f5812c5fb45c1b4fffb46a5;hp=189c29b32a05569d89dc30e8dfea14a8ac04024a;hpb=345d957e1ea577480f807b892b73c3f52fe913d2;p=chaz%2Fopenbox diff --git a/src/python.hh b/src/python.hh index 189c29b3..de9afdfb 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, @@ -65,11 +66,10 @@ enum EventAction { NUM_EVENTS }; -// *** MotionData can be (and is) cast ButtonData!! (in actions.cc) *** // -class MotionData { +class MouseData { public: int screen; - OBClient *client; + Client *client; Time time; unsigned int state; unsigned int button; @@ -84,10 +84,10 @@ public: int press_clientwidth; int press_clientheight; - MotionData(int screen, OBClient *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) { + 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) { this->screen = screen; this->client = client; this->time = time; @@ -104,21 +104,8 @@ public: this->press_clientwidth = initarea.width(); this->press_clientheight = initarea.height(); } -}; - -// *** MotionData can be (and is) cast ButtonData!! (in actions.cc) *** // -class ButtonData { -public: - int screen; - OBClient *client; - Time time; - unsigned int state; - unsigned int button; - MouseContext context; - MouseAction action; - - ButtonData(int screen, OBClient *client, Time time, unsigned int state, - unsigned int button, MouseContext context, MouseAction action) { + MouseData(int screen, Client *client, Time time, unsigned int state, + unsigned int button, MouseContext context, MouseAction action) { this->screen = screen; this->client = client; this->time = time; @@ -126,17 +113,25 @@ public: this->button = button; this->context= context; this->action = action; + this->xroot = xroot; + this->yroot = yroot; + this->pressx = 0; + this->pressy = 0; + this->press_clientx = 0; + this->press_clienty = 0; + this->press_clientwidth = 0; + this->press_clientheight = 0; } }; 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; @@ -148,18 +143,18 @@ public: class KeyData { public: int screen; - OBClient *client; + Client *client; Time time; unsigned int state; std::string key; - KeyData(int screen, OBClient *client, Time time, unsigned int state, + KeyData(int screen, Client *client, Time time, unsigned int state, unsigned int key) { 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)); } }; @@ -171,14 +166,13 @@ 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 * ***********************************************/ -void python_callback(PyObject *func, MotionData *data); -void python_callback(PyObject *func, ButtonData *data); +void python_callback(PyObject *func, MouseData *data); void python_callback(PyObject *func, EventData *data); void python_callback(PyObject *func, KeyData *data); @@ -193,7 +187,7 @@ 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); }