[ Previous |
Next |
Contents |
Glossary |
Home |
Search ]
Motif and CDE 2.1 Style Guide Reference
Application Design Principles (CDE)
Reference
Description
Application design principles govern window, menu, and dialog layout within
CDE.
Guidelines
RequiredCompose 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.
RequiredThe 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.
RequiredInclude resize corners in any main window that incorporates a scrolling
data pane or list.
RequiredIf your application has multiple main windows that serve the same primary
function, close and iconify each window separately.
RequiredIf your application has multiple main windows that serve different primary
functions, each window should be able to iconify independently of the other
windows.
OptionalThe title of your primary window (the main window your application
displays to the user) should be the name of your application. Note that this
does not have to be the actual name of the executable invoked by the user.
Carefully consider how the title you choose for your primary window works
when it is used in icons and pop-up windows. If the name of the pop-up window
is too long, you may remove the application title; however, without the title,
users might have difficulty telling which pop-up window belongs with the
originating primary window.
OptionalUse initial capital letters for each word in the title (in languages that
support capitalization).
OptionalFollow the application name for each property window, as a minimum, with
the title Properties and the name of the object it affects.
OptionalBegin the title of each pop-up window with the application title followed
by a colon, then the title of the pop-up window. The colon should have a space
both before and after it for readability.
Pop-up windows should always indicate which primary window they are
associated with (which primary window invoked that pop-up).
OptionalUse a hyphen to denote the current file name when the application has
files that can be loaded or saved. The hyphen should have a space before and
after it. Only the base name of the file should be displayed, not the entire
path.
The hyphen is used to denote specific instances of a window or data. The
colon serves to delimit general categories or commands. For example, a file
manager might have the following title for a Properties dialog box:
File Manager: Properties - myfile
RecommendedFollow the application name for each command window with the same title
that is on the window button or window item that the user chooses to display
that window.
OptionalIn the case of multiple primary windows, include the application name at
the beginning of each window title, and add a name that uniquely identifies
that primary window. No separator should be provided for these names (for
example, Calendar Manager Multibrowse, Catalog Search, Admintool Databases).
OptionalAn abbreviated name for the application may be used on other windows, as
long as it is done on all windows.
RequiredIf 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.
RequiredThe menu bar should contain only cascading buttons.
RecommendedThere are several common menu operations that are considered standard. The
standard menu bar entries are File, Edit, View, Options and Help. If your
application provides these functionalities, they should be included in the
menu bar under the appropriate name.
Present standard menu-bar entries in the following order:
File Edit View Options Help
You should exclude from your menu bar any item shown in the preceding text
if your application does not support the associated function. For example, if
your application does not support the ability to display its data in different
views, then you should not include a View menu.
You may add application-specific menus in between any of the standard menu
items, with the following exceptions:
The File menu, if present, is located in the first menu position on the
left.
The Help menu is located on the far right.
If File and Edit are present, they should be next to each other.
RecommendedApplications that are not file-oriented in nature (or that manage files
transparently, not exposing this activity to the user) should replace the File
menu with one or more application-specific menus.
Replacing the File menu:
Replacement1 <app-label> Selected
Replacement2 <app-label><obj-type>
Replacement3: <obj-type>
You may use Replacement1 if your application has more than one object type.
Items on <app-label> would be used for global actions that are not specific
to an object type. The items in Selected are actions that pertain to objects
that are currently selected and may change, depending on what objects are
selected. If nothing is selected, this menu should have a single item that
says (none selected). If an item is selected, but there are no items that
apply to that object, this menu should have a single item that says (none).
You may use Replacement2 if your application has a single object type.
Actions that are global to the application are on <app-label>, and actions
that are specific to the object type are on <obj-type>.
You may use Replacement3 if your application has a single object type and
does not require an <app-label> menu. For example, a Print Manager might
contain a Printer menu.
All other menu-bar guidelines that apply to File-oriented applications also
apply to non-File-oriented applications. Thus, the following menu bar would be
valid:
<app-label> Selected Edit <category1> View <category2>
Help
Applications that are complex or are domain-specific (for example, an
application for medical imaging and diagnosis of cat-scan data) may require
other approaches to their menu-bar design. For example:
<app-label><category1><category2> Selected Edit
<object-type> Options Help
RecommendedPlace Exit or Close on the first (leftmost) menu of the menu bar.
RequiredIf 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.
RequiredIf 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 uses an <object-type> menu or a Selected
menu, it may include the choices in Table 2, with the specified functionality, when the actions are actually supported
by your application. Items should be presented to the user in the order
listed.
Table 2. <object-type> / Selected Menu Choices
Menu Choice |
Function |
New... |
Creates a new instance of the object type. If appropriate, a dialog box
is presented allowing the user to specify the values for settings associated
with that object. |
Move To... |
Allows the user to move the selected objects into a folder. Display a
file selection dialog box allowing the user to select the desired folder. |
Copy To... |
Allows the user to copy the selected objects into a folder. Display a
file selection dialog box allowing the user to select the desired folder. |
Put in Workspace |
Allows the user to put a link for the object onto the CDE desktop in the
current workspace. |
Any of the preceding menu choices should be provided only if the objects
managed by your application are able to reside as separate entities outside of
your application's main window. For example, a printer object created by
a printer management application might be able to be placed in a Folder window
and function as an application by itself. Your application should also support
drag and drop as a method for performing any of these actions. |
Delete |
Removes the selected objects. A confirmation dialog box should be
presented to the user before the object is actually deleted. |
Properties |
Displays a Properties window that shows the current values for settings
associated with the selected object. |
<default action> |
This choice should enact the default action for the selected object. The
Open choice is a typical default. |
OptionalIf your application uses an Edit menu, it may include the choices in Table 3, with the specified functionality, when the actions are actually supported
by your application.
Table 3. Edit Menu Choices
Mnemonic |
Menu Choice |
Function |
U |
Undo |
Reverses the most recently executed action. |
t |
Cut |
Removes the selected portion of data from the client area and puts it on
the clipboard. |
C |
Copy |
Copies the selected portion of data from the client area and puts it on
the clipboard. |
k |
Copy Link |
Copies a link of the selected portion of data from the client area and
puts it on the clipboard. |
P |
Paste |
Pastes the contents of the clipboard into the client area. |
L |
Paste Link |
Pastes a link of the data represented by the contents of the clipboard
into the client area. |
e |
Clear |
Removes a selected portion of data from the client area without copying
it to the clipboard and does not compress the remaining data. |
D |
Delete |
Removes a selected portion of data from the client area without copying
it to the clipboard. |
S |
Select All |
Sets the primary selection to be all the elements in a component of the
client area. |
l |
Deselect All |
Removes from the primary selection all the elements in a component of the
client area. |
a |
Select Pasted |
Sets the primary selection to the last element or elements pasted into a
component of the client area. |
R |
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. |
m |
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. |
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.
RecommendedIf your application provides a View menu, include only those functions
that affect the way the current data is presented. Do not include any option
that alters the data itself.
RecommendedIf your application has global settings that control the way the
application behaves, provide an Options menu from which these can be set.
RequiredIf your application includes a Help menu, include the set of choices in Table 4, with the specified functionality, when the actions are actually supported
by your application.
Table 4. 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. |
RecommendedIf your application uses an attachment menu, it may include the choices in
Table 5, with the specified functionality, when the actions are actually supported
by your application.
Table 5. Attachment Menu Choices in CDE
Menu Choice |
Function |
Add File... |
Selects files and other items to be attached. Display a file selection
box that allows the user to select the desired files to attach. The default
button in the file selection box is Attach. |
Save As... |
Saves the currently selected attachments. The user is prompted with a
file selection dialog box for indicating where in the file system the
attachments are to be saved. When multiple attachments are selected, the name
field is inactive and the current names of the attachments are used as the
name of the new file. This menu item is active only when one or more
attachments are selected. |
Rename... |
Renames the attachment icon. The application should provide in-line
renaming of attachment icons, such as File Manager uses. If the application
cannot provide in-line renaming, then Rename allows the user to rename an
attachment by displaying a dialog box that requests the name from the user.
This menu item is active only when a single attachment is selected. |
Delete |
Deletes attachments from the attachment list. This menu item is active
only when an attachment is selected. |
Select All |
Selects all the attachments in the attachment list. |
RecommendedIf your application provides functions that apply to a data pane and not
any specific element therein, then provide a pop-up menu that contains the
frequently used data pane functions and that is accessible by pressing the
MENU button when the mouse pointer is over the background of the pane or a
nonselectable element within the pane.
RecommendedYour application should provide a pop-up menu for any element that is
selectable within its data pane.
Pop-up menus provide access to frequently used functions and should be used
pervasively throughout the CDE desktop environment. A pop-up menu may contain
a collection of options that appear in different menus available from the menu
bar. For example, it may contain items from both the File and Edit menus.
RecommendedWhen a pop-up menu is displayed over an unselected object, apply any
action selected from the pop-up menu to that object only, and not to any other
objects that might currently be selected. This helps to protect the user from
inadvertently applying an action to objects that the user may not realize are
currently selected. Pressing the menu button invokes a pop-up menu pertinent
to the object under the mouse cursor whether it is selected to not; if the
object under the mouse cursor and other objects are selected, the pop-up menu
is pertinent to the selected set.
RecommendedEvery pop-up menu in your application should have a title that indicates
the function the menu performs or the element on which it operates.
RecommendedMake the functions accessible from within your application's pop-up
menus also accessible from buttons displayed within the window or menus
accessed through the menu bar.
Because pop-up menus are hidden, they should provide redundant access only
to functions available from more visible controls within the
application's windows.
OptionalIf your application uses any of the common pop-up menu actions, the
actions should function according to the specifications in Table 6.
Table 6. Pop-Up Menu Choices in CDE
Menu Choice |
Function |
Properties |
Displays a Properties dialog box 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 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, this action 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 pop-up menu. |
Deselect All |
Deselects the current selection in the collection with the pop-up menu. |
Select Pasted |
Sets the primary selection to be the last element or elements pasted into
the collection with the pop-up menu. |
Reselect |
Sets the primary selection to be the last selected element or elements in
the component with the pop-up 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. |
RecommendedPop-up menus for selectable objects should include the set of choices in Table 7, with the specified functionality, when the actions are actually supported
by your application.
Table 7. Pop-Up Menu Choices For Selectable Objects in CDE
Menu Choice |
Function |
Move To... |
Allows the user to move the selected objects into a folder. A file
selection dialog box is displayed that allows the user to select the desired
folder. |
Copy To... |
Allows the user to copy the selected objects into a folder. A file
selection dialog box is displayed that allows the user to select the desired
folder. |
Put in Workspace |
Allows the user to put a link for the selected objects onto the CDE
desktop in the current workspace. |
Delete |
Deletes the selected object. A confirmation is displayed to the user
before actually removing the object. |
Properties (recommended) |
Displays a dialog box that indicates the current settings for attributes
associated with the selected object. |
Help (recommended) |
Displays a help window that pertains to objects of the type selected. |
OptionalOrganize choices within your pop-up menus in the following manner:
<choices that manage the object such as Open, Save, or Properties>
--------- separator ----------------
<standard edit menu choices such as Cut, Copy, and Paste>
---------- separator ---------------
<other choices>
RequiredWhen 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.
RequiredDisplay 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.
RecommendedIf the selection of a menu item will result in the user being queried for
more information, such as through the posting of a file selection dialog, the
menu item should be followed by an ellipsis (...). This requirement does not
apply to menu items that will result in a simple warning or confirmation
dialog being displayed.
The use of an ellipsis helps set the user's expectation for the
behavior of the interface. When selecting an item without an ellipsis, the
user can expect an immediate result.
RecommendedMenus accessed from within your application should contain at least two
menu items.
No menu should contain only one item. If your application provides a menu
with only one item, move that item into another menu or make it a button
within the window. The longer the menu, the more effort is needed for the user
to access choices near the bottom. If your menu has a lot of choices, break it
up into two or more menus, or group some items into submenus.
OptionalSubmenus accessed from within your application should contain at least
three menu items.
Submenus may be used to group like items into a single secondary cascading
menu where putting the items into the primary cascading menu would make it too
long. However, if your submenu contains only two options, consider removing
the secondary cascading menu and putting the options into the primary
cascading menu since it takes more effort for the user to access options
located in a submenu.
RecommendedNo menu in your application should contain more than 15 choices.
If your menu has many choices, consider breaking it up into two or more
menus, or grouping some items into submenus.
OptionalIf your application contains a menu that is expected to be accessed
frequently, then provide a tear-off menu option.
The user should be able to tear off frequently accessed menus so that these
can remain posted on the desktop.
OptionalProvide keyboard accelerators where appropriate.
If specific menu items within a menu are expected to be used frequently,
not the menu as a whole, then provide keyboard accelerators for these items
and display the keyboard accelerators in the associated menu to the right of
the item to which they relate.
RecommendedThe labels used for items in the menu bar should not appear as options
within the menus themselves.
The names of items in the menu bar serve as titles for the options the menu
contains. The name of the menu bar item should provide a term that accurately
describes the concept of the category relating all of the menu items and
should not be used as the name of any item within the menu itself.
RequiredDim (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.
RecommendedIf a menu item is used to indicate a selection state, use a check box or
radio button to indicate the state of the item. Use a check box if a single
item is used to represent on or off states, and use radio buttons for multiple
adjacent menu items in which only one of the items may be selected.
RequiredIf radio buttons are used in a menu, use separators between each set of
radio buttons and other menu items.
RecommendedIf a check box or radio button is used on a menu item, display it as
either selected or not selected. It should not disappear when in the
unselected state.
RequiredIf your application uses a tear-off choice in a menu, make the tear-off
choice the first element in the menu.
RequiredMake all menus wide enough to accommodate their widest elements.
RecommendedThe title of dialog boxes used within your application should adhere to
the conventions listed in Table 8.
Table 8. Dialog Box Title Conventions
Window Usage |
Window Title Format |
Message |
<app or object name>: <action or situation> |
Progress |
<app or object name> : <action> in Progress |
Action (Command) |
<app name>: <action> |
Object Properties |
<app name>: <object-type> Properties |
Application Options |
<app name>: <type> Options |
RequiredEvery 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.
RecommendedIf your application uses common dialog box actions, include the specified
functionality and labels listed in Table 9.
Table 9. Dialog Box Choices
Dialog Choice |
Function |
Yes |
Indicates an affirmative response to a question posed in the dialog box. |
No |
Indicates a negative response to a question posed in the dialog box. |
OK |
Applies any changes made to components in the dialog box and dismisses
the dialog box. |
<command> |
Applies any changes made to components in the dialog box, performs the
action associated with the <command>, and dismisses the dialog box. |
|
<command> should be used in lieu of OK, Yes, or No as a button label
when it provides more meaning to the user as to the action that will be
performed when that button is clicked. |
Apply |
Applies any changes made to components in the dialog box and does not
dismiss it. |
Retry |
Causes the task in progress to be attempted again. |
Stop |
Ends the task in progress at the next possible break point. |
Pause |
Causes the task in progress to pause. |
Resume |
Causes a task that has paused to resume. |
Save As Defaults |
Saves the current settings as the default settings that will appear the
next time the window is displayed. The settings are not applied to any
selected object and the dialog box is not dismissed. |
|
A Save As Defaults button should be provided if it is expected that a
user would want to use different default values for a set of controls within a
dialog box than those that you provide as the factory settings. For example, a
Save As Defaults button might be provided in a New <object-type> window,
allowing the user to indicate that whenever a new instance of that object type
is created, the current values should be displayed as the default settings
instead of the values given by the application. |
Reset |
Cancels any changes that have not yet been applied by your application.
The controls within the dialog box are reset to their state since the last
time the dialog box action was applied. If no changes have been applied within
the current invocation of the dialog box, the controls are reset to the state
when the dialog box was first displayed. |
Reset to Factory |
Cancels any changes that have not yet been applied. Components in the
dialog box are reset to their default state and value as specified by the
vendor that delivered the application (that is, the controls are restored to
the original factory settings). |
Cancel |
Dismisses the dialog box without performing any actions not yet applied. |
Help |
Provides help for the dialog box. |
RecommendedDim any visible control that is not currently active or whose setting is
currently invalid.
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), the control should be removed rather
than dimmed.
OptionalKeep the size of your dialog boxes to a minimum. Remember that on
low-resolution displays, dialogs may take up most of the screen real estate,
and may even run off the edge of the screen if not designed correctly.
OptionalAvoid complexity in your dialog boxes. If your dialog box must support
many functions, consider using an expandable dialog box, or use more than one
dialog in a nested fashion.
OptionalAvoid the use of resize handles in your dialog box. However, you may use
resize handles when resizing is useful in allowing users to see more
information; for example, when your dialog contains a scrolling list that is
likely to be quite long, and users will frequently need to search the list.
OptionalEvery dialog box in your application should have exactly one default
button that is activated when the Return key is pressed.
The default button should be associated with the most likely response from
the user and should not be potentially destructive or irreversible. Some
applications may have dialog boxes that do not reveal a default button until a
specific set of fields has been filled or otherwise manipulated.
OptionalIf a dialog box displayed by your application has controls that are
considered to be advanced features, use an expandable dialog box, or use a
multiple page dialog box that provides a <category> option menu that allows
a user to navigate to each page.
RequiredIf 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.
RequiredIf 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.
RecommendedIf your application manages objects and allows the user to see or modify
settings for these objects, display these settings in an object properties
window that is accessible from a Properties... choice in the Edit,
<object-type>, or Selected menus, as well as from the pop-up menu
associated with the object.
RecommendedIf your application provides access to a Properties or Options window,
include the following set of buttons in the order listed, with the specified
functionality, when supported by your application:
OKApplies any changes made to components in the dialog box and dismisses it.
OK may be replaced by a more appropriate label, for example, Add. The
alternate label should be a verb phrase.
Apply (Optional)Applies any changes made to components in the dialog box and does not
dismiss it.
ResetCancels any changes that have not yet been applied by your application.
The controls within the dialog box are reset to their state since the last
time the dialog box action was applied. If no changes have been applied within
the current invocation of the dialog box, the controls are reset to the state
when the dialog box was first displayed.
Reset to Factory (Optional)Cancels any changes that have not yet been applied. Components in the
dialog box are reset to their default state or value as specified by the
vendor that delivered the application (that is, the controls are restored to
the original factory settings).
CancelDismisses the dialog box without performing any actions not yet applied.
HelpProvides help for the dialog box.
RecommendedIf your application provides a Properties window that displays settings
for a selected object, make the Properties window track the current selection
and modify the state of any controls to accurately reflect the properties of
the currently selected object.
OptionalIf your application allows the user to open or save files, then use the
standard CDE file selection dialog box to allow the user to select specific
files and directories.
All user interactions with the file system should be facilitated by
providing a point-and-click style of choosing files and directories. The user
should never be forced to memorize and type in file paths. The user must be
able to explore the contents and structure of the file system by using
scrolling lists. The expert user, however, should be able to directly enter a
complete file path, as well as able to use relative paths and environment
variables such as $HOME.
The labels and contents of the standard file selection dialog box may be
modified as appropriate to make clear the particular context in which it is
being used within your application.
RecommendedIf your application allows the objects it manages to exist as separate
entities within folders or toolboxes within the desktop environment, provide a
Copy To menu option or button that displays a file selection dialog box that
allows the user to select the desired folder in which an icon for the object
should be placed.
RecommendedThe file selection dialog box should not display hidden (dot) directories
or files, unless your users depend on these types of files. If your
application does support displaying hidden files, supply a check box that
allows the user to toggle between showing and not showing hidden files or to
toggle between showing and hiding files at a global level in your application.
RecommendedThe file selection dialog box should not show the full pathnames for files
and directories, but should show only the relative names, except for the
directory text field.
The global CDE setting should be:
XmFileSelectionBox.fullPathMode: false
Unless your application overrides this behavior, your file selection dialog
box should not show full pathnames in the list boxes.
RequiredThe 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.
OptionalThe About dialog box should contain a minimum set of information about the
application that is visible in a single text pane.
That minimum set should be:
Application name
Version number
Release date
Copyright
RequiredInclude a Close button in the About dialog box. Other buttons are
optional, such as Help and More.
RecommendedInclude information about the operating system or other aspects required
to run the application, for example, Common Desktop Environment 2.1.
OptionalInclude a More Information dialog box for additional information such as
development team credits, licensing, client, or xhost information.
OptionalPlace controls within your dialog box in a left-right, top-down layout
based on the order in which the user is expected to fill out or choose options
within the dialog box.
RequiredPush 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.
RequiredIf 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.
OptionalDo not use cascading buttons within dialog boxes unless there is
absolutely no other design alternative that can be used without a negative
impact on the layout of your dialog box.
In general, use cascading buttons only within menus and menu bars. Avoid
their use in all other locations unless absolutely necessary.
RecommendedProvide a drag-and-drop method for all objects represented as icons.
Provide a drag-and-drop method for all elements that the user can directly
manipulate.
RecommendedAny basic function that your application supports through drag and should
also be supported drop through menus, buttons, or dialog boxes.
Drag and drop is considered an accelerator to functionality that is
accessible through other user interface controls that your application
supports. There should be no basic operation that is supported solely through
drag and drop.
RecommendedUse an icon graphic in a dialog box or window to indicate that objects
within the dialog box or window can be dragged. Use the same icon graphic used
to represent the draggable object in File Manager. Place the icon adjacent to
any display of the contents of the object, if such a display exists. If there
is no such display, place the icon in the upper right corner of the dialog box
or window, unless a more suitable placement is determined. The icon should be
32x32 in size and have a label under it. The label should indicate what kind
of object the icon graphic represents. The icon graphic should also be used as
the source indicator in the drag icon.
RequiredDuring a drag operation, change the current pointer to a drag icon.
RecommendedDuring a drag operation, change the current drag cursor to include a
source indicator.
RecommendedDuring a drag operation, change the current drag cursor to indicate
invalid drop zones. Use the standard CDE cannot pointer.
The user must receive feedback as to where an object can and cannot be
dropped. Minimally, you should provide feedback as to what are invalid drop
zones. Preferably, feedback for valid drop zones is enhanced by use of
animation, recessing of the target drop zone, and other such drag-over
effects.
RecommendedDuring a drag operation, change the drop zone feedback to indicate a valid
drop zone.
Preferably, feedback for valid drop zones is enhanced by use of animation,
recessing of the target drop zone, and other such drag-over effects.
RequiredWhen the user presses Cancel, end a drag-and-drop operation by canceling
the drag in progress.
RequiredWhen the user releases the TRANSFER button (or the SELECT button) when not
over a drop target, end a drag-and-drop operation.
OptionalAny cursor change or drag-over effect your application uses should occur
within .2 seconds of the mouse pointer reaching the target area and should not
interfere, in any noticeable way, with the interactive performance of the drag
operation.
RecommendedIn a collection that supports copy, move, or link operations that can be
performed by dragging, the feedback presented to the user during the drag
operation should indicate whether a single object or multiple objects are
being manipulated.
Feedback provided during the drag operation should ensure that the user
feels confident that the desired set of objects is being dragged. The drag
icon used for multiobject drag operations should integrate the feedback used
to indicate whether the operation is a move, copy, or link.
RequiredAfter a successful transfer, place the data in the drop zone and remove
any transfer icon.
RequiredIf 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.
RequiredAfter a failed transfer, keep the data at the drag source and do not place
it in the drop zone. Remove any transfer icon.
RecommendedIf the user drops an object at an inappropriate drop zone within your
application's window, your application should participate in the display
of a snap-back effect and also post an error dialog box that indicates the
reason the drop was disallowed.
The error message should state the context (for example, running action A
on object B), what happened (for example, could not connect to system X), and
how to correct the problem (for example, press the Help button to obtain
information on diagnosing remote execution problems).
RecommendedApplications that accept only single items should reject all multiple-item
drops.
RecommendedIf your application supports drag and drop as a means of loading a file
into the application, have the application respond to this operation in a
manner similar to when the file is loaded through more conventional means,
such as choosing Open from the File menu.
As an accelerator, drag-and-drop loading of files should provide the same
kind of feedback and behavior as choosing Open from the File menu. For
example, if changes to a currently loaded file have not yet been saved,
display a message dialog box asking whether the changes should first be saved
before loading the new file.
RequiredIf your application provides any drag-and-drop help dialog boxes, include
a Cancel button for canceling the drag-and-drop operation in progress.
RecommendedDrag and drop should not be the only method for attaching objects.
RecommendedDouble-clicking is a shortcut for selecting the attachment and choosing
the Open menu item for attachments and should never be the only way to access
attachments.
RecommendedWhen the user attempts to drop something into the attachment list that is
not attachable, then the drop should fail and the item snaps back to its
source.
RecommendedWhen the user has one or more attachments open for editing and attempts to
do any operation that would result in potentially losing the user's
edits, the user should be clearly warned and given the opportunity to save
changes.
RecommendedWhen the user chooses something to attach from the file selection dialog
box that is not an attachable item, display an error message explaining why
the chosen item cannot be attached. For example:
The folder "My.Stuff" cannot be attached because it is a folder.
Only documents, applications, and scripts can be
attached.
RequiredInstall 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.
RequiredDisplay 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.
RequiredWhen 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.
RecommendedAs the user presses Tab within dialog boxes of your application, move the
input focus to different controls within the window in a left-right, top-down
order.
RequiredThere 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.
OptionalWhen a text field within your application does not have the input focus,
do not display the text cursor within that field.
Although use of inactive text cursors is allowed within the Motif style, it
is better to hide the text cursor on focus out rather than display the
inactive text cursor. This makes it easier for the user to quickly scan the
screen or a window and determine which text field currently has focus.
OptionalProvide keyboard mnemonics for all buttons, menus, and menu items
displayed within the application.
OptionalProvide keyboard accelerators for those functions that are expected to be
used frequently by the user.
RequiredDialog 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.
RequiredDialog 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.
RequiredIf 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.
RecommendedDesign any icons or graphics that your application displays to be
distinguishable on low- (640x480), medium- (800x600), and high- (mega-pixel)
resolution displays. Alternatively, provide different sized visuals for low-,
medium-, and high-resolution displays.
Desktop system configurations are including more high-resolution monitors.
The user must be able to discern any visuals that your application uses. The
embedded base, however, still contains many standard VGA monitors. Your
application's visuals must display well on these systems and should not
appear overly large.
RecommendedDesign any icons or graphics that your application displays to display on
black-and-white and gray-scale monitors, as well on low-color (16) systems.
RecommendedUse icons to represent only objects and applications.
RecommendedUse only the palette of 22 colors for icons.
The CDE icon palette was chosen to maximize attractiveness and readability
without using an unnecessary number of colors. Use of additional colors may
cause undesirable color shifting on the display.
RecommendedDesign icons for international use.
Do not use text, symbols, humor, animals, and other items that may be
interpreted differently in other cultures.
RecommendedLeft-allign 16x16 and 32x32 icons; place any empty bits on the right
side of the bounding box.
RecommendedCenter 48x48 icons in the bounding box.
RequiredIf you use a tool bar, it should appear only in windows with a menu bar.
RequiredTool 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.
RequiredWhen 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.
RecommendedGive users the option to hide the tool bar.
RequiredPlace the tool bar container directly under the menu bar. It should have
the same width as the window, as well as similar height to the menu bar.
RecommendedIf you use a tool bar in your application, provide a status line in the
same primary window as the tool bar.
This status line should provide immediate feedback to the user as to the
purpose of the button that the mouse is currently over or that has the
keyboard focus. When the arrow is over a tool bar icon, the status line should
display a brief definition of what the icon represents or what will happen
when the user clicks the icon.
RecommendedProvide labels under tool bar icons. These labels should serve to explain
the purpose of the icon.
RecommendedAll pixmaps in the tool bar should be the same size. This ensures that all
the tool bar buttons are the same size.
RecommendedDrawn buttons in the tool bar should be the same width and height. Similar
or related items should be grouped, and groups should be evenly spaced across
the tool bar.
RecommendedThe primary pane of the dialog box or window should contain all of the
controls needed to complete the task. This should include all critical and
frequently used functionality.
RecommendedIt is assumed that infrequently used features are placed in the secondary
pane. The core functionality of the application should not depend on any
controls placed in secondary panes.
RequiredAlign 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.
RecommendedIf important controls must be placed in the secondary pane, specify that
the window in question should be displayed in its expanded state by default.
The user should still be able to shrink the window by pressing the Contract
button.
RecommendedThe secondary pane should expand in the direction most consistent with the
user's expectations, the reading pattern of the language in which it will
be displayed, and the content of the information displayed.
RecommendedIf possible, the panes should have the same default width.
RequiredSeparate the primary pane from the secondary pane with a separator.
RequiredIf 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.
RequiredThe expandable window should have one button that changes its label based
on the state of the window.
RequiredThe 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.
OptionalThe expand button may contain a graphic in addition to the label. This
graphic should indicate the direction in which the window will expand or
contract.
RecommendedPlace the button in the lower left-hand corner of the window or dialog box
for expansion in the vertical direction and in the lower-right hand corner for
expansion in the horizontal direction.
RequiredIf 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.
RequiredApplications 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.
RecommendedApplications should remember the state of each expandable window or dialog
box across sessions so that the user does not have to manually configure the
expandable windows each time the application is run.
If appropriate, provide a mechanism (as an option) to allow the user to set
the state of an expandable window globally for the application. This would be
part of the application's Options.
RecommendedWhen creating messages, do not assume that the user has any expert
knowledge about computer systems in general or the UNIX system in particular.
RecommendedError messages should indicate the possible cause of the error and
indicate the possible actions the user can take in response.
OptionalUse audio feedback, in addition to any messages displayed, to signal error
conditions and events.
OptionalAvoid relying on error messages from the kernel and library routines.
Error messages from kernel and library routines are normally not seen by the
user, and even when the user does see them, they are usually too low-level and
cryptic to be understood by nonprogrammers. Applications should check for
error conditions and use an error dialog box to present an appropriate error
message in terms of the user's actions and intentions.
RecommendedDisplay a confirmation or warning message dialog box when an action
instigated by the user will be irreversible and potentially destructive.
OptionalUrgent conditions that require immediate attention by the user, no matter
which application or desktop service the user is currently accessing should be
brought to the user's attention with audiovisual notification. Invoke the
alarm signal in the current workspace regardless of the workspace in which the
application resides.
RecommendedUse footer messages only to communicate status, progress, or information
(help) messages. Do not use the footer to present error messages.
RecommendedProvide a Help button in all message dialog boxes, except those that
contain self-explanatory messages.
RecommendedUse the appropriate dialog box style to display messages.
OptionalUse an information dialog box to display status, completion of activity,
or other informative types of messages to which the user need not necessarily
respond other than to acknowledge having read the message.
Minimally, information dialog boxes should have an OK button so that the
user can dismiss the dialog box. If there is additional information available
or other references for the topic to which the message relates, include a Help
button.
OptionalUse an error dialog box to display error messages to the user. State what
the error is and specify why it occurred. Include a Help button so that the
user can get additional information, unless the message is self-explanatory.
Also include an OK button that dismisses the dialog box.
A Cancel button is not required for error dialog boxes unless the error
resulted in the suspension of an activity that was in progress. In this case,
the message should indicate whether the user has the option to continue the
activity or to stop it, and the buttons for the dialog box should be Continue,
Cancel, and Help. In general, error dialog boxes should not be modal unless it
is critical that the user not continue interacting with the application until
the user has acknowledged having read the error message.
OptionalUse a question dialog box to ask questions of the user. Clearly word the
question to indicate what a Yes response or a No response means. Include the
buttons Yes, No, and Help. Help should provide additional information as to
what the application will do in response to a Yes or No choice.
OptionalUse a warning dialog box to communicate the consequences of an action
requested by the user that may result in the loss of data, system or
application accessibility, or some other undesirable event. Present the dialog
box before the action is performed and offer the user the opportunity to
cancel the requested operation. Include the buttons Yes, No, and Help, or
Continue, Cancel, and Help. Help should provide additional information on the
consequences of performing the action requested.
OptionalUse a working dialog box to display in-progress information to the user
when this information is not displayed in the footer of your
application's window. Include a Stop button that allows the user to
terminate the activity. The operation is terminated at the next appropriate
breakpoint, and a confirmation might be displayed asking whether the user
really wants to stop the activity. The confirmation message might state the
consequences of stopping the action.
OptionalWrite error messages to the CDE error log when it is not appropriate to
display these to the user in a message dialog box, but when the message may
nevertheless be useful in diagnosing problems.
Messages written to the error log should provide additional information
about the error and should state the context in which the error occurred.
OptionalInformational messages should be left aligned and displayed in a light
font in keeping with their unobtrusive nature. Note that the margin where
informational messages are displayed should not accept mouse focus.
OptionalProgress messages should normally be displayed only while the operation is
in progress. Remove notices and other information that is no longer valid
within a few seconds to avoid confusion about whether or not the information
is current.
RecommendedIf any command chosen by the user is expected to take longer than 2
seconds to complete, but less than 10 seconds, display the standard busy
pointer as feedback that the command is executing.
Display the busy pointer within 0.5 seconds of execution of the command.
RecommendedIf any command chosen by the user is expected to take longer than 10
seconds to complete, display a working dialog box or other feedback of similar
character that indicates that the application is working on the request. The
feedback should reveal progress toward completion of the activity.
If an activity is expected to take a significant amount of time (10 seconds
or more), display feedback stronger than the busy pointer. Displaying the busy
pointer for long amounts of time may lead the user to conclude that the
application has "hung." Display a progress indicator in these
scenarios that indicates that the application is still functioning and is
working on the user's request. The progress indicator should show how
much of the activity has been completed and what amount remains.
RecommendedWhen your application displays work-in-progress feedback to the user, do
not block access to other applications and services within the desktop
environment.
Multitasking should always be supported and, as such, your application
should allow the user to access other services while it is busy performing
some activity. Preferably, the user is also able to access other features
within your application even though it is currently working on another
request. When this is supported, your application should display an enhanced
busy pointer that indicates that the application is busy but still willing to
accept input.
Essential Related Topics
For more information, see the Control, Menu (Control), Menu Bar (Menu
Type), Message, Object, View, and Window Navigation reference pages.
Supplemental Related Topics
For more information, see the Warning Signal reference page.
[ Previous |
Next |
Contents |
Glossary |
Home |
Search ]