
This is a Glossary of words that refer to the Graphical User Interface 



cycle:  A cycle selection is like a toggle, but in the format of a logical
	selection.  The text explaining the meaning of the parameter is 
	followed by an oval, in which appears the current value.  As the user
	clicks on the oval, the value of the cycle is changed.  When all the
	choices have been exhausted, the cycle repeats. The actual value
	of the cycle selection will be an integer (1 to N, where N is the
	number of choices in the cycle).  However, these may be represented
	by any words the application programmer sees fit.  For instance, 
	a meal-planning application might have a cycle selection for wines that 
	cycled through values of, "bordeaux", "zinfandel", "chablis", 
	"champagne", and so on.

form, or forms:  
	 This informal word was adopted early on by the Khoros group, and
         is used with various meanings, depending on context.  It may refer 
         to the graphical user interface of a particular application, eg, 
         "The forms used in \fIxprism3\fP are very similar to those used in 
	 \fIxprism2\fP". It is also used interchangably with the word 'xvforms',
	 (defined above) as in, "Any bugs found in the forms are Danielle's
	 problem".  Finally, the word 'form' can also refer to 
	 particular GUI specification that is used to define the 
         physical appearance of a graphical application. These files are
	 almost always named "application.form", as in, "The form for
	 editimage is KHOROS_HOME/repos/editimage/editimage.form".

guide button:
	A button appearing on the guide pane of a subform that when clicked on,
	causes the currently displayed pane on the right side of the subform
	to change.

guide pane:
	A guide pane exists only on a subform of a graphical user interface.
	Although it may appear anywhere, as specified by its geometry string,  
	Khoros applications always have guide panes on the left side of their
	subforms.  A guide pane may contain guide buttons, subform action 
	buttons, help buttons, quit buttons, or workspaces.  The main function
	of a guide pane is to provide guide buttons, that are used to "page"
	through the panes that normally appear on the right side of a subform.
	A guide pane is quickly identified in the following manner: if guide
	buttons exist that when clicked on, the pane to the right of the 
	subform changes accordingly, then the section of the user interface
	which contains the guide buttons is a guide pane.  Most subforms
	of most applications in Khoros have guide panes, as it is helpful
	to divide up input to a subform between two or more panes.  However,
	a subform need not have a guide pane if only one pane is necessary.
	A good example of a GUI with a single subform with a single pane is
	\fIpreview\fP.  Here, the amount of information needed is so small
	that the entire user interface fits on a single pane.

help button:
	A specialized button used in all applications to provide online help.
	When clicked on, the help button will display a text widget in which
	the applicable help file will appear.  A quit button at the upper
	left hand corner allows the user to get rid of the help page when 
	desired.  Help buttons are also used to provide copyright notices on
	all applications.  When used to display a copyright, a help button
	should appear on the upper left hand corner of the UIS, and should
	be labelled, "Copyright".  All applications display the same copyright
	notice.

live:   InputFile, Outputfile, String, Float, Integer, Logical, and Toggle
	selections may be 'live', if specified by the application programmer.
	If a selection is live and contains a text widget, the selection 
	will be followed by a pixmap depicting a curving arrow that 
	points downward, representing a 
	carriage return.  When a selection is live, changing the value of
	that selection (and hitting carriage return, if a value is to be
	entered in a text widget),  software control will immediately be
	returned to the application program, so that some action may be
	taken right away.  This is most often appropriate when the application
	program needs only one piece of information to perform a particular
	action.


logical:  
	A logical selection allows the user to set a boolean value. Text
	explaining the meaning of the parameter is followed by an oval, in
	which appears the current value.  The user may change the value back
	and forth by clicking on the oval.  The actual value of the logical
	selection will be either 0 or 1 - however, these may be represented by
	any words the application programmer sees fit: "True" and "False", 
	"Yes" and "No", "Male" and "Female" are a few popular representations.

master  action button,
subform action button,
pane    action button:
	All these buttons perform the same function:  to return software
	control to the application, and notify the application of the action,
	so that the application may take the action specified.  The only 
	distinction is in location on the GUI:  a master action button appears
	on a master form, a subform action button appears on the guide pane of
	a subform, and a pane action button appears on a pane.

master form:
	The master form of a GUI is the highest 
	in the visual hierarchy of the graphical user interface of an
	application;  if an application has a master form, this will be
	the first thing the user sees when they execute the application.  
	It may contain subform buttons, master action
	buttons, help buttons, quit buttons, or workspaces.  The main
	function of a master form is to present the user with a choice 
	of subforms.  Not all applications have a master form;  if an
	application has the need for only one subform, a master form
	is not necessary.  A master form on a GUI is quickly identified
	in the following manner:  if subform buttons exist that when clicked on,
	subforms are mapped *independantly* of the existing user interface, then
	the existing user interface is a master form.
	A good example of a programs with a master form
	is \fIxprism2\fP - when \fIxprism2\fP is executed, 
	its master form comes up,
	containing 5 subform buttons, 5 master action buttons, a help button,
	a quit button, and a workspace on which plots will be displayed.
	When any of the xprism2 subform buttons are clicked on, their 
	corresponding subforms are displayed, independantly of the master form,
	which stays mapped.

mutually exclusive group:
	A mutually exclusive group is used when there are two or more 
	selections that the user may specify, but only
	one of the values for these selections should be used at any one time.  
	For example, suppose we had a graphical user interface that dealt
	with interior decoration of a room.  We need a integer selection 
	labelled, "Wallpaper", containing an text widget in which the user 
	may specify their choice of wallpaper represented by the number in
	the catalogue.  In addition, we need a string selection labelled, 
	"Paint", containing a text widget in which the user may type in their 
	choice of paint color. However, we have ornery workers
	who refuse to both paint and wallpaper the same room.  Therefore,
	we will require only one of the selections' values. In this
	case, we will make "Wallpaper" and "Paint" a mutually exclusive group.
	Each selection will be preceded by a box;  the box that is 
	highlighted at any time will indicate whether the workers are to
	wallpaper using the catalogue selection specified by "Wallpaper", 
	or the color of paint specified by "Paint".

pane:   Every subform must contain at least one pane.  On a pane of a GUI
	is where the actual input from the user is entered.  Panes may 
	contain various types of selections, in which the user may enter a
	string, an input file, a float value, etc.  Panes may contain
	toggles or logical selections which may have their values changed,
	or text which may inform the user.  Of course, panes may also have
	help buttons, quit buttons, action buttons, and the like.

quit button:
	Quit buttons can be used in one of two ways.  First, they are used
	to exit the application.  When used in this way, they are always
	labelled, "Quit".  Secondly, they are used to close subforms when
	the application in question does use a master form.  When used in this
	way, they are always labelled, "Close".

routine button: 
	A specialized button used almost exclusively by cantata, to fork off
	an execution of a particular Khoros program, with parameters specified
	by selections that generally appear above the routine button.

selection:
	A selection is any element of a pane which the user utilizes to enter
	a value or change a value.  Many selections contain text widgets in
	which the user may type in a string or a number;  these include the
	InputFile, OutputFile, String, Float, and Integer selections.  Other
	selections require the user to use the mouse to set their values;
	these are the Logical, Toggle, and Cycle selections.

subform: 
	A subform of a GUI is the second highest of the visual hierarchy of the
	GUI of an application.  It contains at least one pane; if it contains
	more than one pane, a guide pane will also be present, to allow the
	user to select which pane to which they wish to provide input.
	A GUI may have a master form with subform buttons which, when clicked
	on, will bring up independant subforms (see master form).  
	Alternatively, a GUI may not need so much information from the user
	as to warrant a master form, and so a single subform is used.  A
	good example of a program with a single subform is \fIwarpimage\fP.
	When \fIwarpimage\fP is executed, its single subform comes up.  The
	guide pane to the left contains 3 guide buttons, 
	3 subform action buttons, and a workspace below on which the 
	source and destination images are displayed.  Panes to the right may
	be changed by clicking on one of the guide buttons to the left.
	At first glance, one may think that the GUI of \fIwarpimage\fP has a
	master form - until one sees that the guide buttons on the guide pane
	to the left change the pane that is currently displayed, and do not 
	bring up subforms that are independant of the existing user interface.
	

subform button:  
	A button appearing on a master form that when clicked on,
	causes a subform to be displayed, independantly of the master form,
	which will continue to be mapped.
	


toggle:
	A toggle selection allows the user to choose from a finite number of
	pre-defined choices.  These choices may be of type InputFile, 
	OutputFile, Integer, Float, or String, but all choices must be of the
	same type.  Each choice appears on a pane, preceded by a box.  Only
	one box may be highlighted at any one time, and the box that is 
	highlighted indicates the current value of the toggle.

widget:
	In the context of Khoros, a widget is a graphical object created 
	by using the X Toolkit; it may be augmented or modified using the
	Athena widget set.  There are many kinds of widgets, not all of which
	are used in the implementation of Khoros 1.0. The entire graphical 
	user interface of any Khoros application is made up of widgets, and
	any graphical display initiated by any Khoros program is displayed
	on a widget.  For example, an optional live string selection is 
	made up of a command widget that acts as the optional button, 
	a label widget that
	contains the label of the selection, a text widget in which the user
	may enter the desired string, and a label widget that contains the
	pixmap representing the carriage return symbol.  All these widgets
	sit on a form widget that acts as their backplane, holding them all
	together as one entity.  For more information on widgets, we  
	recommend the "X Toolkit Intrinsics Programming Manual", by Adrian
	Nye and Tim O'Reilly.

workspace: 
	Workspace widgets provide a general-purpose widget as part of the
	GUI - they may be located on a master form, a guide pane, or a pane.
	Once the GUI is displayed, xvforms do not manage or further interfere 
	with the workspace widget - it is provided specifically so that the 
	application program may have convenient access to a widget that may 
	be used for whatever purpose is appropriate.


