Remove x11ex

pull/28/head
rexim 5 years ago
parent 7c2f7ec11f
commit 644f4754c8

1
.gitignore vendored

@ -1,4 +1,3 @@
nimcache/
boomer
x11ex
*.ppm

@ -3,6 +3,6 @@ author = "me"
description = "Zoomer application for boomers"
license = "MIT"
srcDir = "src"
bin = @["boomer", "x11ex"]
bin = @["boomer"]
requires "nim >= 0.18.0", "x11 >= 1.1", "opengl >= 1.2.3"

@ -1,94 +0,0 @@
import x11/xlib, x11/xutil, x11/x, x11/keysym
type
Hello* = object
running*: bool
display: PDisplay
screen: cint
win: TWindow
wmDeleteMessage: TAtom
message: cstring
proc create_hello*(width, height: int,
message: string): Hello =
result.message = message
result.display = XOpenDisplay(nil)
if result.display == nil:
quit "Failed to open display"
result.screen = XDefaultScreen(result.display)
var rootwin = XRootWindow(result.display, result.screen)
result.win =
XCreateSimpleWindow(result.display, rootwin,
100, 10,
width.cuint, height.cuint, 5,
XBlackPixel(result.display,
result.screen),
XWhitePixel(result.display,
result.screen))
var size_hints = TXSizeHints(
flags: PSize or PMinSize or PMaxSize,
min_width: width.cint,
max_width: width.cint,
min_height: height.cint,
max_height: height.cint)
discard XSetStandardProperties(result.display,
result.win,
"Simple Window",
"window",
0, nil, 0,
addr(size_hints))
discard XSelectInput(result.display, result.win,
ButtonPressMask or KeyPressMask or
PointerMotionMask or ExposureMask)
discard XMapWindow(result.display, result.win)
result.wmDeleteMessage =
XInternAtom(result.display,
"WM_DELETE_WINDOW",
false.TBool)
discard XSetWMProtocols(result.display,
result.win,
result.wmDeleteMessage.addr, 1)
result.running = true
proc close* (hello: Hello) =
discard XDestroyWindow(hello.display, hello.win)
discard XCloseDisplay(hello.display)
proc draw* (hello: Hello) =
discard XDrawString(hello.display,
hello.win,
DefaultGC(hello.display, hello.screen),
10, 50,
hello.message,
hello.message.len.cint)
proc handle_event* (hello: var Hello) =
var xev: TXEvent
discard XNextEvent(hello.display, xev.addr)
case xev.theType
of Expose:
hello.draw()
of ClientMessage:
if cast[TAtom](xev.xclient.data.l[0]) == hello.wmDeleteMessage:
hello.running = false
of KeyPress:
var key = XLookupKeysym(cast[PXKeyEvent](xev.addr), 0)
if key != 0:
echo "Keyboard event"
of ButtonPressMask, PointerMotionMask:
echo "Mouse event"
else:
discard
proc main =
var hello = createHello(800, 600, "Hello!")
defer: hello.close()
while hello.running:
hello.handle_event()
main()
Loading…
Cancel
Save