From: Dana Jansens Date: Fri, 3 Jan 2003 06:43:53 +0000 (+0000) Subject: provide these functions for callbacks X-Git-Url: https://git.brokenzipper.com/gitweb?a=commitdiff_plain;h=165601550c205d6159a41146c38c5a30884f75e7;p=chaz%2Fopenbox provide these functions for callbacks --- diff --git a/scripts/builtins.py b/scripts/builtins.py new file mode 100644 index 00000000..bce2b0f0 --- /dev/null +++ b/scripts/builtins.py @@ -0,0 +1,60 @@ +########################################################################### +### Functions that can be used as callbacks for mouse/keyboard bindings ### +########################################################################### + +def close(data): + """Closes the window on which the event occured""" + client = Openbox_findClient(openbox, data.window()) + if client: OBClient_close(client) + +def focus(data): + """Focuses the window on which the event occured""" + client = Openbox_findClient(openbox, data.window()) + if not client: return + OBClient_focus(client) + +def move(data): + """Moves the window interactively. This should only be used with + MouseMotion events""" + client = Openbox_findClient(openbox, data.window()) + if not client: return + + dx = data.xroot() - data.pressx() + dy = data.yroot() - data.pressy() + OBClient_move(client, data.press_clientx() + dx, data.press_clienty() + dy) + +def resize(data): + """Resizes the window interactively. This should only be used with + MouseMotion events""" + client = Openbox_findClient(openbox, data.window()) + if not client: return + + px = data.pressx() + py = data.pressy() + dx = data.xroot() - px + dy = data.yroot() - py + + # pick a corner to anchor + if not (resize_nearest or data.context() == MC_Grip): + corner = OBClient_TopLeft + else: + x = px - data.press_clientx() + y = py - data.press_clienty() + if y < data.press_clientheight() / 2: + if x < data.press_clientwidth() / 2: + corner = OBClient_BottomRight + dx *= -1 + else: + corner = OBClient_BottomLeft + dy *= -1 + else: + if x < data.press_clientwidth() / 2: + corner = OBClient_TopRight + dx *= -1 + else: + corner = OBClient_TopLeft + + OBClient_resize(client, corner, + data.press_clientwidth() + dx, + data.press_clientheight() + dy); +