[ 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.

Recommended
If 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 ]