menu_driver(3X) MISCELLANEOUS LIBRARY FUNCTIONS menu_driver(3X)
NAME
menudriver - command processor for the menus subsystem
SYNOPSIS
#include <menu.h>
int menudriver(MENU *menu, int c);
DESCRIPTION
menudriver is the workhorse of the menus subsystem. It
checks to determine whether the character c is a menu
request or data. If c is a request, the menu driver exe-
cutes the request and reports the result. If c is data (a
printable ASCII character), it enters the data into the pat-
tern buffer and tries to find a matching item. If no match
is found, the menu driver deletes the character from the
pattern buffer and returns ENOMATCH. If the character is
not recognized, the menu driver assumes it is an
application-defined command and returns EUNKNOWNCOMMAND.
Menu driver requests:
REQ_LEFT_ITEM Move left to an item.
REQ_RIGHT_ITEM Move right to an item.
REQ_UP_ITEM Move up to an item.
REQ_DOWN_ITEM Move down to an item.
REQ_SCR_ULINE Scroll up a line.
REQ_SCR_DLINE Scroll down a line.
REQ_SCR_DPAGE Scroll up a page.
REQ_SCR_UPAGE Scroll down a page.
REQ_FIRST_ITEM Move to the first item.
REQ_LAST_ITEM Move to the last item.
REQ_NEXT_ITEM Move to the next item.
REQ_PREV_ITEM Move to the previous item.
REQ_TOGGLE_ITEM Select/de-select an item.
REQ_CLEAR_PATTERN Clear the menu pattern buffer.
REQ_BACK_PATTERN Delete the previous character from pattern buffer.
REQ_NEXT_MATCH Move the next matching item.
REQ_PREV_MATCH Move to the previous matching item.
RETURN VALUE
menudriver returns one of the following:
E_OK - The routine returned successfully.
E_SYSTEM_ERROR - System error.
E_BAD_ARGUMENT - An incorrect argument was passed to the routine.
E_BAD_STATE - The routine was called from an initialization or
termination function.
E_NOT_POSTED - The menu has not been posted.
Last change: 1
menu_driver(3X) MISCELLANEOUS LIBRARY FUNCTIONS menu_driver(3X)
E_UNKNOWN_COMMAND - An unknown request was passed to the menu
driver.
E_NO_MATCH - The character failed to match.
E_NOT_SELECTABLE - The item cannot be selected.
E_REQUEST_DENIED - The menu driver could not process the request.
NOTES
Application defined commands should be defined relative to
(greater than) MAXCOMMAND, the maximum value of a request
listed above.
The header file <menu.h> automatically includes the header
files <eti.h> and <curses.h>.
SEE ALSO
curses(3X), menus(3X).
Last change: 2