Window creation/X11: Difference between revisions

m
No edit summary
Line 657:
<lang qbasic>
 
'--- added a flush to exit cleanly
PRAGMA LDFLAGS `pkg-config --cflags --libs x11`
PRAGMA INCLUDE <X11/Xlib.h>
PRAGMA INCLUDE <X11/Xutil.h>
PRAGMA INCLUDE <string.h>
OPTION PARSE FALSE
 
OPTION PARSE FALSE
'---XLIB is so ugly
ALIAS XNextEvent TO EVENT
Line 676 ⟶ 677:
ALIAS XFlush TO FLUSH
 
'---pointer to X Display structure
DECLARE d TYPE Display*
'---pointer to the newly created window
'DECLARE w TYPE WindowWINDOW
'---pointer to the XEvent
Line 689 ⟶ 691:
'--- number of screen to place the window on
DECLARE s TYPE int
 
 
msg = "Hello, World!"
d = DISPLAY(NULL)
IF d == NULL THEN
EPRINT "Cannot open display" FORMAT "%s%s\n"
END
END IF
s = SCREEN(d)
w = CREATE(d, RootWindow(d, s), 10, 10, 100, 100, 1,BlackPixel(d, s), WhitePixel(d, s))
EVENT_TYPE(d, w, ExposureMask | KeyPressMask)
MAP_EVENT(d, w)
WHILE (1)
EVENT(d, &e)
IF e.type == Expose THEN
FILL_RECTANGLE(d, w, DefaultGC(d, s), 20, 20, 10, 10)
DRAW_STRING(d, w, DefaultGC(d, s), 10, 50, msg, strlen(msg))
END IF
IF e.type == KeyPress THEN
BREAK
END IF
WEND
FLUSH(d)
CLOSE_DISPLAY(d)
 
</lang>
 
</lang>
 
=={{header|C}}==
69

edits