DataMuseum.dk

Presents historical artifacts from the history of:

Regnecentalen RC-900

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Regnecentalen RC-900

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦75c84db8a⟧ TextFile

    Length: 9669 (0x25c5)
    Types: TextFile
    Notes: UNIX file
    Names: »form.h«

Derivation

└─⟦7decd0fac⟧ Bits:30004155/disk4.imd SW95713I 386/ix Software Development System Rel. 2.0
└─⟦7decd0fac⟧ UNIX Filesystem
    └─⟦this⟧ »sd/new/usr/include/form.h« 

TextFile

/*	Copyright (c) 1984, 1986, 1987, 1988 AT&T	*/
/*	  All Rights Reserved  	*/

/*	THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T	*/
/*	The copyright notice above does not evidence any   	*/
/*	actual or intended publication of such source code.	*/

#ident	"@(#)form.h	2.3 - 88/05/27"

#ifndef FORM_H
#define FORM_H

#include <curses.h>
#include <eti.h>

	/**************
	*  FIELDTYPE  *
	**************/

typedef struct typenode {

	int			status;		/* flags		*/
	int			ref;		/* reference count	*/
	struct typenode *	left;		/* ptr to operand for |	*/
	struct typenode *	right;		/* ptr to operand for |	*/
	PTF_charP		makearg;	/* make fieldtype arg	*/
	PTF_charP		copyarg;	/* copy fieldtype arg	*/
	PTF_void		freearg;	/* free fieldtype arg	*/
	PTF_int			fcheck;		/* field validation	*/
	PTF_int			ccheck;		/* character validation	*/
	PTF_int			next;		/* enumerate next value	*/
	PTF_int			prev;		/* enumerate prev value	*/
}
	FIELDTYPE;

	/**********
	*  _PAGE  *
	**********/

typedef struct {

	int			pmin;		/* first field on page	*/
	int			pmax;		/* last field on page	*/
	int			smin;		/* top leftmost field	*/
	int			smax;		/* bottom rightmost	*/
}
	_PAGE;

	/**********
	*  FIELD  *
	**********/

typedef struct fieldnode {

	int			status;		/* flags		*/
	int			rows;		/* size in rows		*/
	int			cols;		/* size in cols		*/
	int			frow;		/* first row		*/
	int			fcol;		/* first col		*/
	int			nrow;		/* offscreen rows	*/
	int			nbuf;		/* additional buffers	*/
	int			just;		/* justification	*/
	int			page;		/* page on form		*/
	int			index;		/* into form -> field	*/
	int			pad;		/* pad character	*/
	chtype			fore;		/* foreground attribute	*/
	chtype			back;		/* background attribute	*/
	OPTIONS			opts;		/* options		*/
	struct fieldnode *	snext;		/* sorted order pointer	*/
	struct fieldnode *	sprev;		/* sorted order pointer	*/
	struct fieldnode *	link;		/* linked field chain	*/
	struct formnode *	form;		/* containing form	*/
	FIELDTYPE *		type;		/* field type		*/
	char *			arg;		/* argument for type	*/
	char *			buf;		/* field buffers	*/
	char *			usrptr;		/* user pointer		*/
}
	FIELD;

	/*********
	*  FORM  *
	*********/

typedef struct formnode {

	int			status;		/* flags		*/
	int			rows;		/* size in rows		*/
	int			cols;		/* size in cols		*/
	int			currow;		/* current row		*/
	int			curcol;		/* current col		*/
	int			toprow;		/* in scrollable field	*/
	int			maxfield;	/* number of fields	*/
	int			maxpage;	/* number of pages	*/
	int			curpage;	/* index into page	*/
	OPTIONS			opts;		/* options		*/
	WINDOW *		win;		/* window		*/
	WINDOW *		sub;		/* subwindow		*/
	WINDOW *		w;		/* window		*/
	FIELD **		field;		/* field [maxfield]	*/
	FIELD *			current;	/* current field	*/
	_PAGE *			page;		/* page [maxpage]	*/
	char *			usrptr;		/* user pointer		*/
	PTF_void		forminit;	/* user function	*/
	PTF_void		formterm;	/* user function	*/
	PTF_void		fieldinit;	/* user function	*/
	PTF_void		fieldterm;	/* user function	*/
}
	FORM;

	/***************************
	*  miscellaneous #defines  *
	***************************/
/*
	field justification
*/
#define NO_JUSTIFICATION	0
#define JUSTIFY_LEFT		1
#define JUSTIFY_CENTER		2
#define JUSTIFY_RIGHT		3
/*
	field options
*/
#define O_VISIBLE		0x0001
#define O_ACTIVE		0x0002
#define O_PUBLIC		0x0004
#define O_EDIT			0x0008
#define O_WRAP			0x0010
#define O_BLANK			0x0020
#define O_AUTOSKIP		0x0040
#define O_NULLOK		0x0080
#define O_PASSOK		0x0100
/*
	form options
*/
#define O_NL_OVERLOAD		0x0001
#define O_BS_OVERLOAD		0x0002
/*
	form driver commands
*/
#define REQ_NEXT_PAGE		(KEY_MAX + 1)	/* move to next page		*/
#define REQ_PREV_PAGE		(KEY_MAX + 2)	/* move to previous page	*/
#define REQ_FIRST_PAGE		(KEY_MAX + 3)	/* move to first page		*/
#define REQ_LAST_PAGE		(KEY_MAX + 4)	/* move to last page		*/

#define REQ_NEXT_FIELD		(KEY_MAX + 5)	/* move to next field		*/
#define REQ_PREV_FIELD		(KEY_MAX + 6)	/* move to previous field	*/
#define REQ_FIRST_FIELD		(KEY_MAX + 7)	/* move to first field		*/
#define REQ_LAST_FIELD		(KEY_MAX + 8)	/* move to last field		*/
#define REQ_SNEXT_FIELD		(KEY_MAX + 9)	/* move to sorted next field	*/
#define REQ_SPREV_FIELD		(KEY_MAX + 10)	/* move to sorted prev field	*/
#define REQ_SFIRST_FIELD	(KEY_MAX + 11)	/* move to sorted first field	*/
#define REQ_SLAST_FIELD		(KEY_MAX + 12)	/* move to sorted last field	*/
#define REQ_LEFT_FIELD		(KEY_MAX + 13)	/* move to left to field	*/
#define REQ_RIGHT_FIELD		(KEY_MAX + 14)	/* move to right to field	*/
#define REQ_UP_FIELD		(KEY_MAX + 15)	/* move to up to field		*/
#define REQ_DOWN_FIELD		(KEY_MAX + 16)	/* move to down to field	*/

#define REQ_NEXT_CHAR		(KEY_MAX + 17)	/* move to next char in field	*/
#define REQ_PREV_CHAR		(KEY_MAX + 18)	/* move to prev char in field	*/
#define REQ_NEXT_LINE		(KEY_MAX + 19)	/* move to next line in field	*/
#define REQ_PREV_LINE		(KEY_MAX + 20)	/* move to prev line in field	*/
#define REQ_NEXT_WORD		(KEY_MAX + 21)	/* move to next word in field	*/
#define REQ_PREV_WORD		(KEY_MAX + 22)	/* move to prev word in field	*/
#define REQ_BEG_FIELD		(KEY_MAX + 23)	/* move to first char in field	*/
#define REQ_END_FIELD		(KEY_MAX + 24)	/* move after last char in fld	*/
#define REQ_BEG_LINE		(KEY_MAX + 25)	/* move to beginning of line	*/
#define REQ_END_LINE		(KEY_MAX + 26)	/* move after last char in line	*/
#define REQ_LEFT_CHAR		(KEY_MAX + 27)	/* move left in field		*/
#define REQ_RIGHT_CHAR		(KEY_MAX + 28)	/* move right in field		*/
#define REQ_UP_CHAR		(KEY_MAX + 29)	/* move up in field		*/
#define REQ_DOWN_CHAR		(KEY_MAX + 30)	/* move down in field		*/

#define REQ_NEW_LINE		(KEY_MAX + 31)	/* insert/overlay new line	*/
#define REQ_INS_CHAR		(KEY_MAX + 32)	/* insert blank char at cursor	*/
#define REQ_INS_LINE		(KEY_MAX + 33)	/* insert blank line at cursor	*/
#define REQ_DEL_CHAR		(KEY_MAX + 34)	/* delete char at cursor	*/
#define REQ_DEL_PREV		(KEY_MAX + 35)	/* delete char before cursor	*/
#define REQ_DEL_LINE		(KEY_MAX + 36)	/* delete line at cursor	*/
#define REQ_DEL_WORD		(KEY_MAX + 37)	/* delete line at cursor	*/
#define REQ_CLR_EOL		(KEY_MAX + 38)	/* clear to end of line		*/
#define REQ_CLR_EOF		(KEY_MAX + 39)	/* clear to end of field	*/
#define REQ_CLR_FIELD		(KEY_MAX + 40)	/* clear entire field		*/
#define REQ_OVL_MODE		(KEY_MAX + 41)	/* begin overlay mode		*/
#define REQ_INS_MODE		(KEY_MAX + 42)	/* begin insert mode		*/
#define REQ_SCR_FLINE		(KEY_MAX + 43)	/* scroll field forward a line	*/
#define REQ_SCR_BLINE		(KEY_MAX + 44)	/* scroll field backward a line	*/
#define REQ_SCR_FPAGE		(KEY_MAX + 45)	/* scroll field forward a page	*/
#define REQ_SCR_BPAGE		(KEY_MAX + 46)	/* scroll field backward a page	*/

#define REQ_VALIDATION		(KEY_MAX + 47)	/* validate field		*/
#define REQ_NEXT_CHOICE		(KEY_MAX + 48)	/* display next field choice	*/
#define REQ_PREV_CHOICE		(KEY_MAX + 49)	/* display prev field choice	*/

#define MIN_FORM_COMMAND	(KEY_MAX + 1)	/* used by form_driver		*/
#define MAX_FORM_COMMAND	(KEY_MAX + 49)	/* used by form_driver		*/

	/*************************
	*  standard field types  *
	*************************/

extern FIELDTYPE *	TYPE_ALPHA;
extern FIELDTYPE *	TYPE_ALNUM;
extern FIELDTYPE *	TYPE_ENUM;
extern FIELDTYPE *	TYPE_INTEGER;
extern FIELDTYPE *	TYPE_NUMERIC;
extern FIELDTYPE *	TYPE_REGEXP;

	/********************
	*  default objects  *
	********************/

extern FORM *		_DEFAULT_FORM;
extern FIELD *		_DEFAULT_FIELD;

	/***********************
	*  FIELDTYPE routines  *
	***********************/

extern FIELDTYPE *	new_fieldtype ();
extern FIELDTYPE *	link_fieldtype ();
extern int		free_fieldtype ();
extern int		set_fieldtype_arg ();
extern int		set_fieldtype_choice ();

	/*******************
	*  FIELD routines  *
	*******************/

extern FIELD *		new_field ();
extern FIELD *		dup_field ();
extern FIELD *		link_field ();
extern int		free_field ();
extern int		field_info ();
extern int		move_field ();
extern int		set_field_type ();
extern FIELDTYPE *	field_type ();
extern char *		field_arg ();
extern int		set_new_page ();
extern int		new_page ();
extern int		set_field_just ();
extern int		field_just ();
extern int		set_field_fore ();
extern chtype		field_fore ();
extern int		set_field_back ();
extern chtype		field_back ();
extern int		set_field_pad ();
extern int		field_pad ();
extern int		set_field_buffer ();
extern char *		field_buffer ();
extern int		set_field_status ();
extern int		field_status ();
extern int		set_field_userptr ();
extern char *		field_userptr ();
extern int		set_field_opts ();
extern OPTIONS		field_opts ();
extern int		field_opts_on ();
extern int		field_opts_off ();

	/******************
	*  FORM routines  *
	******************/

extern FORM *		new_form ();
extern int		free_form ();
extern int		set_form_fields ();
extern FIELD **		form_fields ();
extern int		field_count ();
extern int		set_form_win ();
extern WINDOW *		form_win ();
extern int		set_form_sub ();
extern WINDOW *		form_sub ();
extern int		set_current_field ();
extern FIELD *		current_field ();
extern int		field_index ();
extern int		set_form_page ();
extern int		form_page ();
extern int		scale_form ();
extern int		set_form_init ();
extern PTF_void		form_init ();
extern int		set_form_term ();
extern PTF_void		form_term ();
extern int		set_field_init ();
extern PTF_void		field_init ();
extern int		set_field_term ();
extern PTF_void		field_term ();
extern int		post_form ();
extern int		unpost_form ();
extern int		pos_form_cursor ();
extern int		form_driver ();
extern int		set_form_userptr ();
extern char *		form_userptr ();
extern int		set_form_opts ();
extern OPTIONS		form_opts ();
extern int		form_opts_on ();
extern int		form_opts_off ();

#endif	/* FORM_H */