that invoke a menu item even when the menu is not displayed. Accelerators typically use the CTRL or ALT key to
distinguish them from ordinary keystrokes that are sent to the application. For example, again in the figure, the
Ctrl+C accelerator allows the user to exit the application without accessing the menu.
Before we plunge into the details of menu creation, a word of warning to experienced X Toolkit programmers is in
order. Motif does not use Xt's normal methods for creating and managing menus. In fact, you cannot use the standard
Xt methods for menu creation or management without virtually reimplementing the Motif menu design. If you need to
port an Athena or OPEN LOOK−based application to Motif, you will probably have to reimplement your menu
design. In Xt, you would typically create an OverrideShell that contains a generic manager widget, followed by a set
of PushButtons. To display the menu, you would pop up the shell using XtPopup(). The Motif toolkit abstracts the
menu creation and management process using routines that make the shell opaque to the programmer.
16.2 Creating Simple Menus
In Chapter 4, The Main Window, we used the simple menu creation routines to build the MenuBar and its associated
PulldownMenus. These routines are designed to be plug−and−play convenience routines; their only requirements are
compound strings for the menu labels and a single callback function that is invoked when the user activates any of the
menu items.
XmVaCreateSimpleMenuBar() creates a MenuBar, ...