]> Dogcows Code - chaz/openbox/blobdiff - scripts/callbacks.py
use a focuslabel
[chaz/openbox] / scripts / callbacks.py
index 25ac965ff23a2e343cf7e40161bf03dae0dac1a9..8c220e6451db1efd4430fdc940f1986ab9ffce3f 100644 (file)
@@ -6,8 +6,14 @@ import ob
 import otk
 
 StateRemove = 0
+"""For the state_* callbacks. Indicates the state should be removed from the
+   window."""
 StateAdd = 1
+"""For the state_* callbacks. Indicates the state should be add to the
+   window."""
 StateToggle = 2
+"""For the state_* callbacks. Indicates the state should be toggled on the
+   window."""
 
 def state_above(data, add=StateAdd):
     """Toggles, adds or removes the 'above' state on a window.
@@ -36,6 +42,34 @@ def state_shaded(data, add=StateAdd):
                        otk.Property_atoms().net_wm_state, data.client.window(),
                        add, otk.Property_atoms().net_wm_state_shaded)
 
+def state_maximize(data, add=StateAdd):
+    """Toggles, adds or removes the horizontal and vertical 'maximized' state
+       on a window. The second paramater should one of: StateRemove, StateAdd,
+       or StateToggle."""
+    if not data.client: return
+    ob.send_client_msg(otk.display.screenInfo(data.screen).rootWindow(),
+                       otk.Property_atoms().net_wm_state, data.client.window(),
+                       add, otk.Property_atoms().net_wm_state_maximized_horz,
+                       otk.Property_atoms().net_wm_state_maximized_vert)
+
+def state_maximize_horz(data, add=StateAdd):
+    """Toggles, adds or removes the horizontal 'maximized' state on a window.
+       The second paramater should one of: StateRemove, StateAdd, or
+       StateToggle."""
+    if not data.client: return
+    ob.send_client_msg(otk.display.screenInfo(data.screen).rootWindow(),
+                       otk.Property_atoms().net_wm_state, data.client.window(),
+                       add, otk.Property_atoms().net_wm_state_maximized_horz)
+
+def state_maximize_vert(data, add=StateAdd):
+    """Toggles, adds or removes the vertical 'maximized' state on a window.
+       The second paramater should one of: StateRemove, StateAdd, or
+       StateToggle."""
+    if not data.client: return
+    ob.send_client_msg(otk.display.screenInfo(data.screen).rootWindow(),
+                       otk.Property_atoms().net_wm_state, data.client.window(),
+                       add, otk.Property_atoms().net_wm_state_maximized_vert)
+
 def state_skip_taskbar(data, add=StateAdd):
     """Toggles, adds or removes the 'skip_taskbar' state on a window.
        The second paramater should one of: StateRemove, StateAdd, or
@@ -85,10 +119,6 @@ def focus(data):
         return
     data.client.focus()
 
-def restart(data, other = ""):
-    """Restarts openbox, optionally starting another window manager."""
-    ob.openbox.restart(other)
-
 def raise_win(data):
     """Raises the window on which the event occured"""
     if not data.client: return
@@ -99,6 +129,44 @@ def lower_win(data):
     if not data.client: return
     ob.openbox.screen(data.screen).lowerWindow(data.client)
 
+def toggle_maximize(data):
+    """Toggles the maximized status of the window on which the event occured"""
+    state_maximize(data, StateToggle)
+
+def toggle_maximize_horz(data):
+    """Toggles the horizontal maximized status of the window on which the event
+       occured"""
+    state_maximize_horz(data, StateToggle)
+
+def toggle_maximize_vert(data):
+    """Toggles the vertical maximized status of the window on which the event
+       occured"""
+    state_maximize_vert(data, StateToggle)
+
+def maximize(data):
+    """Maximizes the window on which the event occured"""
+    state_maximize(data, StateAdd)
+
+def maximize_horz(data):
+    """Horizontally maximizes the window on which the event occured"""
+    state_maximize_horz(data, StateAdd)
+
+def maximize_vert(data):
+    """Vertically maximizes the window on which the event occured"""
+    state_maximize_vert(data, StateAdd)
+
+def unmaximize(data):
+    """Unmaximizes the window on which the event occured"""
+    state_maximize(data, StateRemove)
+
+def unmaximize_horz(data):
+    """Horizontally unmaximizes the window on which the event occured"""
+    state_maximize_horz(data, StateRemove)
+
+def unmaximize_vert(data):
+    """Vertically unmaximizes the window on which the event occured"""
+    state_maximize_vert(data, StateRemove)
+
 def toggle_shade(data):
     """Toggles the shade status of the window on which the event occured"""
     state_shaded(data, StateToggle)
@@ -194,4 +262,12 @@ def send_to_prev_desktop(data, no_wrap=0, follow=1):
     if follow:
         change_desktop(data, d)
 
+def restart(data=0, other = ""):
+    """Restarts Openbox, optionally starting another window manager."""
+    ob.openbox.restart(other)
+
+def exit(data=0):
+    """Exits Openbox."""
+    ob.openbox.shutdown()
+
 print "Loaded callbacks.py"
This page took 0.022292 seconds and 4 git commands to generate.