term% cat index.txt MENUHIT(9.3) MENUHIT(9.3)
NAME
menuhit - present user with menu and get selection
SYNOPSIS
#include <jerq.h>
int menuhit(m, n)
Menu *m; int n;
DESCRIPTION
Menuhit presents the user with a menu specified by the Menu pointer m
and returns an integer indicating the selection made, or -1 for no se‐
lection. The integer n specifies which button to use for the interac‐
tion: 1, 2 or 3. Menuhit assumes that the button is already depressed
when it is called. The user makes a selection by lifting the button
when the cursor points at the desired selection; lifting the button
outside the menu indicates no selection.
Menus can be built in two ways, either as an array of strings or with a
generator function:
char *menutext[]={"Item 0", "Item 1", "Item 2", 0};
Menu stringsmenu={ menutext };
or
char *menugen();
Menu genmenu={ (char **)0, menugen };
The generator function is passed an integer parameter n, and must re‐
turn the string for the n'th menu entry, or 0 if n is beyond the number
of entries in the menu.
Regardless of the method of generation, characters with the 0200 bit
set are regarded as fill characters. For example, the string "\240X"
will appear in the menu as a right-justified X. Menu strings without
fill characters are drawn centered in the menu.
Here is an example, using the list-of-strings menu defined above:
switch(menuhit(&stringsmenu, 3)){ /* Use right button */
case 0:
item_0();
break;
case 1:
item_1();
break;
case 2:
item_2();
break;
case -1:
noselection();
break;
}
MENUHIT(9.3)