These are brief descriptions of the demo programs and what you can
expect them to do.  

demo:

control the postion of a square using two sliders.  Use the return
value of dopanel to compare against globals and decide what action to
take.  Control the value of an actuator from user code.

demo2:

like demo, except two vertical sliders, with one controlling the width of
the other.

demo3:

like demo, but uses two panels, with some actuators on one and some on
the other.

demo4:

like demo, three panels, buttons select color, call dumppanel().

demo5:

overlapping actuators, (not really handled by the panel lib by the
way).  use of needredraw() and userredraw() to avoid continually
redrawing the data window.  note careful use of odd number of
swapbuffers between dopanels().

demo6:

use of drawpanel instead of dopanel, should allow moving of panels but
doesn't.  actuators don't do anything.

demo7:

uses downfuncs to set color, save drawing function, choose drawing
function.  uses activefunc of one button to continually update random
number.  uses upfunc to restore drawing function to that previously
saved.  bug- after drawing newsnorks, data window does not redisplay
saved function until redraw is forced.

demo8:

like demo7, but now display reverts to saved function after newsnorks.
initscriptpanel() called to create the default scripting control
panel.  Widebuttons used.

demo9:

no graphics, build a useract structure, use it as an actuator in one
function and as a useract in another function.  

demo10:

color map stepper, Marty's original demo for strip charts and meters.

demo11:

no panel library panels, just a demo of g_getstring.  on NeWS systems
there seems to be a bug if any other event get in the queue, so no
clicking or moving this window.

demo12:

like demo4, with a typein that is not connected to anything.

demo13:

like demo12, with filled sliders.

demo14:

like demo4, with a puck instead of two sliders.  uses PNL_ACCESS
macro to access the actuator specific data for the puck.

demo15:

like demo14, with a floating puck.  uses an upfunc to save the last
position of the square so that it does not reset to zero each time the
puck is selected (which is what floating pucks do).

demo16:

like demo15 with a rubber puck.

demo17:

first demo with no data window.  action functions are used to set
contents and mode of typeout.  

demo18:

file viewer.  another typeout demo.  note not so good behaviour when
clicking on the elevator region and then dragging into text.

demo19:

something like a dialog box, wioth error messages.

demo20:

demo14 with an expanded panel2.  along with a button to call
dumppanel(), there are the scripting functions.  an up to date version
of panel2 is available now with initscriptpanel().

demo21:

like demo14, but no puck, use the mouse actuator instead.  note use of
a separately declared pointer to access actuator-specific data for the
mouse (instead of PNL_ACCESS()).  

demo22:

like demo, with slideroids instead of sliders.

demo23:

black data window, buttons flip visibility flags for sliders.  panel's
upfunc is fixpanel, reshapes panel to reflect appearance of sliders.

demo24:

no data window.  two palettes, one input one, shaped like a slider and
colored over a large range, and an output one, square with minval and
maxval set to the same color.  

demo25:

like demo, with dials.

demo26:

an interesting arrangement of dials and buttons.

demo27:

every kind of actutator up to this point, plus arrow buttons.  note
use of macros to control positioning of actuators in defpanel().

demo28:

three multislider modes.  one slider is unselectable, and so appears
cross-hatched.  note fine-control mode (holding down the control key)
works for multisliders as well and sliders.

demo29:

a multislider with some fancy behaviour wired in for its sliderbars.
lower sliderbar is an hslider, that controls the rate the middle
slider bounces between the top and bottom.  something like this is
used in electro-paint for the modulating sliders.  the sliderbar
motions are all controlled by user code in the animatesliders()
function.  this is the first demo where the user builds a complex
actuator by adding subactuators.

demo30:

a menu actuator.  user builds a menu.  menus don't pop by themselves,
they are a stable rectangular region where you pick the subactuators
just by dragging across them.

demo31:

the menu from demo30 gets added as a subactuator to an icon actuator,
to add the popping behaviour.  

demo32:

like demo31, but the subactuators of the menu are hsliders instead of
menuitems.  

demo33:

three popping menus as in demo31.  this demo verifies left/right
positioning of menus after being deiconified.

demo34:

like demo31, but uses the predefined iconmenu actuator instead of the
icon/menu combination.  see iconmenu.c for an example of a hierarchical
actuator that looks like a simple actuator to the user.

demo35:

three frames at different sizes.  note procedural definition of the
frames.  

demo36:

like demo30, but a cycle instead of a menu.

demo37, demo38:	(same code)

the three menus from demo33 in a nested menu.

demo39:

a wild demo of label positioning.

demo40:

a panel with no actuators, to test library's behaviour under this
admittedly degenerate case.  

demo41:

like demo, but no dopanels, calls startpanel before entering main
loop, and gets current actuator from the pnl_ca global.  idea is to
have the library running asynchronously in another thread.  this is
not working yet.

demo42:

like demo12, with the addition of a panel to control the visibility of
the other panels.

demo43:

a large number of sliders scrolling in a scroll actuator.

demo44:

the mondo collection of actuators of demo27 in a scroll actuator.

demo45:

like demo12, with the addition of a delete button on each panel.
After deleting all the panels there's not much left to do but kill
it.

demo46:

like demo45, but comes up with a a single panel with buttons that
create copies of the other three panels.  nothing gets drawn in the
data window until a panel3 (color) panel is created.  multiple copies
of each panel may exist.

demo47:

like demo28, but with horizontal multisliders.