Window creation: Difference between revisions
Content added Content deleted
(→{{header|TXR}}: Move translation tag into subsection.) |
(→{{header|TXR}}: X11 solution.) |
||
Line 2,075: | Line 2,075: | ||
(SDL_WaitEvent e)))) |
(SDL_WaitEvent e)))) |
||
(SDL_Quit))</lang> |
(SDL_Quit))</lang> |
||
===X11=== |
|||
{{trans|C}} |
|||
<lang txrlisp>(typedef XID uint32) |
|||
(typedef Window XID) |
|||
(typedef Drawable XID) |
|||
(typedef Display (cptr Display)) |
|||
(typedef GC (cptr GC)) |
|||
(typedef XEventType (enum _XEventType |
|||
(KeyPress 2) |
|||
(Expose 12))) |
|||
(defvarl KeyPressMask (ash 1 0)) |
|||
(defvarl ExposureMask (ash 1 15)) |
|||
(typedef XEvent (union _XEvent |
|||
(type XEventType) |
|||
(pad (array 24 long)))) |
|||
(defvarl NULL cptr-null) |
|||
(with-dyn-lib "libX11.so" |
|||
(deffi XOpenDisplay "XOpenDisplay" Display (bstr)) |
|||
(deffi XCloseDisplay "XCloseDisplay" int (Display)) |
|||
(deffi XDefaultScreen "XDefaultScreen" int (Display)) |
|||
(deffi XRootWindow "XRootWindow" Window (Display int)) |
|||
(deffi XBlackPixel "XBlackPixel" ulong (Display int)) |
|||
(deffi XWhitePixel "XWhitePixel" ulong (Display int)) |
|||
(deffi XCreateSimpleWindow "XCreateSimpleWindow" Window (Display |
|||
Window |
|||
int int |
|||
uint uint uint |
|||
ulong ulong)) |
|||
(deffi XSelectInput "XSelectInput" int (Display Window long)) |
|||
(deffi XMapWindow "XMapWindow" int (Display Window)) |
|||
(deffi XNextEvent "XNextEvent" int (Display (ptr-out XEvent))) |
|||
(deffi XDefaultGC "XDefaultGC" GC (Display int)) |
|||
(deffi XFillRectangle "XFillRectangle" int (Display Drawable GC |
|||
int int uint uint)) |
|||
(deffi XDrawString "XDrawString" int (Display Drawable GC |
|||
int int bstr int))) |
|||
(let* ((msg "Hello, world!") |
|||
(d (XOpenDisplay nil))) |
|||
(when (equal d NULL) |
|||
(put-line "Cannot-open-display" *stderr*) |
|||
(exit 1)) |
|||
(let* ((s (XDefaultScreen d)) |
|||
(w (XCreateSimpleWindow d (XRootWindow d s) 10 10 100 100 1 |
|||
(XBlackPixel d s) (XWhitePixel d s)))) |
|||
(XSelectInput d w (logior ExposureMask KeyPressMask)) |
|||
(XMapWindow d w) |
|||
(while t |
|||
(let ((e (make-union (ffi XEvent)))) |
|||
(XNextEvent d e) |
|||
(caseq (union-get e 'type) |
|||
(Expose |
|||
(XFillRectangle d w (XDefaultGC d s) 20 20 10 10) |
|||
(XDrawString d w (XDefaultGC d s) 10 50 msg (length msg))) |
|||
(KeyPress (return))))) |
|||
(XCloseDisplay d)))</lang> |
|||
=={{header|Vedit macro language}}== |
=={{header|Vedit macro language}}== |