diff options
| author | Dana Jansens <danakj@orodu.net> | 2003-01-03 06:43:53 +0000 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2003-01-03 06:43:53 +0000 |
| commit | 165601550c205d6159a41146c38c5a30884f75e7 (patch) | |
| tree | dc377a6d58751a56980dddc786103307a503b9df /scripts/builtins.py | |
| parent | 1965483b5ab297607ec544fcc47dd88e29e8bb5b (diff) | |
provide these functions for callbacks
Diffstat (limited to 'scripts/builtins.py')
| -rw-r--r-- | scripts/builtins.py | 60 |
1 files changed, 60 insertions, 0 deletions
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); + |
