
The use of XV_KEY_DATA removes the need for the menu and the scrollbar to be global vari-
ables. It also clarifies the association between the objects that would otherwise not be as
clear. Other examples of XV_KEY_DATA, including a complete discussion on usage, can be
found in Chapter 7, Panels, and Chapter 3, Creating XView Applications.
11.6 Creating Menu Items
As noted, the use of MENU_STRINGS results in the creation of menu items in-line; that is, they
are created automatically by the MENU package during the creation of the menu object. Other
methods for creating menu items in-line include using the attributes, MENU_ITEM and
MENU_ACTION_ITEM.*
MENU_ACTION_ITEM is used as a shortcut for separately specifying a label and a callback
routine:
menu = (Menu)xv_create(NULL, MENU,
MENU_ACTION_ITEM, "item1", callback1,
MENU_ACTION_ITEM, "item2", callback2,
...
NULL);
Two other methods for creating menu items are to:
• Use a separate call to xv_create() with the MENUITEM package.
• Provide a menu-generation routine.
The following subsections discuss the use of MENU_ITEM to create menu items in-line,
MENUITEM to create separate menu items, and MENU_GEN_PROC to specify a routine that cre-
ates menus.
11.6.1 Using MENU_ITEM
Using the attribute MENU_ITEM indicates that a new menu item is to be created and appended
to the existing menu. Use of this attribute means that the menu item is created in-line so a
separate ...