summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--tools/xlib.py43
2 files changed, 48 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index e2e22b3..e7fe193 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2008-05-12 Thomas Thurman <tthurman@gnome.org>
+
+ * tools/xlib.py: Basic Python-based Xlib client for testing
+ and building upon.
+
2008-05-09 Elijah Newren <newren gmail com>
* src/ui/color.[ch]:
diff --git a/tools/xlib.py b/tools/xlib.py
new file mode 100644
index 0000000..4a244c4
--- /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
+
+