|
|
@ -3,41 +3,34 @@ import x11/xlib, x11/xutil, x11/x, x11/keysym
|
|
|
|
const
|
|
|
|
const
|
|
|
|
WINDOW_WIDTH = 800
|
|
|
|
WINDOW_WIDTH = 800
|
|
|
|
WINDOW_HEIGHT = 600
|
|
|
|
WINDOW_HEIGHT = 600
|
|
|
|
|
|
|
|
DISPLAY_STRING = "Hello, Nimrods. Pepepains"
|
|
|
|
|
|
|
|
|
|
|
|
var
|
|
|
|
var
|
|
|
|
# TODO: why do we need this shit here? REeeee
|
|
|
|
|
|
|
|
width, height: cuint
|
|
|
|
|
|
|
|
display: PDisplay
|
|
|
|
display: PDisplay
|
|
|
|
screen: cint
|
|
|
|
screen: cint
|
|
|
|
depth: int
|
|
|
|
|
|
|
|
win: TWindow
|
|
|
|
win: TWindow
|
|
|
|
sizeHints: TXSizeHints
|
|
|
|
|
|
|
|
wmDeleteMessage: TAtom
|
|
|
|
wmDeleteMessage: TAtom
|
|
|
|
running: bool
|
|
|
|
running: bool
|
|
|
|
xev: TXEvent
|
|
|
|
|
|
|
|
display_string = "Hello, Nimrods. Pepepains"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
proc create_window =
|
|
|
|
proc create_window =
|
|
|
|
width = WINDOW_WIDTH
|
|
|
|
|
|
|
|
height = WINDOW_HEIGHT
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
display = XOpenDisplay(nil)
|
|
|
|
display = XOpenDisplay(nil)
|
|
|
|
if display == nil:
|
|
|
|
if display == nil:
|
|
|
|
quit "Failed to open display"
|
|
|
|
quit "Failed to open display"
|
|
|
|
|
|
|
|
|
|
|
|
screen = XDefaultScreen(display)
|
|
|
|
screen = XDefaultScreen(display)
|
|
|
|
depth = XDefaultDepth(display, screen)
|
|
|
|
|
|
|
|
var rootwin = XRootWindow(display, screen)
|
|
|
|
var rootwin = XRootWindow(display, screen)
|
|
|
|
win = XCreateSimpleWindow(display, rootwin,
|
|
|
|
win = XCreateSimpleWindow(display, rootwin,
|
|
|
|
100, 10,
|
|
|
|
100, 10,
|
|
|
|
width, height, 5,
|
|
|
|
WINDOW_WIDTH, WINDOW_HEIGHT, 5,
|
|
|
|
XBlackPixel(display, screen),
|
|
|
|
XBlackPixel(display, screen),
|
|
|
|
XWhitePixel(display, screen))
|
|
|
|
XWhitePixel(display, screen))
|
|
|
|
size_hints.flags = PSize or PMinSize or PMaxSize
|
|
|
|
|
|
|
|
size_hints.min_width = width.cint
|
|
|
|
var size_hints = TXSizeHints(
|
|
|
|
size_hints.max_width = width.cint
|
|
|
|
flags: PSize or PMinSize or PMaxSize,
|
|
|
|
size_hints.min_height = height.cint
|
|
|
|
min_width: WINDOW_WIDTH.cint,
|
|
|
|
size_hints.max_height = height.cint
|
|
|
|
max_width: WINDOW_WIDTH.cint,
|
|
|
|
|
|
|
|
min_height: WINDOW_HEIGHT.cint,
|
|
|
|
|
|
|
|
max_height: WINDOW_HEIGHT.cint)
|
|
|
|
|
|
|
|
|
|
|
|
discard XSetStandardProperties(display,
|
|
|
|
discard XSetStandardProperties(display,
|
|
|
|
win,
|
|
|
|
win,
|
|
|
@ -68,10 +61,11 @@ proc draw_screen =
|
|
|
|
discard XDrawString(display, win,
|
|
|
|
discard XDrawString(display, win,
|
|
|
|
DefaultGC(display, screen),
|
|
|
|
DefaultGC(display, screen),
|
|
|
|
10, 50,
|
|
|
|
10, 50,
|
|
|
|
displayString.cstring,
|
|
|
|
DISPLAY_STRING.cstring,
|
|
|
|
displayString.len.cint)
|
|
|
|
DISPLAY_STRING.len.cint)
|
|
|
|
|
|
|
|
|
|
|
|
proc handle_event =
|
|
|
|
proc handle_event =
|
|
|
|
|
|
|
|
var xev: TXEvent
|
|
|
|
discard XNextEvent(display, xev.addr)
|
|
|
|
discard XNextEvent(display, xev.addr)
|
|
|
|
case xev.theType
|
|
|
|
case xev.theType
|
|
|
|
of Expose:
|
|
|
|
of Expose:
|
|
|
|