From b34824a4e2ddc0247099fa1b3952de426bfde05b Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Wed, 25 Dec 2002 04:54:44 +0000 Subject: global python scripts. client motion/resizing is all done via python now --- scripts/Makefile.am | 9 ++++++ scripts/clientmotion.py | 77 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 86 insertions(+) create mode 100644 scripts/Makefile.am create mode 100644 scripts/clientmotion.py (limited to 'scripts') diff --git a/scripts/Makefile.am b/scripts/Makefile.am new file mode 100644 index 00000000..b1cecc47 --- /dev/null +++ b/scripts/Makefile.am @@ -0,0 +1,9 @@ +scriptdir = $(libdir)/openbox/python +MAINTAINERCLEANFILES = Makefile.in +script_DATA = clientmotion.py +EXTRA_DIST = $(script_DATA) + +distclean-local: + rm -f *\~ .\#* +uninstall-am: + rmdir -p $(scriptdir) diff --git a/scripts/clientmotion.py b/scripts/clientmotion.py new file mode 100644 index 00000000..857d6377 --- /dev/null +++ b/scripts/clientmotion.py @@ -0,0 +1,77 @@ +posqueue = []; + +def motion_press(action, win, type, modifiers, button, xroot, yroot, time): + client = Openbox_findClient(openbox, win) + + global posqueue + newi = [button, xroot, yroot] + if client: + newi.append(new_Rect(OBClient_area(client))) + posqueue.append(newi) + + # ButtonPressAction *a = _posqueue[BUTTONS - 1]; + # for (int i=BUTTONS-1; i>0;) + # _posqueue[i] = _posqueue[--i]; + # _posqueue[0] = a; + # a->button = e.button; + # a->pos.setPoint(e.x_root, e.y_root); + + # OBClient *c = Openbox::instance->findClient(e.window); + # // if it's not defined, they should have clicked on the root window, so this + # // area would be meaningless anyways + # if (c) a->clientarea = c->area(); + +def motion_release(action, win, type, modifiers, button, xroot, yroot, time): + global posqueue + for i in posqueue: + if i[0] == button: + #delete_Rect i[3] + posqueue.remove(i) + break + + # ButtonPressAction *a = 0; + # for (int i=0; ibutton == e.button) + # a = _posqueue[i]; + # if (a) // found one and removed it + # _posqueue[i] = _posqueue[i+1]; + # } + # if (a) { // found one + # _posqueue[BUTTONS-1] = a; + # a->button = 0; + # } + + +def motion(action, win, type, modifiers, xroot, yroot, time): + client = Openbox_findClient(openbox, win) + + global posqueue + dx = xroot - posqueue[0][1] + dy = yroot - posqueue[0][2] + # _dx = x_root - _posqueue[0]->pos.x(); + # _dy = y_root - _posqueue[0]->pos.y(); + + if not client: + return + area = posqueue[0][3] # A Rect + if (type == Type_Titlebar) or (type == Type_Label): + OBClient_move(client, Rect_x(area) + dx, Rect_y(area) + dy) + # c->move(_posqueue[0]->clientarea.x() + _dx, + # _posqueue[0]->clientarea.y() + _dy); + elif type == Type_LeftGrip: + OBClient_resize(client, OBClient_TopRight, + Rect_width(area) - dx, Rect_height(area) + dy) + # c->resize(OBClient::TopRight, + # _posqueue[0]->clientarea.width() - _dx, + # _posqueue[0]->clientarea.height() + _dy); + elif type == Type_RightGrip: + OBClient_resize(client, OBClient_TopLeft, + Rect_width(area) + dx, Rect_height(area) + dy) + # c->resize(OBClient::TopLeft, + # _posqueue[0]->clientarea.width() + _dx, + # _posqueue[0]->clientarea.height() + _dy); + + +register(Action_ButtonPress, motion_press) +register(Action_ButtonRelease, motion_release) +register(Action_MouseMotion, motion) -- cgit v1.2.3