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