
D.9.0.2 The menu attributes for menu accelerators
The following attributes provide functionality to define menu accelerators for menu items.
The basic difference for menu accelerators is that when an accelerator (eg. Meta+l) is
pressed, the menu is not brought up. Instead, the procedures that are normally called when
one selects a menu item, are called directly.
Each new attribute below corresponds to one of many ways of creating a menu item. The
attribute MENU_STRINGS_AND_ACCELERATORS and MENU_ACTION_ACCELERATOR are for
static creation of menu items for a given menu.
The attribute MENU_ACCELERATOR, when used in a create or set call, set an accelerator on a
menu item:
Menu menu;
menu = xv_create(NULL, MENU
MENU_ITEM,
MENU_STRING, "Load",
MENU_NOTIFY_PROC, load_proc,
MENU_ACCELERATOR, "Meta+l",
NULL,
NULL);
or
Menu_item load_item;
load_item = xv_create(NULL, MENU_ITEM,
MENU_STRING, "Load",
MENU_NOTIFY_PROC, load_proc,
MENU_ACCELERATOR, "Meta+l",
NULL);
The accelerator string will be copied by XView. A get returns the accelerator string. The
string returned should not be modified.
The attribute MENU_ACTION_ACCELERATOR can be used to create a menu item with a given
label, notify procedure, and accelerator:
xv_set(menu,
MENU_ACTION_ACCELERATOR,
"Load", load_proc, "Meta+L",
NULL);
The menu item label string, the first argument, will not be copied by XView. The accelerator
string, argument three, will be copied.
MENU_S ...