-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathx11_window.jou
57 lines (50 loc) · 1.57 KB
/
x11_window.jou
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
if NETBSD:
link "-L/usr/X11R7/lib -Wl,-R/usr/X11R7/lib"
link "-lX11"
declare usleep(x: int) -> int
class Display:
pass
class XGCValues:
pass
class GC:
pass
declare XOpenDisplay(name: byte*) -> Display*
declare XCreateSimpleWindow(
display: Display*,
parent: long,
x: int,
y: int,
width: int,
height: int,
border_width: int,
border: long,
background: long,
) -> long
declare XCreateGC(display: Display*, drawable: long, valuemask: long, values: XGCValues*) -> GC*
declare XSetForeground(display: Display*, gc: GC*, foreground: long) -> int
declare XSelectInput(display: Display*, window: long, event_mask: long) -> int
declare XMapRaised(display: Display*, window: long) -> int
declare XDrawImageString(
display: Display*,
drawable: long,
gc: GC*,
x: int,
y: int,
string: byte*,
length: int,
) -> int
declare XDefaultRootWindow(display: Display*) -> long
declare XStoreName(display: Display*, window: long, name: byte*) -> int
declare XFlush(display: Display*) -> int
def main() -> int:
display = XOpenDisplay("")
window = XCreateSimpleWindow(display, XDefaultRootWindow(display), 200, 200, 200, 200, 5, 0, 0xff00ffL)
XStoreName(display, window, "Hello pink world")
gc = XCreateGC(display, window, 0, NULL)
XSetForeground(display, gc, 0xffffffL)
XSelectInput(display, window, 32768)
XMapRaised(display, window)
while True:
usleep(100)
XDrawImageString(display, window, gc, 50, 50, "hello", 5)
XFlush(display) # This makes the program die when closed. Don't know why :)