summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorThomas Thurman <tthurman@gnome.org>2008-05-12 03:31:32 +0000
committerThomas James Alexander Thurman <tthurman@src.gnome.org>2008-05-12 03:31:32 +0000
commit8547d1e8ed7c7b296e2626e72d8c2aeef5406567 (patch)
tree0b7b96350245fe80e421b8c6f668ddb3c4dd11d1 /tools
parentb095ecc195b199aa65552d8e272c8672ab7430b9 (diff)
downloadmutter-8547d1e8ed7c7b296e2626e72d8c2aeef5406567.tar.gz
Basic Python-based Xlib client for testing and building upon.
2008-05-12 Thomas Thurman <tthurman@gnome.org> * tools/xlib.py: Basic Python-based Xlib client for testing and building upon. svn path=/trunk/; revision=3707
Diffstat (limited to 'tools')
-rw-r--r--tools/xlib.py43
1 files changed, 43 insertions, 0 deletions
diff --git a/tools/xlib.py b/tools/xlib.py
new file mode 100644
index 000000000..4a244c4f6
--- /dev/null
+++ b/tools/xlib.py
@@ -0,0 +1,43 @@
+# Very simple Xlib-based client in Python.
+# Copyright (c) 2008 Thomas Thurman <tthurman@gnome.org>; GPL 2.0 or later.
+# Originally based around example code in python-xlib
+# by Peter Liljenberg <petli@ctrl-c.liu.se>.
+
+import sys
+
+from Xlib import X
+from Xlib.protocol import display
+from Xlib.protocol.request import *
+
+display = display.Display()
+screen = display.info.roots[display.default_screen]
+window = display.allocate_resource_id()
+gc = display.allocate_resource_id()
+
+CreateWindow(display, None,
+ depth = screen.root_depth,
+ wid = window,
+ parent = screen.root,
+ x = 100, y = 100, width = 250, height = 250, border_width = 2,
+ window_class = X.InputOutput, visual = X.CopyFromParent,
+ background_pixel = screen.white_pixel,
+ event_mask = (X.ExposureMask |
+ X.StructureNotifyMask |
+ X.ButtonPressMask |
+ X.ButtonReleaseMask |
+ X.Button1MotionMask),
+ colormap = X.CopyFromParent)
+
+CreateGC(display, None, gc, window)
+
+MapWindow(display, None, window)
+
+while 1:
+ event = display.next_event()
+
+ if event.type == X.DestroyNotify:
+ sys.exit(0)
+
+ print event
+
+