This directory contains the source for the different demonstration
applications the are included with SCIX. They are, respectively:

bounce.sc:	A bouncing ball in a window. Run by typing
		(demo-bounce <width> <height> <screen>)
		The program is more interesting if <width> and <height>
		differ
		(it is of course possible to resize the window with the
		window manager). It should be obvious how to terminate
		this function.

graphic.sc:	Some pretty graphics. Run by
		(demo-graphic <size> <method> <screen>)
		for the values 'natural and 'smart for <method>. Se the
		code for the difference. (The 'smart method generates
		the requests to the X server in the optimal way for the
		server and should be faster if SCIX was the bottleneck.
		However, the two methods seem to be roughly equivalent
		in performance.) It quits by itself after five retakes.

hello.sc:	The classic "Hello, World!" example. Run by typing
		(demo-hello <screen>)
		Try pressing buttons in the window. Quit by pressing 'q'.
		Also note the way Expose-events are handled by closing
		and reopening the window with your window manager.

toggle.sc:	Three toggle-buttons with trivial (to say the least)
		actions bound to them. Run by typing
		(demo-toggle <screen>)
		It should be obvious how to terminate this function also.

tracker.sc:	A line tracks the pointer when inside the window. Run by
		typing (demo-tracker <screen>)
		Use the "Suspend"-button to terminate the event-handling
		loop without destroying the allocated resources, then
		start another demo (like demo-hello) and move the pointer
		between the two applications. It should be obvious how
		to terminate this function.
	
wheel.sc:	Draws a pretty colored wheel on a color screen and then
		rotates it. The inner workings of this application are
		discussed at some length in the SCIX report. Run by
		(demo-wheel <size> <screen>)
		and terminated by pressing a button in the window.
		
In all the above examples it is assumed that a connection to the X server
has been established by doing some thing like this:

(define dpy (make-display ":0"))

<screen> above refers to an object defined like this:

(define screen (dpy 'defaultscreen))

In the SCIX model of the X Window System the screen is used for everything.
The display object is only a means to aquire a screen object. After that it
will continue as a clearing station in the middle of the communication
between the client (ie the Scheme process) and the X server.
