[Contents] [Index] [Next] [Previous]

Application Design Principles


Layout

MainWindow

6-1
Your application has at least one MainWindow (MainWindow).

A MainWindow contains a client area and, optionally, a MenuBar, a command area, a message area, and ScrollBars. The client area contains the framework of the application. The use of a MainWindow ensures interapplication consistency.

6-2
If your application has multiple MainWindows that serve the same primary function, each window closes and iconifies separately (MainWindow).

For example, a text editor might allow the user to edit multiple documents, each in its own MainWindow. Each window is then treated as a separate application and can be closed or iconified when it is not being used.

6-3
If your application has multiple MainWindows that serve different primary functions, each window iconifies separately (MainWindow).

For example, a debugger might provide separate MainWindows for editing source code, examining data values, and viewing results. Each window can be iconified when it is not being used, but it is up to the application to decide whether each window closes separately or whether closing one window closes the entire application.

MenuBar

Note: These requirements apply only in a left-to-right language environment in an English-language locale. You need to make the appropriate changes for other locales.
6-4
If your application has a MenuBar, it is a horizontal bar at the top edge of the application, just below the title area of the window frame, if present (MenuBar).

A MenuBar organizes the most common features of an application. It contains a list of Menu topics in CascadeButtons; each button is associated with a distinct Pulldown Menu containing commands that are grouped by common functionality. The use of a MenuBar yields consistency across applications.

6-5
The MenuBar for your application contains only CascadeButtons (MenuBar).

When other buttons are included as topics in a MenuBar, they inhibit Menu browsing.

6-6
If any of the common menus are present in the MenuBar, they are arranged in the following order with respect to each other, ranging from left to right across the MenuBar (MenuBar):

File Menu
Selected Menu
Edit Menu
View Menu
Options Menu
Help Menu

If a File Menu is present, it is the first Menu and is placed at the far left of the MenuBar. If a Help Menu is present, it is the last Menu and is placed at the far right of the MenuBar.

The ordering of common Menus in the MenuBar ensures consistency among applications. You can omit any of these Menus if they are not relevant to the application. You can also intersperse other, application-specific, Menus among these Menus.

File Menu Contents

Note: These requirements apply only in a left-to-right language environment in an English-language locale. You need to make the appropriate changes for other locales.

6-7
If your application uses a File Menu, it contains the following choices, with the specified functionality, when the actions are actually supported by your application (File).
New
Creates a new file. If the current client area will be used to display the new file, your application clears the existing data from the client area. If changes made to the current file will be lost, your application displays a DialogBox, asking the user about saving changes. Has the mnemonic N.

Open
Opens an existing file by prompting the user for a filename with a DialogBox. If changes made to the current file will be lost, your application displays a DialogBox asking the user about saving changes. Has the mnemonic O.

Save
Saves the currently opened file without removing the existing contents of the client area. If the file has no name, your application displays a DialogBox, prompting the user to enter a filename. Has the mnemonic S.

Save As...
Saves the currently opened file under a new name by prompting the user for a filename with a DialogBox. If the user tries to save the file using an existing name, your application displays a DialogBox that warns the user about a possible loss of data. Does not remove the existing contents of the client area. Has the mnemonic A.

Print
Schedules a file for printing. If your application needs specific information in order to print, it displays a DialogBox, requesting the information from the user. In this case, the Menu entry is followed by an ellipsis

Close
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. Has the mnemonic C.

Exit
Ends the current application and all windows associated with it. If changes made to the current file will be lost, your application displays a DialogBox, asking the user about saving changes. Has the mnemonic X.

The use of a File Menu with these common file operations yields consistency across applications.

Edit Menu Contents

Note: These requirements apply only in a left-to-right language environment in an English-language locale. You need to make the appropriate changes for other locales.

6-8
If your application uses an Edit Menu, it contains the following choices, with the specified functionality, when the actions are actually supported by your application (Edit):
Undo
Reverses the most recently executed action. Has the mnemonic U.

Cut
Removes the selected portion of data from the client area and puts it on the clipboard. Has the mnemonic T.

Copy
Copies the selected portion of data from the client area and puts it on the clipboard. Has the mnemonic C.

Copy Link
Copies a link of the selected portion of data from the client area and puts it on the clipboard. Has the mnemonic K.

Paste
Pastes the contents of the clipboard into the client area. Has the mnemonic P.

Paste Link
Pastes a link of the data represented by the contents of the clipboard into the client area. Has the mnemonic L.

Clear
Removes a selected portion of data from the client area without copying it to the clipboard and does not compress the remaining data. Has the mnemonic E.

Delete
Removes a selected portion of data from the client area without copying it to the clipboard. Has the mnemonic D.

Select All
Sets the primary selection to be all the elements in a component of the client area.

Deselect All
Removes from the primary selection all the elements in a component of the client area.

Select Pasted
Sets the primary selection to the last element or elements pasted into a component of the client area.

Reselect
Sets the primary selection to the last selected element or elements in a component of the client area. This action is available only in components that do not support persistent selections and only when the current selection is empty.

Promote
Promotes to the primary selection the current selection of a component of the client area. This action is available only for components that support persistent selections.

The use of an Edit Menu with these common editing operations yields consistency across applications.

6-9
If your application uses accelerators for Undo, Copy, and Paste in an Edit Menu, it uses either one or both of the models presented in the following two tables (Edit).
Edit Menu Item  Accelerator
Undo            <Alt> <BackSpace>
Cut             <Shift> <Delete>
Copy            <Ctrl> <Insert>
Paste           <Shift> <Insert>
Edit Menu Item  Accelerator
Undo            <Ctrl> <Z>
Cut             <Ctrl> <X>
Copy            <Ctrl> <C>
Paste           <Ctrl> <V>

These models provide consistent sets of accelerators for common editing operations in an Edit Menu.

Help Menu Contents

Note: These requirements apply only in a left-to-right language environment in an English-language locale. You need to make the appropriate changes for other locales.

6-10
If your application uses a Help Menu, it contains either of the following two sets of choices, with the specified functionality, when the actions are actually supported by your application (Help):

On Context
Initiates context-sensitive help by changing the shape of the pointer to the question pointer, described in Pointer Shapes. When the user moves the pointer to a component and presses BSelect, any available context-sensitive help for the component is presented, and the pointer returns to its original shape. Has the mnemonic C. If this action uses an accelerator, it is .

On Help
Provides information on how to use your application's help facility. Has the mnemonic H.

On Window
Provides general information about the window from which help was requested. Has the mnemonic W.

On Keys
Provides information about your application's use of function keys, mnemonics, and keyboard accelerators. Has the mnemonic K.

Index
Provides an index for all help information in your application. Has the mnemonic I.

Tutorial
Provides access to your application's tutorial. Has the mnemonic T.

On Version
Provides at least the name and version of your application. Has the mnemonic V.

If your application uses a Help Menu, and it does not use the previous set of choices, the Help Menu contains the following choices, with the specified functionality, when the actions are actually supported by your application (Help):

Context-Sensitive Help
Initiates context-sensitive help by changing the shape of the pointer to the question pointer, described in Pointer Shapes. When the user moves the pointer to a component and presses BSelect, any available context-sensitive help for the component is presented and the pointer returns to its original shape. Has the mnemonic C. If this action uses an accelerator, it is .

Overview
Provides general information about the application window from which help was requested. Has the mnemonic O.

Index
Provides an index for all help information in your application. Has the mnemonic I.

Keyboard
Provides information about your application's use of function keys, mnemonics, and keyboard accelerators. Has the mnemonic K.

Tutorial
Provides access to your application's tutorial. Has the mnemonic T.

Using Help
Provides information on how to use your application's help facility. Has the mnemonic H.

Product Information
Provides at least the name and version of your application. Has the mnemonic P.

The use of a Help Menu with these common help operations yields consistency across applications.

Popup Menus

Note: These requirements apply only in a left-to-right language environment in an English-language locale. You need to make the appropriate changes for other locales.

6-11
If your application uses any of the common Popup Menu actions, the actions function according to the following specifications (Popup Menus):

Properties
Displays a properties DialogBox that the user can use to set the properties of the component.

Undo
Reverses the most recently executed action.

Primary Move
Moves the contents of the primary selection to the component. This action is available only in editable components.

Primary Copy
Copies the contents of the primary selection to the component. This action is available only in editable components.

Primary Link
Places a link to the primary selection in the component. This action is available only in editable components.

Cut
Cuts elements to the clipboard. If the Menu is popped up in a selection, cuts the entire selection to the clipboard.

Copy
Copies elements to the clipboard. If the Menu is popped up in a selection, copies the entire selection to the clipboard.

Copy Link
Copies a link of elements to the clipboard. If the Menu is popped up in a selection, copies a link to the entire selection to the clipboard.

Paste
Pastes the contents of the clipboard to the component. This action is available only in editable components.

Paste Link
Pastes a link of the contents of the clipboard to the component. This action is available only in editable components.

Clear
Removes a selected portion of data from the client area without copying it to the clipboard. If the Menu is popped up in a selection, deletes the selection.

Delete
Removes a selected portion of data from the client area without copying it to the clipboard. If the Menu is popped up in a selection, deletes the selection.

Select All
Sets the primary selection to be all of the elements in the collection with the Popup Menu.

Deselect All
Deselects the current selection in the collection with the Popup Menu.

Select Pasted
Sets the primary selection to be the last element or elements pasted into the collection with the Popup Menu.

Reselect
Sets the primary selection to be the last selected element or elements in the component with the Popup Menu. This action is available only in components that do not support persistent selections and only when the current selection is empty.

Promote
Promotes the current selection to the primary selection. It is available only in components that support persistent selections.

The use of Popup Menus with these common actions yields consistency across applications.

6-12
When a Popup Menu is popped up in the context of a selection, any action that acts on elements acts on the entire selection (Popup Menus).

In the context of a selection, Popup Menu actions affect the entire selection.

DialogBoxes

6-13
InformationDialogs do not interrupt the user's interaction with your application (MessageDialog).

An InformationDialog conveys information to the user that does not require immediate attention, so it does not need to be modal.

Menu Design

6-14
If your application uses a TearOffButton in a Menu, the TearOffButton is the first element in the Menu (Menu Design).

When a TearOffButton is activated, the Menu changes into a DialogBox. The TearOffButton needs to be the first item in the Menu so that the entire contents of the Menu are torn off.

6-15
All Menus are wide enough to accommodate their widest elements (Menu Design).

The ability to see the full Label of each Menu element allows the user to browse through a Menu.

DialogBox Design

Note: These requirements apply only in a left-to-right language environment in an English-language locale. You need to make the appropriate changes for other locales.

6-16
If your application uses common DialogBox actions, the actions have the following specified functionality (Common DialogBox Actions):
Yes
Indicates an affirmative response to a question posed in the DialogBox.

No
Indicates a negative response to a question posed in the DialogBox.

OK
Applies any changes made to components in the DialogBox and dismisses the DialogBox.

Apply
Applies any changes made to components in the DialogBox.

Retry
Causes the task in progress to be attempted again.

Stop
Ends the task in progress at the next possible breaking point.

Pause
Causes the task in progress to pause.

Resume
Causes a task that has paused to resume

Reset
Cancels any user changes that have not been applied to your application. Resets the status of the DialogBox to the state since the last time the DialogBox action was applied or to the initial state of the DialogBox.

Cancel
Closes the DialogBox without performing any DialogBox actions not yet applied to your application. Pressing anywhere in the DialogBox, except during a cancelable drag operation, also performs the action of this button.

Help
Provides any help for the DialogBox.

The use of common actions provides a consistent way for the user to respond quickly to DialogBoxes and get back to primary application tasks.

Designing Drag and Drop

6-17
If your application provides any drag and drop help DialogBoxes, they contain a Cancel button for canceling the drag and drop operation in progress (Drag Icon Design).

The Cancel button in the help DialogBox provides a convenient way for the user to cancel a drag and drop operation.

Interaction

6-18
A WarningDialog allows the user to cancel the destructive action about which it is providing a warning (Providing Warnings).

The user needs to have a way to cancel an operation that can cause destructive results.