227 lines
		
	
	
		
			7.7 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			227 lines
		
	
	
		
			7.7 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
| .\"	$NetBSD: form_driver.3,v 1.11 2010/03/22 21:58:31 joerg Exp $
 | |
| .\"
 | |
| .\" Copyright (c) 2001
 | |
| .\"	Brett Lymn - blymn@baea.com.au, brett_lymn@yahoo.com.au
 | |
| .\"
 | |
| .\" This code is donated to The NetBSD Foundation by the author.
 | |
| .\"
 | |
| .\" Redistribution and use in source and binary forms, with or without
 | |
| .\" modification, are permitted provided that the following conditions
 | |
| .\" are met:
 | |
| .\" 1. Redistributions of source code must retain the above copyright
 | |
| .\"    notice, this list of conditions and the following disclaimer.
 | |
| .\" 2. Redistributions in binary form must reproduce the above copyright
 | |
| .\"    notice, this list of conditions and the following disclaimer in the
 | |
| .\"    documentation and/or other materials provided with the distribution.
 | |
| .\" 3. The name of the Author may not be used to endorse or promote
 | |
| .\"    products derived from this software without specific prior written
 | |
| .\"    permission.
 | |
| .\"
 | |
| .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND
 | |
| .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | |
| .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 | |
| .\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE
 | |
| .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 | |
| .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 | |
| .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 | |
| .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 | |
| .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 | |
| .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 | |
| .\" SUCH DAMAGE.
 | |
| .\"
 | |
| .Dd January 1, 2001
 | |
| .Dt FORMS 3
 | |
| .Os
 | |
| .Sh NAME
 | |
| .Nm form_driver
 | |
| .Nd form library
 | |
| .Sh LIBRARY
 | |
| .Lb libform
 | |
| .Sh SYNOPSIS
 | |
| .In form.h
 | |
| .Ft int
 | |
| .Fn form_driver "FORM *form" "int request"
 | |
| .Sh DESCRIPTION
 | |
| The
 | |
| .Fn form_driver
 | |
| is the heart of the forms library, it takes commands in the
 | |
| .Fa request
 | |
| parameter that is either a request to the driver to perform some
 | |
| action or is a character to be inserted into the current field.
 | |
| The form driver will attempt to insert any printable character passed to
 | |
| it into the current field.
 | |
| This may or may not succeed depending on the state of the current field.
 | |
| If the character passed is not
 | |
| printable then the driver attempts to process it as a driver request.
 | |
| If the character passed is not a valid request then the driver will
 | |
| return an unknown command error.
 | |
| .Sh PARAMETERS
 | |
| The forms driver recognizes the following requests:
 | |
| .Pp
 | |
| .Bl -tag -width REQ_SFIRST_FIELD -compact
 | |
| .It REQ_NEXT_PAGE
 | |
| Change to the next page in the form.
 | |
| .It REQ_PREV_PAGE
 | |
| Change to the previous page in the form.
 | |
| .It REQ_FIRST_PAGE
 | |
| Select the first page in the form.
 | |
| .It REQ_LAST_PAGE
 | |
| Go to the last page in the form.
 | |
| .It REQ_NEXT_FIELD
 | |
| Move to the next field in the form field array.
 | |
| .It REQ_PREV_FIELD
 | |
| Move to the previous field in the form field array.
 | |
| .It REQ_FIRST_FIELD
 | |
| Go to the first field in the form field array.
 | |
| .It REQ_LAST_FIELD
 | |
| Go to the last field in the form field array.
 | |
| .It REQ_SNEXT_FIELD
 | |
| Move to the next sorted field on the form.
 | |
| .It REQ_SPREV_FIELD
 | |
| Move to the previous sorted field on the form.
 | |
| .It REQ_SFIRST_FIELD
 | |
| Go to the first field in the sorted list.
 | |
| .It REQ_SLAST_FIELD
 | |
| Move to the last field in the sorted list.
 | |
| .It REQ_LEFT_FIELD
 | |
| Go one field to the left on the form page.
 | |
| .It REQ_RIGHT_FIELD
 | |
| Go one field to the right on the form page.
 | |
| .It REQ_UP_FIELD
 | |
| Go up one field on the form page.
 | |
| .It REQ_DOWN_FIELD
 | |
| Go down one field on the form page.
 | |
| .It REQ_NEXT_CHAR
 | |
| Move one char to the right within the field
 | |
| .It REQ_PREV_CHAR
 | |
| Move one char to the left within the current field.
 | |
| .It REQ_NEXT_LINE
 | |
| Go down one line in the current field.
 | |
| .It REQ_PREV_LINE
 | |
| Go up one line in the current field.
 | |
| .It REQ_NEXT_WORD
 | |
| Go forward one word in the current field
 | |
| .It REQ_PREV_WORD
 | |
| Go backward one word in the current field.
 | |
| .It REQ_BEG_FIELD
 | |
| Move the cursor to the beginning of the current field.
 | |
| .It REQ_END_FIELD
 | |
| Move the cursor to the end of the current field.
 | |
| .It REQ_BEG_LINE
 | |
| Move the cursor to the beginning of the line in the current field.
 | |
| .It REQ_END_LINE
 | |
| Move the cursor to the end of the line.
 | |
| .It REQ_LEFT_CHAR
 | |
| Move the cursor left one character
 | |
| .It REQ_RIGHT_CHAR
 | |
| Move the cursor right one character
 | |
| .It REQ_UP_CHAR
 | |
| Move the cursor up one line.
 | |
| .It REQ_DOWN_CHAR
 | |
| Move the cursor down one line.
 | |
| .It REQ_NEW_LINE
 | |
| Insert a new line at the current cursor position.
 | |
| .It REQ_INS_CHAR
 | |
| Insert a blank character at the current cursor position
 | |
| .It REQ_INS_LINE
 | |
| Open a blank line at the current cursor position.
 | |
| .It REQ_DEL_CHAR
 | |
| Delete the character at the current cursor position.
 | |
| .It REQ_DEL_PREV
 | |
| Delete the character to the left of the current cursor position.
 | |
| .It REQ_DEL_LINE
 | |
| Delete the current line.
 | |
| .It REQ_DEL_WORD
 | |
| Delete the word at the current cursor position.
 | |
| .It REQ_CLR_EOL
 | |
| Clear the field from the current cursor position to the end of the
 | |
| current line.
 | |
| .It REQ_CLR_EOF
 | |
| Clear the field from the current cursor position to the end of the field.
 | |
| .It REQ_CLR_FIELD
 | |
| Clear the field.
 | |
| .It REQ_OVL_MODE
 | |
| Enter overlay mode, characters added to the field will replace the
 | |
| ones already there.
 | |
| .It REQ_INS_MODE
 | |
| Enter insert mode, characters will be inserted at the current cursor
 | |
| position.
 | |
| Any characters to the right of the cursor will be moved
 | |
| right to accommodate the new characters.
 | |
| .It REQ_SCR_FLINE
 | |
| Scroll the field forward one line.
 | |
| .It REQ_SCR_BLINE
 | |
| Scroll the field backward one line.
 | |
| .It REQ_SCR_FPAGE
 | |
| Scroll the field forward one field page.
 | |
| .It REQ_SCR_BPAGE
 | |
| Scroll the field backward one field page.
 | |
| .It REQ_SCR_FHPAGE
 | |
| Scroll the field forward half one field page.
 | |
| .It REQ_SCR_BHPAGE
 | |
| Scroll the field backward half one field page.
 | |
| .It REQ_SCR_FCHAR
 | |
| Scroll the field horizontally forward one character
 | |
| .It REQ_SCR_BCHAR
 | |
| Scroll the field horizontally backward one character
 | |
| .It REQ_SCR_HFLINE
 | |
| Scroll the field horizontally forward one field line.
 | |
| .It REQ_SCR_HBLINE
 | |
| Scroll the field horizontally backward one field line.
 | |
| .It REQ_SCR_HFHALF
 | |
| Scroll the field horizontally forward half a field line.
 | |
| .It REQ_SCR_HBHALF
 | |
| Scroll the field horizontally backward half a field line.
 | |
| .It REQ_VALIDATION
 | |
| Request the contents of the current field be validated using any field
 | |
| validation function that has been set for the field.
 | |
| Normally, the field is validated before the current field changes.
 | |
| This request allows the current field to be validated.
 | |
| .It REQ_PREV_CHOICE
 | |
| Select the previous choice in an enumerated type field.
 | |
| .It REQ_NEXT_CHOICE
 | |
| Select the next choice in an enumerated type field.
 | |
| .El
 | |
| .Sh RETURN VALUES
 | |
| Functions returning pointers will return
 | |
| .Dv NULL
 | |
| if an error is detected.
 | |
| The functions that return an int will return one of the following error
 | |
| values:
 | |
| .Pp
 | |
| .Bl -tag -width E_UNKNOWN_COMMAND -compact
 | |
| .It Er E_OK
 | |
| The function was successful.
 | |
| .It Er E_REQUEST_DENIED
 | |
| The forms driver request could not be fulfilled
 | |
| .It Er E_UNKNOWN_COMMAND
 | |
| The passed character is not a printable character and is not a valid
 | |
| forms driver request.
 | |
| .It Er E_BAD_ARGUMENT
 | |
| A bad argument was passed to the forms driver.
 | |
| .It Er E_INVALID_FIELD
 | |
| The form passed to the driver has no valid attached fields.
 | |
| .It Er E_NOT_POSTED
 | |
| The given form is not currently posted to the screen.
 | |
| .It Er E_BAD_STATE
 | |
| The forms driver was called from within an init or term function.
 | |
| .It Er E_INVALID_FIELD
 | |
| The character passed to the forms driver fails the character
 | |
| validation for the current field.
 | |
| .El
 | |
| .Sh SEE ALSO
 | |
| .Xr curses 3 ,
 | |
| .Xr forms 3
 | |
| .Sh NOTES
 | |
| Field sorting is done by location of the field on the form page, the
 | |
| fields are sorted by position starting with the top-most, left-most
 | |
| field and progressing left to right.
 | |
| For the purposes of sorting, the
 | |
| fields top left corner is used as the sort criteria.
 | |
| The header
 | |
| .In form.h
 | |
| automatically includes both
 | |
| .In curses.h
 | |
| and
 | |
| .In eti.h .
 | 
