ncurses 5.3
[ncurses.git] / doc / html / man / form_driver.3x.html
1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
2 <!-- 
3   ****************************************************************************
4   * Copyright (c) 1998,2002 Free Software Foundation, Inc.                   *
5   *                                                                          *
6   * Permission is hereby granted, free of charge, to any person obtaining a  *
7   * copy of this software and associated documentation files (the            *
8   * "Software"), to deal in the Software without restriction, including      *
9   * without limitation the rights to use, copy, modify, merge, publish,      *
10   * distribute, distribute with modifications, sublicense, and/or sell       *
11   * copies of the Software, and to permit persons to whom the Software is    *
12   * furnished to do so, subject to the following conditions:                 *
13   *                                                                          *
14   * The above copyright notice and this permission notice shall be included  *
15   * in all copies or substantial portions of the Software.                   *
16   *                                                                          *
17   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
18   * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
19   * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
20   * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
21   * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
22   * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
23   * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
24   *                                                                          *
25   * Except as contained in this notice, the name(s) of the above copyright   *
26   * holders shall not be used in advertising or otherwise to promote the     *
27   * sale, use or other dealings in this Software without prior written       *
28   * authorization.                                                           *
29   ****************************************************************************
30   * @Id: form_driver.3x,v 1.9 2002/02/16 22:39:52 tom Exp @
31 -->
32 <HTML>
33 <HEAD>
34 <TITLE>form_driver 3x</TITLE>
35 <link rev=made href="mailto:bug-ncurses@gnu.org">
36 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
37 </HEAD>
38 <BODY>
39 <H1>form_driver 3x</H1>
40 <HR>
41 <PRE>
42 <!-- Manpage converted by man2html 3.0.1 -->
43
44 </PRE>
45 <H2>NAME</H2><PRE>
46        <STRONG>form_driver</STRONG> - command-processing loop of the form system
47
48
49 </PRE>
50 <H2>SYNOPSIS</H2><PRE>
51        <STRONG>#include</STRONG> <STRONG>&lt;form.h&gt;</STRONG>
52        int form_driver(FORM *form, int c);
53
54
55 </PRE>
56 <H2>DESCRIPTION</H2><PRE>
57        Once a form has been posted (displayed), you should funnel
58        input events to it through <STRONG>form_driver</STRONG>.  This routine  has
59        two  major input cases; either the input is a form naviga-
60        tion request or it's a  printable  ASCII  character.   The
61        form driver requests are as follows:
62
63        REQ_NEXT_PAGE
64             Move to the next page.
65
66        REQ_PREV_PAGE
67             Move to the previous page.
68
69        REQ_FIRST_PAGE
70             Move to the first page.
71
72        REQ_LAST_PAGE
73             Move to the last field.
74
75
76        REQ_NEXT_FIELD
77             Move to the next field.
78
79        REQ_PREV_FIELD
80             Move to the previous field.
81
82        REQ_FIRST_FIELD
83             Move to the first field.
84
85        REQ_LAST_FIELD
86             Move to the last field.
87
88        REQ_SNEXT_FIELD
89             Move to the sorted next field.
90
91        REQ_SPREV_FIELD
92             Move to the sorted previous field.
93
94        REQ_SFIRST_FIELD
95             Move to the sorted first field.
96
97        REQ_SLAST_FIELD
98             Move to the sorted last field.
99
100        REQ_LEFT_FIELD
101             Move left to a field.
102
103        REQ_RIGHT_FIELD
104             Move right to a field.
105
106        REQ_UP_FIELD
107             Move up to a field.
108
109        REQ_DOWN_FIELD
110             Move down to a field.
111
112
113        REQ_NEXT_CHAR
114             Move to the next char.
115
116        REQ_PREV_CHAR
117             Move to the previous char.
118
119        REQ_NEXT_LINE
120             Move to the next line.
121
122        REQ_PREV_LINE
123             Move to the previous line.
124
125        REQ_NEXT_WORD
126             Move to the next word.
127
128        REQ_PREV_WORD
129             Move to the previous word.
130
131        REQ_BEG_FIELD
132             Move to the beginning of the field.
133
134        REQ_END_FIELD
135             Move to the end of the field.
136
137        REQ_BEG_LINE
138             Move to the beginning of the line.
139
140        REQ_END_LINE
141             Move to the end of the line.
142
143        REQ_LEFT_CHAR
144             Move left in the field.
145
146        REQ_RIGHT_CHAR
147             Move right in the field.
148
149        REQ_UP_CHAR
150             Move up in the field.
151
152        REQ_DOWN_CHAR
153             Move down in the field.
154
155
156
157        REQ_NEW_LINE
158             Insert or overlay a new line.
159
160        REQ_INS_CHAR
161             Insert a blank at the cursor.
162
163        REQ_INS_LINE
164             Insert a blank line at the cursor.
165
166        REQ_DEL_CHAR
167             Delete character at the cursor.
168
169        REQ_DEL_PREV
170             Delete character before the cursor.
171
172        REQ_DEL_LINE
173             Delete line at the cursor.
174
175        REQ_DEL_WORD
176             Delete blank-delimited word at the cursor.
177
178        REQ_CLR_EOL
179             Clear to end of line from cursor.
180
181        REQ_CLR_EOF
182             Clear to end of field from cursor.
183
184        REQ_CLR_FIELD
185             Clear the entire field.
186
187        REQ_OVL_MODE
188             Enter overlay mode.
189
190        REQ_INS_MODE
191             Enter insert mode.
192
193
194        REQ_SCR_FLINE
195             Scroll the field forward a line.
196
197        REQ_SCR_BLINE
198             Scroll the field backward a line.
199
200        REQ_SCR_FPAGE
201             Scroll the field forward a page.
202
203        REQ_SCR_BPAGE
204             Scroll the field backward a page.
205
206        REQ_SCR_FHPAGE
207             Scroll the field forward half a page.
208
209        REQ_SCR_BHPAGE
210             Scroll the field backward half a page.
211
212        REQ_SCR_FCHAR
213             Scroll the field forward a character.
214
215        REQ_SCR_BCHAR
216             Scroll the field backward a character.
217
218        REQ_SCR_HFLINE
219             Horizontal scroll the field forward a line.
220
221        REQ_SCR_HBLINE
222             Horizontal scroll the field backward a line.
223
224        REQ_SCR_HFHALF
225             Horizontal scroll the field forward half a line.
226
227        REQ_SCR_HBHALF
228             Horizontal scroll the field backward half a line.
229
230
231        REQ_VALIDATION
232             Validate field.
233
234        REQ_NEXT_CHOICE
235             Display next field choice.
236
237        REQ_PREV_CHOICE
238             Display previous field choice.
239
240        If the second argument is a printable ASCII character, the
241        driver places it in the current position  in  the  current
242        field.   If  it is one of the forms requests listed above,
243        that request is executed.
244
245        If the second argument is neither printable ASCII nor  one
246        of the above pre-defined form requests, the driver assumes
247        it  is  an  application-specific   command   and   returns
248        <STRONG>E_UNKNOWN_COMMAND</STRONG>.  Application-defined commands should be
249        defined relative to  <STRONG>MAX_COMMAND</STRONG>,  the  maximum  value  of
250        these pre-defined requests.
251
252
253 </PRE>
254 <H2>RETURN VALUE</H2><PRE>
255        <STRONG>form_driver</STRONG> return one of the following error codes:
256
257        <STRONG>E_OK</STRONG> The routine succeeded.
258
259        <STRONG>E_SYSTEM_ERROR</STRONG>
260             System error occurred (see <STRONG>errno</STRONG>).
261
262        <STRONG>E_BAD_ARGUMENT</STRONG>
263             Routine  detected  an incorrect or out-of-range argu-
264             ment.
265
266        <STRONG>E_BAD_STATE</STRONG>
267             Routine  was  called  from   an   initialization   or
268             termination function.
269
270        <STRONG>E_NOT_POSTED</STRONG>
271             The form has not been posted.
272
273        <STRONG>E_UNKNOWN_COMMAND</STRONG>
274             The form driver code saw an unknown request code.
275
276        <STRONG>E_INVALID_FIELD</STRONG>
277             Contents of field is invalid.
278
279        <STRONG>E_REQUEST_DENIED</STRONG>
280             The form driver could not process the request.
281
282
283 </PRE>
284 <H2>SEE ALSO</H2><PRE>
285        <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>.
286
287
288 </PRE>
289 <H2>NOTES</H2><PRE>
290        The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header
291        files <STRONG>&lt;curses.h&gt;</STRONG>.
292
293
294 </PRE>
295 <H2>PORTABILITY</H2><PRE>
296        These routines emulate the System V forms  library.   They
297        were not supported on Version 7 or BSD versions.
298
299
300 </PRE>
301 <H2>AUTHORS</H2><PRE>
302        Juergen  Pfeifer.   Manual  pages  and  adaptation for new
303        curses by Eric S. Raymond.
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330 </PRE>
331 <HR>
332 <ADDRESS>
333 Man(1) output converted with
334 <a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
335 </ADDRESS>
336 </BODY>
337 </HTML>