summaryrefslogtreecommitdiff
path: root/scripts/builtins.py
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2003-01-03 06:43:53 +0000
committerDana Jansens <danakj@orodu.net>2003-01-03 06:43:53 +0000
commit165601550c205d6159a41146c38c5a30884f75e7 (patch)
treedc377a6d58751a56980dddc786103307a503b9df /scripts/builtins.py
parent1965483b5ab297607ec544fcc47dd88e29e8bb5b (diff)
provide these functions for callbacks
Diffstat (limited to 'scripts/builtins.py')
-rw-r--r--scripts/builtins.py60
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);
+