]> Dogcows Code - chaz/openbox/blobdiff - scripts/builtins.py
undefine the scriptdir, thats not where otk.py will be going
[chaz/openbox] / scripts / builtins.py
index d87bf3d84dae560f7fb6f42daea57f36f16f26c6..0b90585f987a47d783b4f51dc3c020be567996b4 100644 (file)
 ### Functions that can be used as callbacks for mouse/keyboard bindings ###
 ###########################################################################
 
+def state_above(data, add=2):
+    """Toggles, adds or removes the 'above' state on a window."""
+    if not data.client: return
+    send_client_msg(OBDisplay_screenInfo(data.screen).rootWindow(),
+                    OBProperty.net_wm_state, data.client.window(), add,
+                    openbox.property().atom(OBProperty.net_wm_state_above))
+    
+def state_below(data, add=2):
+    """Toggles, adds or removes the 'below' state on a window."""
+    if not data.client: return
+    send_client_msg(OBDisplay_screenInfo(data.screen).rootWindow(),
+                    OBProperty.net_wm_state, data.client.window(), add,
+                    openbox.property().atom(OBProperty.net_wm_state_below))
+    
+def state_shaded(data, add=2):
+    """Toggles, adds or removes the 'shaded' state on a window."""
+    if not data.client: return
+    send_client_msg(OBDisplay_screenInfo(data.screen).rootWindow(),
+                    OBProperty.net_wm_state, data.client.window(), add,
+                    openbox.property().atom(OBProperty.net_wm_state_shaded))
+    
 def close(data):
     """Closes the window on which the event occured"""
-    client = Openbox_findClient(openbox, data.window())
-    if client: OBClient_close(client)
+    if not data.client: return
+    send_client_msg(OBDisplay_screenInfo(data.screen).rootWindow(),
+                    OBProperty.net_close_window, data.client.window(), 0)
 
 def focus(data):
     """Focuses the window on which the event occured"""
-    client = Openbox_findClient(openbox, data.window())
-    if not client: return
-    type = OBClient_type(client)
+    if not data.client: return
     # !normal windows dont get focus from window enter events
-    if data.action() == EventEnterWindow and not OBClient_normal(client):
+    if data.action == EventEnterWindow and not data.client.normal():
         return
-    OBClient_focus(client)
+    data.client.focus()
 
 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
+    if not data.client: return
 
     # !normal windows dont get moved
-    if not OBClient_normal(client): return
+    if not data.client.normal(): return
 
-    dx = data.xroot() - data.pressx()
-    dy = data.yroot() - data.pressy()
-    OBClient_move(client, data.press_clientx() + dx, data.press_clienty() + dy)
+    dx = data.xroot - data.pressx
+    dy = data.yroot - data.pressy
+    data.client.move(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
+    if not data.client: return
 
     # !normal windows dont get moved
-    if not OBClient_normal(client): return
+    if not data.client.normal(): return
 
-    px = data.pressx()
-    py = data.pressy()
-    dx = data.xroot() - px
-    dy = data.yroot() - py
+    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
+    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
+        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
+                corner = OBClient.BottomLeft
             dy *= -1
         else:
-            if x < data.press_clientwidth() / 2:
-                corner = OBClient_TopRight
+            if x < data.press_clientwidth / 2:
+                corner = OBClient.TopRight
                 dx *= -1
             else:
-                corner = OBClient_TopLeft
+                corner = OBClient.TopLeft
 
-    OBClient_resize(client, corner,
-                    data.press_clientwidth() + dx,
-                    data.press_clientheight() + dy);
+    data.client.resize(corner,
+                       data.press_clientwidth + dx,
+                       data.press_clientheight + dy);
 
 def restart(data):
     """Restarts openbox"""
-    Openbox_restart(openbox, "")
+    openbox.restart("")
 
 def raise_win(data):
     """Raises the window on which the event occured"""
-    client = Openbox_findClient(openbox, data.window())
-    if not client: return
-    screen = Openbox_screen(openbox, OBClient_screen(client))
-    OBScreen_restack(screen, 1, client)
+    if not data.client: return
+    openbox.screen(data.screen).restack(1, data.client)
 
 def lower_win(data):
     """Lowers the window on which the event occured"""
-    client = Openbox_findClient(openbox, data.window())
-    if not client: return
-    screen = Openbox_screen(openbox, OBClient_screen(client))
-    OBScreen_restack(screen, 0, client)
+    if not data.client: return
+    openbox.screen(data.screen).restack(0, data.client)
 
 def toggle_shade(data):
     """Toggles the shade status of the window on which the event occured"""
-    client = Openbox_findClient(openbox, data.window())
-    if not client: return
-    print "toggle_shade"
-    OBClient_shade(client, not OBClient_shaded(client))
+    state_shaded(data)
 
 def shade(data):
     """Shades the window on which the event occured"""
-    client = Openbox_findClient(openbox, data.window())
-    if not client: return
-    OBClient_shade(client, 1)
+    state_shaded(data, 1)
 
 def unshade(data):
     """Unshades the window on which the event occured"""
-    client = Openbox_findClient(openbox, data.window())
-    if not client: return
-    OBClient_shade(client, 0)
+    state_shaded(data, 0)
 
 def change_desktop(data, num):
     """Switches to a specified desktop"""
-    root = ScreenInfo_rootWindow(OBDisplay_screenInfo(data.screen()))
-    send_client_msg(root, OBProperty_net_current_desktop, root, num)
+    root = OBDisplay_screenInfo(data.screen).rootWindow()
+    send_client_msg(root, OBProperty.net_current_desktop, root, num)
 
 def next_desktop(data, no_wrap=0):
     """Switches to the next desktop, optionally (by default) cycling around to
        the first when going past the last."""
-    screen = Openbox_screen(openbox, data.screen())
-    d = OBScreen_desktop(screen)
-    n = OBScreen_numDesktops(screen)
+    screen = openbox.screen(data.screen)
+    d = screen.desktop()
+    n = screen.numDesktops()
     if (d < (n-1)):
         d = d + 1
     elif not no_wrap:
@@ -125,9 +132,9 @@ def next_desktop(data, no_wrap=0):
 def prev_desktop(data, no_wrap=0):
     """Switches to the previous desktop, optionally (by default) cycling around
        to the last when going past the first."""
-    screen = Openbox_screen(openbox, data.screen())
-    d = OBScreen_desktop(screen)
-    n = OBScreen_numDesktops(screen)
+    screen = openbox.screen(data.screen)
+    d = screen.desktop()
+    n = screen.numDesktops()
     if (d > 0):
         d = d - 1
     elif not no_wrap:
@@ -136,21 +143,18 @@ def prev_desktop(data, no_wrap=0):
 
 def send_to_desktop(data, num):
     """Sends a client to a specified desktop"""
-    root = ScreenInfo_rootWindow(OBDisplay_screenInfo(data.screen()))
-    client = Openbox_findClient(openbox, data.window())
-    if client:
-        window = OBClient_window(client)
-        send_client_msg(root, OBProperty_net_wm_desktop, window, num)
+    if not data.client: return
+    send_client_msg(OBDisplay_screenInfo(data.screen).rootWindow(),
+                    OBProperty.net_wm_desktop, data.client.window(), num)
 
 def send_to_next_desktop(data, no_wrap=0, follow=1):
     """Sends a window to the next desktop, optionally (by default) cycling
        around to the first when going past the last. Also optionally moving to
        the new desktop after sending the window."""
-    client = Openbox_findClient(openbox, data.window())
-    if not client: return
-    screen = Openbox_screen(openbox, data.screen())
-    d = OBScreen_desktop(screen)
-    n = OBScreen_numDesktops(screen)
+    if not data.client: return
+    screen = openbox.screen(data.screen)
+    d = screen.desktop()
+    n = screen.numDesktops()
     if (d < (n-1)):
         d = d + 1
     elif not no_wrap:
@@ -163,11 +167,10 @@ def send_to_prev_desktop(data, no_wrap=0, follow=1):
     """Sends a window to the previous desktop, optionally (by default) cycling
        around to the last when going past the first. Also optionally moving to
        the new desktop after sending the window."""
-    client = Openbox_findClient(openbox, data.window())
-    if not client: return
-    screen = Openbox_screen(openbox, data.screen())
-    d = OBScreen_desktop(screen)
-    n = OBScreen_numDesktops(screen)
+    if not data.client: return
+    screen = openbox.screen(data.screen)
+    d = screen.desktop()
+    n = screen.numDesktops()
     if (d > 0):
         d = d - 1
     elif not no_wrap:
@@ -175,7 +178,7 @@ def send_to_prev_desktop(data, no_wrap=0, follow=1):
     send_to_desktop(data, d)
     if follow:
         change_desktop(data, d)
-    
+
 #########################################
 ### Convenience functions for scripts ###
 #########################################
@@ -184,6 +187,6 @@ def execute(bin, screen = 0):
     """Executes a command on the specified screen. It is recommended that you
        use this call instead of a python system call. If the specified screen
        is beyond your range of screens, the default is used instead."""
-    Openbox_execute(openbox, screen, bin)
+    openbox.execute(screen, bin)
 
 print "Loaded builtins.py"
This page took 0.030969 seconds and 4 git commands to generate.