\chapter{Attributes of Interface Windows}
\section{Conventions}
%
%
The original version of the DsTool toolkit was written to conform to  the 
SUN {\em Open Look}$^{\mbox{\tiny \copyright}}$ conventions.
This version was written using the Tcl/Tk toolkit, but adheres to the 
Open Look conventions whenever possible.  For example, 
%For example, a button labeled with an inverted triangle means that activating 
%the button opens a menu while 
a menu entry with trailing  ellipses  implies
the entry will generate a pop-up window if selected.
We will also use the Open Look nomenclature SELECT\index{mouse, select button}, 
ADJUST\index{mouse, adjust button}, and MENU\index{mouse, menu button} when referencing the 
mouse buttons.  (If your mouse has three
buttons then these are usually the left, middle and right buttons, 
respectively.) 

Many of the functions of DsTool can be executed by using the keyboard
instead of the mouse.\index{keyboard input}  In general, pressing \unix{Tab}
while the cursor points into a window will cause a panel item to be 
highlighted with a black outline.  Pressing \unix{Tab} again will cause the 
outline to switch to the next exclusive or non-exclusive setting, listbox,
scrollbar, button, or read-write text field.  (See below for descriptions of 
these panel items.)   Pressing \unix{Return} or \unix{Space} in one of these
items will have different effects depending upon the type of button.
The following conventions and notation are used throughout:

\begin{description}

\item[Window title:] The text located in the window header.
\item[Function:] A brief summary of the window's main purpose within DsTool.
\item[Description:] Instructions on how to open the window and a 
	detailed account of the window's behavior when the user
	interacts with it.  
%\item[Window type:] The types are {\em base} and {\em pop-up}.  
%\item[Window attributes:] The windows in DsTool have three 
%	possible attributes which specify how they are opened (closed),
%	resized, and created.  To specify how windows are opened and closed
%	the attributes {\em iconizable} or {\em pinnable} are used.
%	If a window
%	is pinnable then the initial state of the pin (out or in)
%	will be specified.   To specify whether or not a window is resizable,
%	we assign the attributes  {\em resizable} or {\em non-resizable}.
%	Lastly, the attributes {\em fixed template} or 
%	{\em variable template} are used to specify whether a window looks 
%	the same for any dynamical system or whether it contains window items 
%	which are particular to  the currently loaded dynamical system. 
%	Sometimes attributes depend on whether the current dynamical system
%	is a mapping or a vector field, but are otherwise fixed.  We call these
%	{\em fixed/variable} windows.
\item[Panel items:] A complete listing of all items located on the window's 
	control panel, along with a brief description of each item's characteristics.
	The terms used in this document are: 
	\begin{itemize}
	%
	\item Button: There are five types of buttons used in DsTool.
	The first type of button is the {\em command}\index{command button}\index{button, command} 
        button, which initiates an action when selected.  Some actions are
	potentially dangerous (\eg, writing data to a file which already
	exists) and such actions are accompanied by a {\em notifier}\index{notifier} which
	requests confirmation.  A command button has the command it will execute designated on its face.  
	The second type of button is the
	{\em window}\index{window button}\index{button, window} button which opens a pop-up
        window when selected.  A window button has the name of the pop-up window it will open 
        followed by ellipsis (...) marks designated on its face. 
	A third type of button is the {\em command-window}\index{command-window button}\index{button, command-window} 
	button, which when selected first initiates an action, and then opens a pop-up window. 
	A command-window button has the command it will execute followed by ellipsis marks designated on its face.
	The fourth type of button is the {\em menu} button\index{menu button}\index{button, menu}, which 
        displays a menu of options\index{menu}\index{menu}
	when SELECT is pressed while the pointer is on it.
	A menu button is a flat button whose label has its first letter underlined.  
	The fifth type of button is the {\em popup menu}\index{popup menu button}\index{button, popup menu}
        button, which functions just like a menu button.   A popup menu button 
	is a raised button with a thin rectangle at the far
	right of its face.  Popup menu buttons are usually used for stack settings.
	Of these types of buttons, only command, command-window, and window buttons respond to 
	keyboard input.  Pressing \unix{Space} in one of these buttons is equivalent to 
	pressing the SELECT button.  Pressing \unix{Return} does nothing.
\begin{figure}[H]
\centerline{\psfig{figure=ps/buttons.ps,height=58pt}}
\caption{\label{buttons}
Five types of buttons.
}
\end{figure}
	%
	\item Text Fields:\index{text field} A text field is an area where numerical
	or alphabetic information may be stored and displayed.
	Most text fields are {\em read-write}, meaning that the
	user may input information into them, but some text fields
	are {\em read-only}.  A text field which accepts only integer values is called a {\em 
	numeric}\index{numeric field} field.  Read-write and numeric text fields can obtain
	the focus of the cursor by using the \unix{Tab} key.  Pressing \unix{Return}
	while the focus is on a read-write text field will generally cause an update procedure
	to be executed.  Usually, this saves the appropriate variables for that window to 
	the Postmaster.  In some cases, other window items will be updated to reflect new information.
	%
	\item Message:\index{message} A message is similar to a text field.  The
	program uses messages to display information to the user.  A message is always read-only.
	%
	\item Settings: A setting is a list of choices.  
	A {\em non-exclusive}\index{non-exclusive setting}\index{setting, non-exclusive}
	setting presents options  which 
	may be chosen independently, such as selecting data to be saved into a file.
	An {\em exclusive}\index{exclusive setting}\index{setting, exclusive}
	 setting is a set of options which are mutually
	exclusive, such as the choices ``on'' and ``off.''  
	Both exclusive and non-exclusive settings function the same way with respect to 
	keyboard input.  Pressing \unix{Return} or \unix{Space} while the focus is 
	on a setting of these types will select the appropriate choice.
	A third type of setting is called a {\em stack}\index{stack setting}\index{setting, stack} 
	setting.  It is
	related to the exclusive setting in that only one option may be
	selected from among the choices, but unlike the exclusive setting,
	not all options are displayed at one time. 
	The currently selected option is displayed on the popup menu 
	button; all options may be viewed by clicking the button with SELECT.
	Stack settings do not respond to keyboard input.
	%
	\item Listbox:\index{listbox} A listbox is a box with a list of entries in it,
	one or more of which may be selected by the user.  Listboxes differ from exclusive
	and non-exclusive settings by the fact that the choices may not be 
        completely independent or exclusive.
	For example, a listbox may allow only two of its entries to be selected.  Also,
	the number of entries that can be selected in a listbox might change with the
	value of another variable.  Selected entries will appear
	differently, usually with a raised gray background.
	Pressing SELECT or \unix{Space} will (de)select the entry that the mouse is pointing
	to or the underlined entry, respectively.  The underlined entry may be moved up or down with 
	the arrow keys.  Pressing \unix{Return}
	will do nothing.  
	\item Text Pane:\index{text pane} A text pane is a region in which the user may 
	read, write, and edit text.  Some text panes are {\em read-only}.  
	\end{itemize}
\end{description}
