home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The World of Computer Software
/
World_Of_Computer_Software-02-387-Vol-3of3.iso
/
t
/
tcu_32.zip
/
TCU_32.ZIP
/
TCU.H
< prev
next >
Wrap
Text File
|
1991-03-26
|
25KB
|
482 lines
/*==========================================================================*
* *
* Header #include file for Turbo-C Utilities version 3. 2 *
* ------------------------------------------------------ *
* *
* (c) Copyright Karl Keyte, 1990-91 *
* *
* Karl Keyte Phone: +(49) 6150 2499 * *
* Gross-Gerauer Strasse 10 *
* D-6108 Weiterstadt e-Mail: KKEYTE@ESOC.BITNET *
* Germany Bix: kkeyte *
* *
*==========================================================================*/
#if !defined(__TCU__)
#define __TCU__
#define TCU_BOX_SINGLE 1 /* Box bordered by single lines */
#define TCU_BOX_DOUBLE 2 /* Box bordered by double lines */
#define TCU_BOX_BLANK 3 /* Box bordered by spaces */
#define TCU_ESC_ESC 0x01 /* ESCAPE key exit */
#define TCU_ESC_PGUP 0x02 /* Page Up key exit */
#define TCU_ESC_PGDN 0x04 /* Page Down key exit */
#define TCU_ESC_CLEFT 0x08 /* Cursor left exit */
#define TCU_ESC_CRIGHT 0x10 /* Cursor right exit */
#define TCU_ESC_FUNC 0x20 /* Function key exit */
#define TCU_ESC_CNTL_C 0x40 /* Control-C exit */
#define TCU_ESC_PULLDOWN 0x80 /* Pulldown bar selection */
#define TCU_ESC_USERKEY 0x0100 /* User defined escape key */
#define TCU_ESC_MOUSE_CLICK_L 0xE000 /* Left mouse button click */
#define TCU_ESC_MOUSE_CLICK_R 0xE100 /* Right mouse button click */
#define TCU_USER_DEFINED_SAVE 0xE200 /* User defined accept key */
#define TCU_USER_DEFINED_ESC 0xE300 /* User defined escape key */
#define TCU_MENU_TITLE 1 /* Title */
#define TCU_MENU_BOX 2 /* Surrounding box */
#define TCU_MENU_OPTION 3 /* Option line */
#define TCU_MENU_SELECT 4 /* Selected option line */
#define TCU_MENU_UNAVAIL 5 /* Unavailable option line */
#define TCU_OK 0 /* Successful TCU service */
#define TCU_ERROR 1 /* Unsuccessful TCU service */
#define TCU_FORM_EDIT 1 /* Enable edit ability for field */
#define TCU_FORM_NOEDIT 2 /* Disable edit ability for field */
#define TCU_FORM_ECHO 3 /* Echo field when input */
#define TCU_FORM_NOECHO 4 /* No echo on input field */
#define TCU_FORM_ENTER 5 /* Enter the field in edit */
#define TCU_FORM_NOENTER 6 /* Don't enter the field in edit */
#define TCU_FORM_CONFIRM 7 /* Field needs ENTER to confirm */
#define TCU_FORM_NOCONFIRM 8 /* No ENTER needed to confirm */
#define TCU_FORM_ESCS 9 /* Escape keys work in forms */
#define TCU_FORM_NOESCS 10 /* Disable escape keys in forms */
#define TCU_FRM_MAXFIELD 128 /* Maximum fields on form */
#define TCU_MAX_SCREEN_LINES 25 /* Number of lines on screen */
#define TCU_FLD_INT 1 /* Integer (32 bits) */
#define TCU_FLD_FLOAT 2 /* Floating point (64 bits) */
#define TCU_FLD_STRING 3 /* String, ASCIIZ format */
#define TCU_FLD_DATE 4 /* Date (01.01.70 ...) */
#define TCU_FLD_LOGICAL 5 /* True/False, Yes/No, On/Off */
#define TCU_FLD_CHOICE 6 /* Enumerated choice type */
#define TCU_FLD_BUTTON 7 /* Button selection field */
#define TCU_FLD_DAYFIRST 1 /* Dates with day number first */
#define TCU_FLD_MONTHFIRST 2 /* Dates with month number first */
#define TCU_FLD_TRUEFALSE 1 /* Logicals as TRUE/FALSE */
#define TCU_FLD_YESNO 2 /* Logicals as YES/NO */
#define TCU_FLD_ONOFF 3 /* Logicals as ON/OFF */
#define TCU_FLD_ESCNEXT 1 /* NEXT FIELD field edit escape */
#define TCU_FLD_ESCPREV 2 /* PREVIOUS FIELD escape */
#define TCU_FLD_ESCFIRST 3 /* FIRST FIELD escape */
#define TCU_FLD_ESCLAST 4 /* LAST FIELD escape */
#define TCU_FLD_SELECT 5 /* Field select escape */
#define TCU_FLD_CLICKSELECT 6 /* Mouse click field select */
#define TCU_FLD_ESCESC -1 /* ESC key escape */
#define TCU_FLD_ESCCNTLC -2 /* CNTL/C key escape */
#define TCU_FLD_ESCPGUP -3 /* Page-Up key escape */
#define TCU_FLD_ESCPGDN -4 /* Page-Down key escape */
#define TCU_FLD_FNKEYSAVE -5 /* Function key save escape */
#define TCU_FLD_FNKEYESC -6 /* Function key abort escape */
#define TCU_FLD_BUTTONSAVE -7 /* Button save escape */
#define TCU_FLD_BUTTONESC -8 /* Button abort escape */
#define TCU_FLD_USERSAVE -9 /* User defined accept key */
#define TCU_FLD_USERESC -10 /* User defined escape key */
typedef struct {
short x, y; /* X and Y coords of current pos */
short height, /* External size of menu */
width; /* External width of menu */
char *title; /* Title of menu */
unsigned char title_attrib, /* Attributes of title */
box_attrib, /* Attributes of surrounding box */
option_attrib, /* Attributes of menu option */
select_attrib, /* Attributes of selected option */
unavail_attrib; /* Attributes of unavailables */
unsigned char escape_keys; /* Keys which allow exit */
unsigned char box_type; /* Type of external box */
unsigned char last_selection; /* Last selected option */
void far (*help_fn)(int); /* User's help function */
char **options; /* Pointer to list of options */
unsigned char *cover_zone; /* Pointer to covered screen */
unsigned char short_code; /* Flags if short code select on */
unsigned long option_avail; /* Option availability flags */
} TCU_MENU;
typedef struct {
int in_use; /* Flags current use mode */
char *cover_zone,
*title;
int height,
width;
unsigned char box_attrib,
window_attrib,
input_attrib,
title_attrib,
box_type;
unsigned char with_input;
int input_x,
input_y;
char *input_str;
char *txt_line[TCU_MAX_SCREEN_LINES - 2];
int txt_lines;
} TCU_NOTICE;
typedef struct {
int in_use; /* Flags current use mode */
char *cover_zone;
char *title;
int cursor_x,
cursor_y,
height,
width,
pos_x,
pos_y;
unsigned char box_attrib,
title_attrib,
window_attrib,
box_type;
} TCU_WINDOW;
typedef struct {
unsigned char linecolour, /* Colour of header line */
optioncolour, /* Colour of possible options */
selectcolour; /* Colour of selected option */
char **headings; /* List of header titles */
TCU_MENU **menus; /* List of menus */
void far (*help_fn)(int); /* User's help function */
unsigned char selected, /* Currently selected menu */
use_mode; /* Current mode of use */
unsigned char *cover_zone; /* Screen contents area */
unsigned char short_code; /* Flags if short code select on */
} TCU_PULLDOWN;
typedef struct {
unsigned char sel, /* Selected choice */
max; /* Maximum choices available */
char *str; /* String of separated choices */
} TCU_CHOICE_TYPE;
typedef union {
long v_int; /* Integer field value */
double v_float; /* Floating field value */
char *v_string; /* String field value */
unsigned short v_date; /* Date value (days -> 01.01.70) */
unsigned char v_logical; /* Logical field value */
TCU_CHOICE_TYPE v_choice; /* Enumerated choice type */
} TCU_FIELD_VALUE;
typedef struct {
char f_name[9]; /* Field name */
unsigned char f_type, /* Type of field */
f_size, /* Width of field on screen */
f_decimal, /* Decimal places if numeric */
f_present, /* Presentation form of data */
f_xpos, /* Window x-coordinate */
f_ypos; /* Window y-coordinate */
unsigned char f_usemin, /* Flags use of minimum range */
f_usemax, /* Flags use of maximum range */
f_useval, /* Flags if initial value used */
f_usetmp; /* Flags if string template used */
union {
struct {
long f_min, /* Minimum value */
f_max; /* Maximum value */
} i;
struct {
double f_min, /* Minimum value */
f_max; /* Maximum value */
} f;
struct {
unsigned short f_min, /* Minimum value */
f_max; /* Maximum value */
} d;
} range;
unsigned char f_colour, /* Colour attributes */
f_editcolour; /* Colour during field editing */
struct {
unsigned int a_ronly : 1, /* Read only flag */
a_noecho : 1, /* No-echo input flag */
a_fixtext : 1, /* Fixed text field flag */
a_param : 1, /* Non-editable variable field */
a_confirm : 1; /* ENTER confirmation needed flag */
} attrib;
TCU_FIELD_VALUE val; /* Value of field */
unsigned char dummy; /* Marker for start of pointers */
char *f_template; /* Template for string inputs */
} TCU_FIELD;
typedef struct {
unsigned int num_fields; /* Number of fields */
unsigned char colour, /* Colour attribute */
input_colour; /* Input field colour default */
char title[77]; /* Form title string */
unsigned char xpos, /* x-coordinate on screen */
ypos, /* y-coordinate on screen */
height, /* Height of form */
width, /* Width of form */
type, /* Form surround type */
title_attrib, /* Colour attributes for title */
current_field, /* Current field with focus */
use_mode; /* Flags whether in use/displayed */
struct {
unsigned int ronly : 1, /* Form is read only */
no_esc : 1; /* No direct escape keys allowed */
} attrib;
unsigned char dummy; /* Marker for start of pointers */
TCU_FIELD *field[TCU_FRM_MAXFIELD]; /* Fields */
int far (*verify_fn)
(void *, int, TCU_FIELD_VALUE *); /* verify fn */
void far (*help_fn)
(void *, int); /* User's help function */
int far (*fn_key_fn)
(void *, int, int); /* Function key handler */
int far (*button_fn)
(void *, int); /* Button select handler */
unsigned char *cover_zone; /* Screen cover buffer */
} TCU_FORM;
typedef struct {
char name[9]; /* Field name */
unsigned char type, /* Type of field */
size, /* Width of field on screen */
decimal, /* Decimal places if numeric */
present, /* Presentation form of data */
xpos, /* Window x-coordinate */
ypos, /* Window y-coordinate */
usemin, /* Flags use of minimum range */
usemax, /* Flags use of maximum range */
useval, /* Flags if initial value used */
usetmp; /* Flags if string template used */
union {
struct {
long min, /* Minimum value */
max; /* Maximum value */
} i;
struct {
double min, /* Minimum value */
max; /* Maximum value */
} f;
struct {
unsigned short min, /* Minimum value */
max; /* Maximum value */
} d;
} range;
unsigned char colour, /* Colour attributes */
editcolour; /* Colour during field editing */
struct {
unsigned int ronly : 1, /* Read only flag */
noecho : 1, /* No-echo input flag */
fixtext : 1, /* Fixed text field flag */
param : 1, /* Non-editable variable field */
confirm : 1; /* ENTER confirmation needed flag */
} attr;
TCU_FIELD_VALUE val; /* Value of field */
} TCU_FIELD_INFO;
typedef struct {
unsigned int num_fields; /* Number of fields */
char *title; /* Title string of form */
unsigned char text_colour, /* Colour attribute */
field_colour, /* Input field colour default */
title_colour, /* Title string colour */
xpos, /* x-coordinate on screen */
ypos, /* y-coordinate on screen */
height, /* Height of form */
width, /* Width of form */
box_type, /* Form surround type */
mode, /* Flags whether in use/displayed */
verify_fn, /* Verification function active */
help_fn, /* Help function active */
fn_key_fn, /* 1 if fn. key handler active */
button_fn; /* 1 if button select handler */
struct {
unsigned int ronly : 1, /* Form is read only */
no_esc : 1; /* Escape keys disabled */
} attr;
} TCU_FORM_INFO;
/* External objects */
extern TCU_FORM *_TCU_UPDATE_form;
/* Add prefix to function prototypes for C++ compilation */
#ifdef __cplusplus
#define c_cpp extern "C"
#else
#define c_cpp
#endif
/*--------------------------------------------------------------------------*/
/* */
/* Pop-Up & Pulldown Menu Services */
/* */
/*--------------------------------------------------------------------------*/
c_cpp int tcu_change_menu_attribs (TCU_MENU *, int, unsigned char);
c_cpp int tcu_change_menu_escapes (TCU_MENU *, unsigned char);
c_cpp int tcu_clear_menu_in_pulldown (TCU_PULLDOWN *);
c_cpp int tcu_define_menu (TCU_MENU *, char *, unsigned char,
unsigned char, unsigned char,
unsigned char, unsigned char,
unsigned char, unsigned char, char **,
unsigned char);
c_cpp int tcu_define_pulldown (TCU_PULLDOWN *, unsigned char,
unsigned char, unsigned char, char **,
unsigned char, TCU_MENU **);
c_cpp int tcu_display_menu (TCU_MENU *, int, int);
c_cpp int tcu_display_pulldown_header (TCU_PULLDOWN *);
c_cpp int tcu_escape_fkey (void);
c_cpp int tcu_new_pulldown_cover (TCU_PULLDOWN *);
c_cpp int tcu_read_menu_selection (TCU_MENU *);
c_cpp int tcu_read_pulldown_selection (TCU_PULLDOWN *, int *, int *);
c_cpp int tcu_remove_menu (TCU_MENU *);
c_cpp int tcu_remove_pulldown (TCU_PULLDOWN *);
c_cpp int tcu_set_menu_help (TCU_MENU *, void far (*)(int));
c_cpp int tcu_set_menu_option (TCU_MENU *, int, int);
c_cpp int tcu_set_pulldown_help (TCU_PULLDOWN *, void far (*)(int));
/*--------------------------------------------------------------------------*/
/* */
/* Prompt & Notice Utilities */
/* */
/*--------------------------------------------------------------------------*/
c_cpp int tcu_clear_notice (TCU_NOTICE *);
c_cpp int tcu_display_notice (TCU_NOTICE *, int, int);
c_cpp int tcu_get_confirm (int, int, unsigned char, unsigned char,
char *, ...);
c_cpp int tcu_notice_text (TCU_NOTICE *, char *, ...);
c_cpp int tcu_prepare_notice (TCU_NOTICE *, char *, unsigned char,
unsigned char, unsigned char,
unsigned char);
c_cpp int tcu_prompt_input (TCU_NOTICE *, int, int, char *,
unsigned char);
/*--------------------------------------------------------------------------*/
/* */
/* Screen/Form Utilities */
/* */
/*--------------------------------------------------------------------------*/
c_cpp int tcu_display_form (TCU_FORM *, int, int);
c_cpp int tcu_edit_form (TCU_FORM *, int, int *);
c_cpp int tcu_form_record_size (TCU_FORM *);
c_cpp int tcu_get_field (TCU_FORM *, int, TCU_FIELD_VALUE *);
c_cpp int tcu_get_field_choice_string (TCU_FORM *, int, char *);
c_cpp int tcu_get_field_id (TCU_FORM *, char *, int *);
c_cpp int tcu_get_field_info (TCU_FORM *, int, TCU_FIELD_INFO *);
c_cpp int tcu_get_form_info (TCU_FORM *, TCU_FORM_INFO *);
c_cpp int tcu_load_form (TCU_FORM *, char *);
c_cpp int tcu_load_image_form (TCU_FORM *, TCU_FORM *);
c_cpp int tcu_put_field (TCU_FORM *, int, TCU_FIELD_VALUE *);
c_cpp int tcu_read_formrec (TCU_FORM *, char *);
c_cpp int tcu_remove_form (TCU_FORM *);
c_cpp int tcu_select_field (TCU_FORM *, int, int *);
c_cpp int tcu_set_button_fn (TCU_FORM *, int far (*)(TCU_FORM *,
int));
c_cpp int tcu_set_field_attrib (TCU_FORM *, int, unsigned char);
c_cpp int tcu_set_field_mode (TCU_FORM *, int, int);
c_cpp int tcu_set_field_verify (TCU_FORM *, int far (*)
(TCU_FORM *, int,
TCU_FIELD_VALUE *));
c_cpp int tcu_set_form_fnkey_fn (TCU_FORM *, int far (*)
(TCU_FORM *, int, int));
c_cpp int tcu_set_form_help (TCU_FORM *, void far (*)
(TCU_FORM *, int));
c_cpp int tcu_set_form_mode (TCU_FORM *, int);
c_cpp int tcu_unload_form (TCU_FORM *);
c_cpp int tcu_write_formrec (TCU_FORM *, char *);
/*--------------------------------------------------------------------------*/
/* */
/* Windowing Utilities */
/* */
/*--------------------------------------------------------------------------*/
c_cpp int tcu_change_colour (TCU_WINDOW *, unsigned char);
c_cpp int tcu_clear_window (TCU_WINDOW *);
c_cpp int tcu_close_window (TCU_WINDOW *);
c_cpp int tcu_open_window (TCU_WINDOW *, int, int, int, int,
char *, unsigned char, unsigned char,
unsigned char, unsigned char);
c_cpp int tcu_position_cursor (TCU_WINDOW *, int, int);
c_cpp int tcu_wprintf (TCU_WINDOW *, char *, ...);
c_cpp int tcu_wgets (TCU_WINDOW *, int, char *, int *);
/*--------------------------------------------------------------------------*/
/* */
/* General Utilities */
/* */
/*--------------------------------------------------------------------------*/
c_cpp unsigned char tcu_colour_attrib (int, int);
c_cpp char *tcu_date_string (unsigned short, unsigned char);
c_cpp unsigned short tcu_date_value (char *, unsigned char);
c_cpp unsigned short tcu_get_user_keypress (void);
c_cpp unsigned long tcu_hash_value (char *, unsigned long);
c_cpp void tcu_restore_environment (void);
c_cpp void tcu_save_environment (void);
c_cpp int tcu_set_idle_loop (int far (*)(unsigned long));
c_cpp int tcu_set_mouse_mode (unsigned char);
c_cpp int tcu_set_user_key_handler (int far (*)(unsigned short *));
c_cpp void tcu_warnbeep (void);
/* If TCU compatibility mode is selected to be compatible with pre version */
/* 3.2 then we must include the 'tcupre32.h' file here to alias the right */
/* bits. Don't rely on this always being here... it won't be! */
#if defined(__TCUPRE32__)
#include <usr\tcupre32.h>
#endif
#endif