Jump to content

Window creation: Difference between revisions

→‎{{header|TXR}}: X11 solution.
(→‎{{header|TXR}}: Move translation tag into subsection.)
(→‎{{header|TXR}}: X11 solution.)
Line 2,075:
(SDL_WaitEvent e))))
(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}}==
543

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.