The application does not have to worry about handling the menu display. The menus are simply submitted to Intuition and the application waits for Intuition to send messages about the selection of menu items. These messages, along with the data in the menu structures, give the application all the information required for the processing of the user actions. Menus can be set up with the GadTools library on systems running Release 2 or a later version of the OS. Since GadTools makes menu set up easier and handles much of the detail work of menu processing (including adjusting to the current font selection), it should be used whenever possible. Under 1.3 (V34) and older versions of the OS, GadTools is not available. To set up menus that work with these older systems, you use the Menu and MenuItem structures. In general, for each menu in the menu bar, you declare one instance of the Menu structure. For each item or sub-item within a menu, you declare one instance of the MenuItem structure. Text-based menus like the kind used in this chapter require an additional IntuiText structure for each menu, menu item and sub-item. All these structures are defined in <intuition/intuition.h>. The data structures used for menus are linked together to form a list known as a menu strip. For all the details of how the structures are linked and for listings of Menu and MenuItem, see the Menu Data Structures" section later in this chapter. Submitting and Removing Menu Strips Simple Menu Example Disabling Menu Operations Changing Menu Strips Sharing Menu Strips Menu Selection Messages Menu Numbers Help Key Processing in Menus Menu Layout About Menu Item Boxes Attribute Items and the Checkmark Toggle Selection Mutual Exclusion Managing the State of Checkmarks Command Key Sequences Enabling and Disabling Menus and Menu Items Intercepting Normal Menu Operations