[ Previous |
Next |
Contents |
Glossary |
Home |
Search ]
Motif and CDE 2.1 Style Guide Certification Checklist
Application Design Principles (CDE)
[ ]Compose your application with at least one main window.
A main window contains a client area and, optionally, a menu bar, a command
area, a message area, and scroll bars. The client area contains the framework
of the application.
[ ]The default size of the application's main window must be large
enough to accommodate a typical amount of data, but should not fill the entire
physical display size to minimize visual conflicts with other applications.
[ ]Include resize corners in any main window that incorporates a scrolling
data pane or list.
[ ]If your application has multiple main windows that serve the same primary
function, close and iconify each window separately.
[ ]If your application has multiple main windows that serve different primary
functions, each window should be able to iconify independently of the other
windows.
[ ]If your application has a menu bar, use a horizontal bar at the top edge
of the application, just below the title area of the window frame. A menu bar
organizes the most common features of an application. It contains a list of
menu topics in cascading buttons; each button is associated with a distinct
pull-down menu that contains commands that are grouped by common
functionality.
[ ]The menu bar should contain only cascading buttons.
[ ]If the user chooses Exit, or in any other manner indicates that the
application should be terminated, but if there are changes to the current file
that have not been saved, display a dialog box that asks whether the changes
should be saved before exiting.
[ ]If your application uses a File menu, it must include the choices in Table 1, with the specified functionality.
Table 1. File Menu Choices
Mnemonic |
Menu Choice |
Function |
N |
New... |
Creates a new file. If the current client area will be used to display
the new file, clear the existing data from the client area. If changes made to
the current file will be lost, display a dialog box, asking the user about
saving changes. |
O |
Open... |
Opens an existing file by prompting the user for a file name with a
dialog box. If changes made to the current file will be lost, display a dialog
box asking the user about saving changes. |
S |
Save |
Saves the currently opened file without removing the existing contents of
the client area. If the file has no name, display a dialog box, prompting the
user to enter a file name. |
A |
Save As... |
Saves the currently opened file under a new name by prompting the user
for a file name with a dialog box. If the user tries to save the file with an
existing name, display a dialog box that warns the user about a possible loss
of data. Do not remove the existing contents of the client area. |
P |
Print (recommended) |
Schedules a file for printing. If your application needs specific
information to print, it displays a dialog box, requesting the information
from the user. In this case, the menu entry is followed by an ellipsis
(Print...). |
C |
Close (recommended) |
Closes the current primary window and its associated secondary windows.
If your application uses only a single primary window or multiple dependent
primary windows, this action is not supplied |
X |
Exit |
Ends the current application and all windows associated with it. If
changes made to the current file will be lost, displays a dialog box asking
the user about saving changes. |
RecommendedIf your application does not provide an <object-type> or Selected menu,
but allows the user to select data within the window and manage settings for
the selected data, then provide a Properties... choice as the last item in the
Edit menu.
[ ]If your application includes a Help menu, include the set of choices in Table 2, with the specified functionality, when the actions are actually supported
by your application.
Table 2. Help Menu Choices in CDE
Mnemonic |
Menu Choice |
Function |
V |
Overview |
Provides general information about the window from which help was
accessed or about the application overall. Place a separator after this
choice. |
I |
Index (optional) |
Provides an index that lists the topics for all help information
available for your application. |
C |
Table of Contents (recommended) |
Provides a table of contents that lists the topics for all help
information available for your application. |
T |
Tasks (recommended) |
Provides access to help information that indicates how to perform
different tasks within your application. |
R |
Reference (recommended) |
Provides access to reference information. |
L |
Tutorial (optional) |
Provides access to your application's tutorial. |
K |
Keyboard (optional) |
Provides information about your application's use of function keys,
mnemonics, and keyboard accelerators. Also provides information on general CDE
use of such keys. |
M |
Mouse (optional) |
Provides information about using a mouse with your application. |
M |
Mouse and Keyboard (optional) |
Provides information about your application's use of function keys,
mnemonics, keyboard accelerators, and using a mouse with your application.
Also provides information on general CDE use of such keys. Use rather than
separate mouse and keyboard choices if this information is best presented
together. |
O |
On Item (recommended) |
Initiates context-sensitive help by changing the shape of the pointer to
the question mark pointer. When the user moves the pointer to a component and
presses the SELECT button, any available context-sensitive help for the
component is presented. Set off with separators on both sides. |
U |
Using Help |
Provides information on how to use the CDE Help Viewer. Set off with
separators on both sides. |
A |
About application name |
Displays a dialog box that indicates, minimally, the name and version of
your application, and displays its icon or some other signature graphic for
your application. |
[ ]When a pop-up menu is popped up in the context of a selection, any action
that acts on elements should also act on the entire selection.
[ ]Display an information dialog box such that it does not interrupt the
user's interaction with your application.
An information dialog box conveys information to the user that does not
require immediate attention so it does not need to be modal.
[ ]Dim (make insensitive) any menu choice that is not currently an
appropriate selection.
Dimmed controls cannot be activated by the user and should appear only when
the inactive state is short-term (that is, there is something the user can do
within the application or the desktop environment to make the control become
active). When the control is persistently inactive (because of the current
configuration of the application or system, or a particular set of companion
software is not currently installed), remove the control rather than dim it.
[ ]If radio buttons are used in a menu, use separators between each set of
radio buttons and other menu items.
[ ]If your application uses a tear-off choice in a menu, make the tear-off
choice the first element in the menu.
[ ]Make all menus wide enough to accommodate their widest elements.
[ ]Every dialog box should have at least one button that either performs the
dialog box action and dismisses it or dismisses the dialog box without taking
any action.
[ ]If your application provides settings that control the behavior of the
application, display these settings in an application properties window that
is accessible from an Options menu.
Controls that relate to advanced features should not be displayed with the
set of options initially displayed to the user. The typical user should be
presented with only those options that are necessary to use the basic
functionality of the application. Users looking to access advanced
functionality within the dialog box may use the <Category> option button
(see Figure 7-1). If the number of advanced controls is few, or the settings
for these controls are highly related to the settings of basic controls
displayed in the dialog box (that is, the settings of the advanced controls
change when the user changes settings for basic controls), you might choose to
provide an expandable dialog box.
[ ]If your application provides settings that control the behavior of the
application, display these settings in an application properties window that
is accessible from an Options menu.
[ ]The file selection dialog box should recall the directory location that
was previously set by the user.
For example, if the user brings up Save As and navigates to
/users/jay/letters to save the file, the next time the user brings up Save As,
the file selection box should be in the directory /users/jay/letters. The
directory, however, should not be retained once the user has closed the
primary window. When the user brings up Save As for the first time, it should
resort to the default directory.
[ ]Include a Close button in the About dialog box. Other buttons are
optional, such as Help and More.
[ ]Push buttons that affect the dialog box as a whole, either by modifying
its contents or layout, invoking the action of the dialog box, or dismissing
the dialog box, should be located at the bottom of the dialog box.
There should be only one row of buttons at the bottom of a dialog box. If
your application has dialog boxes that contain several global buttons, you may
need to create two or more rows of buttons at the bottom of the dialog box.
The last row should contain the standard dialog box buttons (OK, Reset,
Cancel, and Help). If a dialog box contains buttons that are not related to
the dialog box as a whole, but relate to a specific control within the dialog
box, the buttons should be located with the control to which they relate.
[ ]If your application provides an Apply button within a dialog box, also
provide an OK button or <command> button that performs the dialog box
action and then dismisses it.
[ ]During a drag operation, change the current pointer to a drag icon.
[ ]When the user presses Cancel, end a drag-and-drop operation by canceling
the drag in progress.
[ ]When the user releases the TRANSFER button (or the SELECT button) when not
over a drop target, end a drag-and-drop operation.
[ ]After a successful transfer, place the data in the drop zone and remove
any transfer icon.
[ ]If your application removes data upon the completion of a drag-and-drop
operation, do so only if the drag-and-drop transfer has completed
successfully.
If a drag-and-drop operation has been canceled or failed, do not remove the
data or object that was the source of the drag.
[ ]After a failed transfer, keep the data at the drag source and do not place
it in the drop zone. Remove any transfer icon.
[ ]If your application provides any drag-and-drop help dialog boxes, include
a Cancel button for canceling the drag-and-drop operation in progress.
[ ]Install applications in folders in the Application Manager, not directly
on the Front Panel or subpanels. For consistency, only CDE desktop components
will install in the Front Panel or subpanels. Users may choose to rearrange
their Front Panel, but applications should not do this without user consent.
[ ]Display a warning dialog box that allows the user to cancel the
destructive action about which the dialog box is providing a warning. The user
needs to have a way to cancel an operation that can cause destructive results.
[ ]When your application displays a dialog box, place the input focus at the
first text field into which the user is allowed to type an entry, or at the
first control within the dialog box with which the user should interact.
Input focus should always be placed at a predictable and intuitive
location. Do not force the user to set focus at the control most likely to be
used when the window is displayed.
[ ]There should always be exactly one control within any window of your
application that has the input focus if the window in which it resides has the
input focus.
[ ]Dialog boxes should never block input to other applications within the
desktop (that is, they are not system modal) unless it is essential that the
user perform no other action on the desktop until the user responds to the
dialog box.
[ ]Dialog boxes should never block access to other functionality within the
application (application modal) unless it is essential that the state of the
application remains unchanged until the user responds to the dialog box.
[ ]If your application does not use the values of global environment
settings, such as multiclick timeout intervals, drag thresholds, window color
settings, mouse left- or right-handedness, and so on, but instead uses its own
values for these settings, then provide one or more Options dialog boxes that
allow the user to change the values for these settings.
In general, you should not override the value of settings treated as global
environment settings. The user controls these settings through the CDE Style
Manager. If you choose to ignore these settings and specify your own settings,
then your application will behave inconsistently with other applications in
CDE. If you nevertheless choose to provide your own values, then you must
provide the user with a way to make your settings consistent with the rest of
the desktop.
[ ]If you use a tool bar, it should appear only in windows with a menu bar.
[ ]Tool bars should contain only those operations that are already available
to the user in your application's menus. All items in a tool bar should
be redundant.
[ ]When an action represented by a tool bar icon is unavailable to the user,
make that icon insensitive, with the associated stippled appearance. If a menu
item is made insensitive, make the corresponding tool bar item insensitive as
well.
[ ]Place the tool bar container directly under the menu bar. It has the same
width as the window, as well as similar height to the menu bar.
[ ]Align command buttons along the bottom of the dialog box. When the window
is expanded to show a secondary pane, then move the buttons to the bottom of
the secondary pane.
[ ]Separate the primary pane from the secondary pane with a separator.
[ ]If a window is resizable, allocate any sizing changes to the pane that
contains scrolling lists or text fields whose displayed length is less than
their stored length. If both panes contain scrollable controls, distribute
size changes evenly between the two panes. If neither pane contains scrollable
controls, the window should not be resizable.
[ ]The expandable window should have one button that changes its label based
on the state of the window.
[ ]The expand button should have two labels that reflect the two states of
the expandable window accurately. The current label indicates to the user what
will happen if the user clicks the button.
Examples of possible labels are Basic and Options, Expand and Contract, and
More and Less.
[ ]If the window or dialog box contains a scrolling list positioned to the
far right side of the pane, do not align the drawn button with the scroll bar.
For example, the button should be aligned with the list, not the scroll bar.
[ ]Applications must remember the state of each window or dialog box
(expanded or not expanded) independently (not collectively). The state should
be changed only by the user and should always be preserved until explicitly
altered by the user.
[ Previous |
Next |
Contents |
Glossary |
Home |
Search ]