[ Previous | Next | Contents | Glossary | Home | Search ]
Motif and CDE 2.1 Style Guide Reference


Menu (Control)

Reference

Description

A menu is a control that contains a group of choices, generally of any type. Menus are either pop-up menus, tear-off menus, menu bars, or cascaded menus.

A cascaded menu is a menu displayed from a cascading choice and may be a pull-down menu, an option menu, or a submenu.

A submenu is a cascaded menu displayed from a tear-off menu, a pop-up menu, or another cascaded menu.

A menu system is a spring-loaded system whose cascaded controls are all menus.

Figure 40 illustrates the various menu types.

Figure 40. Menu Types


Pull-down menu: View figure.
Option menu: View figure.
Cascaded menu: View figure.
Tear-off menu: View figure.
View figure.

Pop-up menu:


View figure.

When to Use

Recommended
Use a menu to present choices, especially standard choices, in a consistent manner.

Recommended
Use a menu to provide choices when there is no space for the choices in the window itself, or when the display of the choices would be awkward or would remove attention from the main controls that the user needs to perform a task.

Guidelines

The following guidelines apply to languages that read from left to right. For information on bidrectional and vertical language support, see Chapter 11.

Required
Place only action, cascading, dialog, and value choices in a menu.

Recommended
Place related choices together in a menu.

Recommended
Use separators to distinguish groups of related choices.

Recommended
Place application-specific choices in a menu following a group of related predefined choices.

Recommended
Allow a user to add, remove, or reorder choices on a menu.

Optional
Allow a user to add or remove cascaded menus and to reorganize the allocation of choices to menus.

Recommended
Avoid placing more than 15 choices in a menu, unless requested by the user. Use submenus to reduce the number of choices in a menu.

Recommended
Avoid using more than one level of submenus.

Recommended
Design submenus to contain at least three choices. If only one or two choices would be in the submenu, place the choices in the parent menu except where the menu can be customized by the user to include additional choices.

Recommended
Do not use the label of a cascading choice as the label of a choice within its corresponding cascaded menu. Instead, consider the label as the title for the choices in the corresponding menu. Choose a label for the cascading choice that accurately describes the purpose of the menu.

Required
Provide the predefined mnemonic for each predefined textual choice in a menu.

Required
Provide a unique mnemonic for each application-specific textual choice in a menu, unless there is no meaningful unique mnemonic.

Required
Except in the Selected menu or in a pop-up menu (or a menu torn off from them), do not add or remove choices from a menu to indicate unavailability of choices. Instead, display unavailable choices with unavailable emphasis.

Required
If a choice is not available to a particular user due to an external factor over which the user has no control, do not include or reserve space for the choice in a menu.

Required
Display unavailable emphasis on action, value, and dialog choices in a menu that cannot be activated or toggled in the current context.

Required
A cascaded menu should be just large enough so that the labels of all the choices in the menu are fully displayed.

Required
Organize menus in either rows or columns.

Required
If you provide cascading choices in a menu other than the menu bar, organize the menu in columns.

Required
Support the use of directional keys for navigation in a menu system when the menu containing the focus is not spring sensitive.

Recommended
Support the use of directional keys for navigation when focus is in a menu system and no mouse button is pressed.

Required
In a menu organized in columns, make V move the cursor to a choice in the row below, wrapping at the bottom row within the menu.

Required
In a menu organized in rows, but not on a cascading choice, make V move the cursor to the choice below, wrapping at the bottom edge within the menu.

Required
In a menu organized in columns, make ^ move the cursor to a choice in the row above, wrapping at the top row within the menu.

Required
In a menu organized in rows, but not on a cascading choice, make ^ move the cursor to the choice above, wrapping at the top edge within the menu.

Required
In a menu organized in rows or columns, whose parent is not a menu, make < move the cursor to the choice to the left, wrapping at the left edge within the menu.

Required
In a menu organized in rows or columns, but not at the left edge, make < move the cursor to the choice to the left.

Required
At the left edge of a menu organized in rows or columns, whose parent menu is organized in columns, make < remove the menu and move the cursor to its associated cascading choice.

Required
At the left edge of a menu organized in rows or columns, cascaded from a menu-bar item, make < remove the menu and activate the menu-bar item to the left, first wrapping within the menu bar, if necessary.

Required
In a menu organized in columns, on a cascading choice, make > activate the choice.

Required
In a menu organized in rows or columns, whose parent is not a menu, but not on a cascading choice, make > move the cursor to the choice to the right, wrapping at the right edge within the menu.

Required
In a menu organized in rows or columns, but not at the right edge, and not on a cascading choice, make > move the cursor to the choice to the right.

Required
At the right edge of a menu organized in rows or columns, whose cascaded menu ancestors are all organized in columns, and which is ultimately descended from a menu-bar item, but not on a cascading choice, make > remove all the cascaded menus and activate the menu-bar item to the right, first wrapping within the menu bar, if necessary.

Required
When a cascading choice is used in a menu whose choices are aligned vertically, display a right-pointing arrow to the right of the choice and align the right edge of the arrow with the right edge of the menu.

Required
If a spring-loaded menu is displayed and is not spring sensitive, give it focus unless the focus is in a descendant spring-loaded menu.

Required
When focus moves to a menu that has just been displayed, place the active cursor on the default choice in the menu. If not determined in any other specified way, make the default choice the first choice in the menu or, if that is a tear-off choice, the following choice.

Required
When a submenu is displayed from a menu-bar item, place it, if possible, immediately below the menu-bar item, with the left edges of the menu and menu-bar item aligned.

Required
When a submenu is displayed from a menu organized as a single column, place the submenu, if possible, so that its left edge is aligned with the right edge of the parent menu.

Recommended
When a submenu is displayed from a menu whose choices are aligned vertically, place the submenu, if possible, so that its default menu item is directly to the right of the right arrow in the cascading choice from which the submenu was displayed.

Required
When the active cursor is on an available choice in a menu and the user presses Select, Space, Ctrl Space,Enter,CtrlEnter, or keypadEnter, activate or toggle the choice.

Essential Related Topics

For more information, see the Cascading (Choice Type), Choice, and Spring-Loaded (Control Type) reference pages.

Supplemental Related Topics

For more information, see the Emphasis (Cue), Menu Bar (Menu Type), Mnemonic, Pop-Up Menu (Menu Type), Pull-Down Menu (Menu Type), and Tear-Off Menu (Menu Type) reference pages.


[ Previous | Next | Contents | Glossary | Home | Search ]