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.
