provide these functions for callbacks

This commit is contained in:
Dana Jansens 2003-01-03 06:43:53 +00:00
parent 1965483b5a
commit 165601550c

60
scripts/builtins.py Normal file
View file

@ -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);