summaryrefslogtreecommitdiff
path: root/d-x11/main.d
blob: 5f21f2545b5dfbaf2979c403a5fce0a17858112e (plain)
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
import core.sys.posix.unistd;
import core.stdc.stdlib;

extern(C) {
	struct Display;
	struct Screen;
	alias Window = ulong;

	Display* XOpenDisplay(const char*);
	Window XDefaultRootWindow(Display*);
	Window XCreateSimpleWindow(Display*, Window, int, int, uint, uint, uint, ulong, ulong);
	int XMapWindow(Display*, Window);
	int XFlush(Display*);
	int XCloseDisplay(Display*);
}

void main() {
	Display* mainDisplay = XOpenDisplay(null);
	if (mainDisplay is null) {
		exit(1);
	}

	Window rootWindow = XDefaultRootWindow(mainDisplay);

	Window mainWindow = XCreateSimpleWindow(
		mainDisplay, rootWindow,
		0, 0,         // x, y position
		800, 600,     // width, height
		0,            // border width
		0,            // border color (ignored)
		0xFF0000      // background color (red)
	);

	XMapWindow(mainDisplay, mainWindow);
	XFlush(mainDisplay);

	while(true) {
		sleep(1);
	}
}