This chapter describes the different types of menus provided by the Motif toolkit. It also presents a number of ways to
create menus in an application and talks about the issues involved in designing menu systems.
Menus provide the user with a set of choices in an application without complicating its normal visual appearance.
These convenient mini−toolboxes are essential for the user who, like an auto mechanic that is busy working under the
car, needs quick and convenient access to her tools without having to look or move away from her work. The Motif
Style Guide provides for three different types of menus: PulldownMenus, PopupMenus, and OptionMenus. Despite
the differences between the three types of menus, they all provide simple and convenient access to application
16.1 Menu Types
PulldownMenus that are posted from the MenuBar are the most common menus in an application. the figure shows an
example of a PulldownMenu. The menu pops up when the user presses the first mouse button on a CascadeButton.
The button that posts the menu is typically user−settable, since left−handed users may want to reverse the default
button bindings. As described in Chapter 4, The Main Window, CascadeButtons may be displayed as titles in a
MenuBar or as menu items in a PulldownMenu. When the CascadeButton is a child of a MenuBar, the menu drops
down below the button when the user clicks on it. When the CascadeButton is an item in an existing menu, the new
menu pops up to the right of the item; it is sometimes referred to as a cascading menu or a pullright menu.
Under certain conditions, it may be inconvenient for the user to stop what she is doing, move the mouse to the
MenuBar to pull down a menu, and then move the mouse back to where she was working. Having to move the mouse
away, even to another part of the same window, can reduce productivity. A PopupMenu is one solution to this
problem as it can provide immediate access to application functionality. PopupMenus are posted using the third mouse
button and can be displayed anywhere in an application. Rather than having to move the mouse, the user can simply