
SUMMARY of dashboard tricks, tips, features (for advanced users and
designers)

			MOUSE CLICKS

(Usually, click on the bezel around the meter, or anywhere in
 the graphical object)

Mouse-1 : 		select objects and drag them around
Shift-Mouse-1 : 	edit objects (including canvas and script)
Ctrl-Shift-Mouse-3 : 	delete objects

Drag-Mouse-2 : 		make green select box
			you can then drag the select box around, and all its
			contents will travel along together.

Mouse-3 : 		get Graphic object menu from canvas
Ctrl-Shift-Mouse-1	duplicate Graphic object

Ctrl-Mouse-1 : 		help on objects
Ctrl-Mouse-2 : 		help on keywords
Shift-Mouse-2 : 	detach Meter from dashboard into its own window

			MECHANISMS and INTERNALS

CONDITIONS on Editable Attributes of all objects permit objects to
	change their appearance according to Boolean Expressions
	involving keywords and pseudokeywords.  each object can have
	multiple Conditions.

PSEUDO KEYWORDS permit you to define your own keywords as Expressions
	involving other keywords (including other previously defined
	pseudoKeywords).  usually these are Numeric, but Boolean ones
	can be very useful also.

ALARMS on Boolean Expressions permit you to establish I(nformational),
	W(arning), E(rror), and F(atal) level messages and actions
	on Boolean Expressions.  Each named Alarm is a family of related
	expressions and actions.

POPUP dashboards are attached to Graphical Objects;  the attribute
	is 'unfold' and the value is 'mkDashboard N' where N is the
	ordinal number of the subdashboard.  To make a subdashboard
	type the command 'mkDashboard N' in the command window and
	hit return.  You get to keep track of N, by the way.

All keyword values are stored in internal global arrays.  The array
is named after the service (instrument) and the elements are keyword
names.  There is a special service called 'pseudo' for the pseudoKW.
You can 'set esi(TFILTORD)' in the command window and the value of
the keyword will appear to change.  You can also use tkinspect to
do this.

There's a special global array 'Desired' for desired keyword values.

You can use tkinspect to see *all* the internal state and data storage
of the dashboard application (or any other Tk application running on
your X server).  You must be using Xauth security for tkinspect to run.

------- TIPS

Be careful of your xpos and ypos values when setting up conditions
(see below).  Make them empty (null) for nonNormal conditions.  Otherwise
you run the risk of moving the object to a new location (thus resetting
its Normal position) and having it jump back to its old location when
any of its Conditions becomes true.  In general, having widgets that 
jumping around is not such a great idea -- but text that changes
its size can be very effective.

Sometimes, as of a recent release of Tk, you will get more than you
bargained for with a key binding.   You may get the expect action
and then another action bound to a 'subset' of modifiers.  I've
tried to make them nonconflicting, but be prepared.

Always try to use two perceptual channels where possible, if you really
want the user to notice something.  Colour of text can be used along
with change of text (so that the filter name is red when the filter name
is 'RED').  In most widgets you have foreground, background, and sometimes
border colour to play with.  Border width can be very useful.

Save often.

