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]
FORMS 3CURSES "August 28, 2021"
NAME
forms - character based forms package
SYNOPSIS
#include <form.h>
DESCRIPTION
The form library is built using the curses library, and any program using forms routines must call one of the curses initialization routines such as initscr. A program using these routines must be compiled with -lform and -lcurses on the cc command line.

The forms package gives the applications programmer a terminal-independent method of creating and customizing forms for user-interaction. The forms package includes: field routines, which are used to create and customize fields, link fields and assign field types; fieldtype routines, which are used to create new field types for validating fields; and form routines, which are used to create and customize forms, assign pre/post processing functions, and display and interact with forms.

"Current Default Values for Field Attributes"
The forms package establishes initial current default values for field attributes. During field initialization, each field attribute is assigned the current default value for that attribute. An application can change or retrieve a current default attribute value by calling the appropriate set or retrieve routine with a NULL field pointer. If an application changes a current default field attribute value, subsequent fields created using new_field() will have the new default attribute value. (The attributes of previously created fields are not changed if a current default attribute value is changed.)
"Routine Name Index"
The following table lists each forms routine and the name of the manual page on which it is described. forms Routine Name

Manual Page Name

current_field

form_page(3CURSES)

data_ahead

form_data(3CURSES)

data_behind

form_data(3CURSES)

dup_field

form_field_new(3CURSES)

dynamic_field_info

form_field_info(3CURSES)

field_arg

form_field_validation(3CURSES)

field_back

form_field_attributes(3CURSES)

field_buffer

form_field_buffer(3CURSES)

field_count

form_field(3CURSES)

field_fore

form_field_attributes(3CURSES)

field_index

form_page(3CURSES)

field_info

form_field_info(3CURSES)

field_init

form_hook(3CURSES)

field_just

form_field_just(3CURSES)

field_opts

form_field_opts(3CURSES)

field_opts_off

form_field_opts(3CURSES)

field_opts_on

form_field_opts(3CURSES)

field_pad

form_field_attributes(3CURSES)

field_status

form_field_buffer(3CURSES)

field_term

form_hook(3CURSES)

field_type

form_field_validation(3CURSES)

field_userptr

form_field_userptr(3CURSES)

form_driver

form_driver(3CURSES)

form_fields

form_field(3CURSES)

form_init

form_hook(3CURSES)

form_opts

form_opts(3CURSES)

form_opts_off

form_opts(3CURSES)

form_opts_on

form_opts(3CURSES)

form_page

form_page(3CURSES)

form_sub

form_win(3CURSES)

form_term

form_hook(3CURSES)

form_userptr

form_userptr(3CURSES)

form_win

form_win(3CURSES)

free_field

form_field_new(3CURSES)

free_fieldtype

form_fieldtype(3CURSES)

free_form

form_new(3CURSES)

link_field

form_field_new(3CURSES)

link_fieldtype

form_fieldtype(3CURSES)

move_field

form_field(3CURSES)

new_field

form_field_new(3CURSES)

new_fieldtype

form_fieldtype(3CURSES)

new_form

form_new(3CURSES)

new_page

form_new_page(3CURSES)

pos_form_cursor

form_cursor(3CURSES)

post_form

form_post(3CURSES)

scale_form

form_win(3CURSES)

set_current_field

form_page(3CURSES)

set_field_back

form_field_attributes(3CURSES)

set_field_buffer

form_field_buffer(3CURSES)

set_field_fore

form_field_attributes(3CURSES)

set_field_init

form_hook(3CURSES)

set_field_just

form_field_just(3CURSES)

set_field_opts

form_field_opts(3CURSES)

set_field_pad

form_field_attributes(3CURSES)

set_field_status

form_field_buffer(3CURSES)

set_field_term

form_hook(3CURSES)

set_field_type

form_field_validation(3CURSES)

set_field_userptr

form_field_userptr(3CURSES)

set_fieldtype_arg

form_fieldtype(3CURSES)

set_fieldtype_choice

form_fieldtype(3CURSES)

set_form_fields

form_field(3CURSES)

set_form_init

form_hook(3CURSES)

set_form_opts

form_opts(3CURSES)

set_form_page

form_page(3CURSES)

set_form_sub

form_win(3CURSES)

set_form_term

form_hook(3CURSES)

set_form_userptr

form_userptr(3CURSES)

set_form_win

form_win(3CURSES)

set_max_field

form_field_buffer(3CURSES)

set_new_page

form_new_page(3CURSES)

unpost_form

form_post(3CURSES)

RETURN VALUES
Routines that return a pointer always return NULL on error. Routines that return an integer return one of the following: E_OK

The function returned successfully.

E_CONNECTED

The field is already connected to a form.

E_SYSTEM_ERROR

System error.

E_BAD_ARGUMENT

An argument is incorrect.

E_CURRENT

The field is the current field.

E_POSTED

The form is posted.

E_NOT_POSTED

The form is not posted.

E_INVALID_FIELD

The field contents are invalid.

E_NOT_CONNECTED

The field is not connected to a form.

E_NO_ROOM

The form does not fit in the subwindow.

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(5) for descriptions of the following attributes:
ATTRIBUTE TYPE ATTRIBUTE VALUE
MT-Level Unsafe
SEE ALSO
curses(3CURSES), attributes(5)
NOTES
The header <form.h> automatically includes the headers <eti.h> and <curses.h>.