Once a menu has been posted (displayed), you should funnel input events to it
through
menu_driver. This routine has three major input cases:
|
»
|
The input is a form navigation request.
Navigation request codes are constants defined in <form.h>,
which are distinct from the key- and character codes
returned by wgetch(3X).
|
|
&#187;
|
The input is a printable character.
Printable characters (which must be positive, less than 256) are
checked according to the program's locale settings.
|
|
&#187;
|
The input is the KEY_MOUSE special key associated with an mouse event.
|
The menu driver requests are as follows:
|
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 down a page.
|
|
REQ_SCR_UPAGE
|
| |
Scroll up 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/deselect an item.
|
|
REQ_CLEAR_PATTERN
|
| |
Clear the menu pattern buffer.
|
|
REQ_BACK_PATTERN
|
| |
Delete the previous character from the pattern buffer.
|
|
REQ_NEXT_MATCH
|
| |
Move to the next item matching the pattern match.
|
|
REQ_PREV_MATCH
|
| |
Move to the previous item matching the pattern match.
|
If the second argument is a printable character, the code appends
it to the pattern buffer and attempts to move to the next item matching
the new pattern.
If there is no such match,
menu_driver returns
E_NO_MATCH and deletes the appended character from the buffer.
If the second argument is one of the above pre-defined requests, the
corresponding action is performed.