#!/bin/sh

../../scx <<EOF

,batch on

,open xlib

(define (hello text)
  (let* ((dpy (open-display))
	 (cm (copy-colormap-and-free (display-default-colormap dpy)))

	 ;; many ways to get color in your progs.
	 (black (black-pixel dpy))
	 (white (white-pixel dpy))
	 (blue (alloc-color! cm (make-color 0 0 1)))
	 (green (alloc-named-color cm "#00FF00"))
	 (red (alloc-named-color cm 'red))

	 (win (create-window 
	       (display-default-root-window dpy)
	       100 200 300 200 10
	       'copy-from-parent 'copy-from-parent 'copy-from-parent
	       (quasiquote 
		((,(set-window-attribute event-mask) . (exposure button-press))
		 (,(set-window-attribute background-pixel) . ,white)
		 (,(set-window-attribute colormap) . ,cm)))))
	 (gc (create-gcontext 
	      win
	      (list (cons (gc-value background) white)
		    (cons (gc-value foreground) black))))
	 (font (open-font dpy "*-new century schoolbook-bold-r*24*"))
	 (font2 (open-font dpy "*times*18*")))
    (set-wm-name! win '("scx Hello World Program"))
    (map-window win)

    (let event-loop ()
      (display-flush-output dpy)
      (let ((e (wait-event dpy)))
	(if
	 (case (event-type e)
	   ((expose)
	    (set-gcontext-font! gc font)
	    (set-gcontext-foreground! gc black)
	    (draw-poly-text win gc 10 25 text '1-byte)
	    (set-gcontext-foreground! gc blue)
	    (draw-poly-text win gc 20 50 (list font text) '1-byte)
	    (set-gcontext-foreground! gc red)
	    (set-gcontext-font! gc font2)
	    (draw-image-text win gc 30 75 text '1-byte)
	    #t)
	   (else #f))
	 (event-loop)
	 #f)))
    (close-display dpy)))

(hello "Hello World!")

,exit

EOF