Window creation/X11: Difference between revisions

(→‎{{header|Perl 6}}: Minimal changes to make runnable)
Line 348:
 
<lang lisp>;;; Single-file/interactive setup; large applications should define an ASDF system instead
(cl:require :asdf)
(asdf:operate 'asdf:load-op :clx)
(cl:defpackage #:rc-xlib-window
(:use #:cl #:xlib))
(cl:in-package #:rc-xlib-window)
 
(let* ((display (open-default-display)))
(let* ((window (create-window :parent (screen-root (display-default-screen display))
(root-window (screen-root screen))
(black-pixel (screen-black-pixel screen))
(white-pixel (screen-white-pixel screen))
(window (create-window :parent root-window
:x 10 :xy 10
:width 100 :height 100
:background white-pixel
:event-mask '(:exposure :key-press)))
(gc (create-gcontext :drawable window
:foreground black-pixel
:background white-pixel)))
(map-window window)
(unwind-protect
(event-case (display :discard-p t)
(let* ((window (create-window :parent (screen-root (display-default-screen display))
(exposure ()
:x 10
(draw-rectangle window gc 20 20 10 10 :y 10t)
(draw-glyphs window gc 10 40 "Hello, :width 100World!")
nil #| continue receiving events :height 100|#)
:event-mask '(:exposure :key-press)) ()
(gc (create t #| non-gcontextnil result signals event-case to :drawableexit window)|#))
(map-windowwhen window)
(destroy-window window))
(event-case (display :discard-p t)
(close-display display))</lang>)
(exposure ()
 
(draw-rectangle window gc 20 20 10 10 t)
</lang>
(draw-glyphs window gc 10 40 "Hello, World!")
nil #| continue receiving events |#)
(key-press ()
t #| non-nil result signals event-case to exit |#))))
(close-display display))</lang>
 
=={{header|Go}}==
9

edits