form_driver()

command-processing loop of the form system 

Curses Function


SYNOPSIS

#include <form.h>

int form_driver(FORM *form, int c);


DESCRIPTION

Once a form has been posted (displayed), you should funnel input events to it through form_driver(). This routine has two major input cases; either the input is a form navigation request or it's a printable ASCII character. The form driver requests are as follows:

REQ_N 

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 field.

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 previous 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 a field.

REQ_RIGHT_FIELD 

Move right to a field.

REQ_UP_FIELD 

Move up to a field.

REQ_DOWN_FIELD 

Move down to a field.

REQ_NEXT_CHAR 

Move to the next char.

REQ_PREV_CHAR 

Move to the previous char.

REQ_NEXT_LINE 

Move to the next line.

REQ_PREV_LINE 

Move to the previous line.

REQ_NEXT_WORD 

Move to the next word.

REQ_PREV_WORD 

Move to the previous word.

REQ_BEG_FIELD 

Move to the beginning of the field.

REQ_END_FIELD 

Move to the end of the field.

REQ_BEG_LINE 

Move to the beginning of the line.

REQ_END_LINE 

Move to the end of 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 or overlay a new line.

REQ_INS_CHAR 

Insert a blank at the cursor.

REQ_INS_LINE 

Insert a blank line at the cursor.

REQ_DEL_CHAR 

Delete character at the cursor.

REQ_DEL_PREV 

Delete character before the cursor.

REQ_DEL_LINE 

Delete line at the cursor.

REQ_DEL_WORD 

Delete blank-delimited word at the cursor.

REQ_CLR_EOL 

Clear to end of line from cursor.

REQ_CLR_EOF 

Clear to end of field from cursor.

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 

Scroll the field forward a character.

REQ_SCR_BCHAR 

Scroll the field backward a character.

REQ_SCR_HFLINE 

Horizontal scroll the field forward a line.

REQ_SCR_HBLINE 

Horizontal scroll the field backward a line.

REQ_SCR_HFHALF 

Horizontal scroll the field forward half a line.

REQ_SCR_HBHALF 

Horizontal scroll the field backward half a line.

REQ_VALIDATION 

Validate field.

REQ_NEXT_CHOICE 

Display next field choice.

REQ_PREV_CHOICE 

Display previous field choice.

If the second argument is a printable ASCII character, the driver places it in the current position in the current field. If it is one of the forms requests listed above, that request is executed.

If the second argument is neither printable ASCII nor one of the above pre-defined form requests, the drive assumes it is an application-specific command and returns E_UNKNOWN_COMMAND. Application-defined commands should be defined relative to MAX_COMMAND, the maximum value of these pre-defined requests.


RETURN VALUES

form_driver() return one of the following error codes:

E_OK 

The routine succeeded.

E_SYSTEM_ERROR 

System error occurred.

E_BAD_ARGUMENT 

Routine detected an incorrect or out-of-range argument.

E_BAD_STATE 

Routine was called from an initialization or termination function.

E_NOT_POSTED 

The form has not been posted.

E_UNKNOWN_COMMAND 

The form driver code saw an unknown request code.

E_INVALID_FIELD 

Contents of field is invalid.

E_REQUEST_DENIED 

The form driver could not process the request.


NOTES

The header file <form.h> automatically includes the header files <curses.h>.


PORTABILITY

These routines emulate the System V forms library. They were not supported on Version 7 or BSD versions.


AUTHORS

Juergen Pfeifer. Manual pages and adaptation for new curses by Eric S. Raymond.


AVAILABILITY

PTC MKS Toolkit for Professional Developers
PTC MKS Toolkit for Enterprise Developers
PTC MKS Toolkit for Enterprise Developers 64-Bit Edition


SEE ALSO

Functions:
curses(), forms()


PTC MKS Toolkit 10.5 Documentation Build 40.