| import sys, os | |
| # run xclient_build first, then make sure the shared object is on sys.path | |
| from _xclient_cffi import ffi, lib | |
| # ffi "knows" about the declared variables and functions from the | |
| # cdef parts of the module xclient_build created, | |
| # lib "knows" how to call the functions from the set_source parts | |
| # of the module. | |
| class XError(Exception): | |
| pass | |
| def main(): | |
| display = lib.XOpenDisplay(ffi.NULL) | |
| if display == ffi.NULL: | |
| raise XError("cannot open display") | |
| w = lib.XCreateSimpleWindow(display, lib.DefaultRootWindow(display), | |
| 10, 10, 500, 350, 0, 0, 0) | |
| lib.XMapRaised(display, w) | |
| event = ffi.new("XEvent *") | |
| lib.XNextEvent(display, event) | |
| if __name__ == '__main__': | |
| main() |