te
Copyright 1989 AT&T
Portions Copyright (c) 1996, Sun Microsystems, Inc. All Rights Reserved.
The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
FORM_DRIVER 3CURSES "Dec 31, 1996"
NAME
form_driver - command processor for the forms subsystem
SYNOPSIS

cc [ flag... ] file... -lform  -lcurses  [ library... ]
#include <form.h>

int form_driver(FORM *form, int c);
DESCRIPTION

The form_driver() function is the workhorse of the forms subsystem; it checks to determine whether the character c is a forms request or data. If it is a request, the form driver executes the request and reports the result. If it is data (a printable ASCII character), it enters the data into the current position in the current field. If it is not recognized, the form driver assumes it is an application-defined command and returns E_UNKNOWN_COMMAND. Application defined commands should be defined relative to MAX_COMMAND, the maximum value of a request listed below.

Form driver requests: REQ_NEXT_PAGE

Move to the next page.

REQ_PREV_PAGE

Move to the previous page.

REQ_FIRST_PAGE

Move to the first page.

REQ_LAST_PAGE

Move to the last page.

REQ_NEXT_FIELD

Move to the next field.

REQ_PREV_FIELD

Move to the previous field.

REQ_FIRST_FIELD

Move to the first field.

REQ_LAST_FIELD

Move to the last field.

REQ_SNEXT_FIELD

Move to the sorted next field.

REQ_SPREV_FIELD

Move to the sorted prev field.

REQ_SFIRST_FIELD

Move to the sorted first field.

REQ_SLAST_FIELD

Move to the sorted last field.

REQ_LEFT_FIELD

Move left to field.

REQ_RIGHT_FIELD

Move right to field.

REQ_UP_FIELD

Move up to field.

REQ_DOWN_FIELD

Move down to field.

REQ_NEXT_CHAR

Move to the next character in the field.

REQ_PREV_CHAR

Move to the previous character in the field.

REQ_NEXT_LINE

Move to the next line in the field.

REQ_PREV_LINE

Move to the previous line in the field.

REQ_NEXT_WORD

Move to the next word in the field.

REQ_PREV_WORD

Move to the previous word in the field.

REQ_BEG_FIELD

Move to the first char in the field.

REQ_END_FIELD

Move after the last char in the field.

REQ_BEG_LINE

Move to the beginning of the line.

REQ_END_LINE

Move after the last char in the line.

REQ_LEFT_CHAR

Move left in the field.

REQ_RIGHT_CHAR

Move right in the field.

REQ_UP_CHAR

Move up in the field.

REQ_DOWN_CHAR

Move down in the field.

REQ_NEW_LINE

Insert/overlay a new line.

REQ_INS_CHAR

Insert the blank character at the cursor.

REQ_INS_LINE

Insert a blank line at the cursor.

REQ_DEL_CHAR

Delete the character at the cursor.

REQ_DEL_PREV

Delete the character before the cursor.

REQ_DEL_LINE

Delete the line at the cursor.

REQ_DEL_WORD

Delete the word at the cursor.

REQ_CLR_EOL

Clear to the end of the line.

REQ_CLR_EOF

Clear to the end of the field.

REQ_CLR_FIELD

Clear the entire field.

REQ_OVL_MODE

Enter overlay mode.

REQ_INS_MODE

Enter insert mode.

REQ_SCR_FLINE

Scroll the field forward a line.

REQ_SCR_BLINE

Scroll the field backward a line.

REQ_SCR_FPAGE

Scroll the field forward a page.

REQ_SCR_BPAGE

Scroll the field backward a page.

REQ_SCR_FHPAGE

Scroll the field forward half a page.

REQ_SCR_BHPAGE

Scroll the field backward half a page.

REQ_SCR_FCHAR

Horizontal scroll forward a character.

REQ_SCR_BCHAR

Horizontal scroll backward a character

REQ_SCR_HFLINE

Horizontal scroll forward a line.

REQ_SCR_HBLINE

Horizontal scroll backward a line.

REQ_SCR_HFHALF

Horizontal scroll forward half a line.

REQ_SCR_HBHALF

Horizontal scroll backward half a line.

REQ_VALIDATION

Validate field.

REQ_PREV_CHOICE

Display the previous field choice.

REQ_NEXT_CHOICE

Display the next field choice.

RETURN VALUES

The form_driver() function returns one of the following: E_OK

The function returned successfully.

E_SYSTEM_ERROR

System error.

E_BAD_ARGUMENT

An argument is incorrect.

E_NOT_POSTED

The form is not posted.

E_INVALID_FIELD

The field contents are invalid.

E_BAD_STATE

The routine was called from an initialization or termination function.

E_REQUEST_DENIED

The form driver request failed.

E_UNKNOWN_COMMAND

An unknown request was passed to the form driver.

ATTRIBUTES

See attributes(7) for descriptions of the following attributes:

ATTRIBUTE TYPE ATTRIBUTE VALUE
MT-Level Unsafe
SEE ALSO

curses (3CURSES), forms (3CURSES), attributes (7)

NOTES

The header <form.h> automatically includes the headers <eti.h> and <curses.h>.