blob: dc571056c73a527f06e70cb79dab121964b9f00d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
|
'\" t
.TH menu_driver 3X ""
.SH NAME
\fBmenu_driver\fR - command-processing loop of the menu system
.SH SYNOPSIS
\fB#include <menu.h>\fR
.br
int menu_driver(MENU *menu, int c);
.br
.SH DESCRIPTION
Once a menu has been posted (displayed), you should funnel input events to it
through \fBmenu_driver\fR. This routine has two major input cases; either
the input is a menu navigation request or it's a printable ASCII character.
The menu driver requests are as follows:
.TP 5
REQ_LEFT_ITEM
Move left to an item.
.TP 5
REQ_RIGHT_ITEM
Move right to an item.
.TP 5
REQ_UP_ITEM
Move up to an item.
.TP 5
REQ_DOWN_ITEM
Move down to an item.
.TP 5
REQ_SCR_ULINE
Scroll up a line.
.TP 5
REQ_SCR_DLINE
Scroll down a line.
.TP 5
REQ_SCR_DPAGE
Scroll down a page.
.TP 5
REQ_SCR_UPAGE
Scroll up a page.
.TP 5
REQ_FIRST_ITEM
Move to the first item.
.TP 5
REQ_LAST_ITEM
Move to the last item.
.TP 5
REQ_NEXT_ITEM
Move to the next item.
.TP 5
REQ_PREV_ITEM
Move to the previous item.
.TP 5
REQ_TOGGLE_ITEM
Select/deselect an item.
.TP 5
REQ_CLEAR_PATTERN
Clear the menu pattern buffer.
.TP 5
REQ_BACK_PATTERN
Delete the previous character from the pattern buffer.
.TP 5
REQ_NEXT_MATCH
Move to the next item matching the pattern match.
.TP 5
REQ_PREV_MATCH
Move to the previous item matching the pattern match.
.PP
If the second argument is a printable ASCII 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, \fBmenu_driver\fR returns
\fBE_NO_MATCH\fR and deletes the appended character from the buffer.
.PP
If the second argument is one of the above pre-defined requests, the
corresponding action is performed.
.PP
If the second argument is neither printable ASCII nor one of the above
pre-defined menu requests, the drive asumes it is an application-specific
command and returns \fBE_UNKNOWN_COMMAND\fR. Application-defined commands
should be defined relative to \fBMAX_COMMAND\fR, the maximum value of these
pre-defined requests.
.SH RETURN VALUE
\fBmenu_driver\fR return one of the following error codes:
.TP 5
\fBE_OK\fR
The routine succeeded.
.TP 5
\fBE_SYSTEM_ERROR\fR
System error occurred (see \fBerrno\fR).
.TP 5
\fBE_BAD_ARGUMENT\fR
Routine detected an incorrect or out-of-range argument.
.TP 5
\fBE_BAD_STATE\fR
Routine was called from an initialization or termination function.
.TP 5
\fBE_NOT_POSTED\fR
The menu has not been posted.
.TP 5
\fBE_UNKNOWN_COMMAND\fR
The menu driver code saw an unknown request code.
.TP 5
\fBE_NO_MATCH\fR
Character failed to match.
.TP 5
\fBE_REQUEST_DENIED\fR
The menu driver could not process the request.
.SH SEE ALSO
\fBcurses\fR(3X), \fBmenus\fR(3x).
.SH NOTES
The header file \fB<menu.h>\fR automatically includes the header files
\fB<curses.h>\fR.
.SH PORTABILITY
These routines emulate the System V menu library. They were not supported on
Version 7 or BSD versions.
.SH AUTHORS
Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
S. Raymond.
.\"#
.\"# The following sets edit modes for GNU EMACS
.\"# Local Variables:
.\"# mode:nroff
.\"# fill-column:79
.\"# End:
|