📄 zlib.h
字号:
/*****************************************************************************/
/* PUBLIC DEFINITIONS FOR C LANGUAGE - VERSION 1.0 */
/* SCO UNIX V */
/* ------------------------------------------------------------------------- */
/* Author : Zhibin Xiao, Shih Ho */
/* Date : July 18, 1995 */
/*****************************************************************************/
#define UNIX
#ifndef ZLIB
#define ZLIB
/*===========================================================================*/
/* Global Constants */
/*---------------------------------------------------------------------------*/
#define Z_SCR_LINES 24
#define Z_SCR_COLS 80
#define ZW_DEFAULT 0x0000
#define ZW_BOX 0x0001
#define ZW_REVERSE 0x0002
#define ZM_HOTKEY 0x8000
/*===========================================================================*/
/* Global Equalities */
/*---------------------------------------------------------------------------*/
#ifdef UNIX
enum _Z_color{
ZC_BLACK, ZC_RED, ZC_GREEN, ZC_YELLOW,
ZC_BLUE, ZC_MAGENTA, ZC_CYAN, ZC_WHITE,
ZC_ACTIVE
};
#endif
enum _Z_attr{
ZA_TEXT, ZA_KEY, ZA_FIELD, ZA_EDIT,
ZA_BUTTON, ZA_FRAME, ZA_SELBAR, ZA_HOLD,
ZA_NEGTXT, ZA_NEGFLD, ZA_NEGEDT, ZA_USER,
_ZA_COUNT
};
enum _Z_idle{
ZI_NONE, ZI_CURSOR, ZI_PAGE, ZI_FIRST,
ZI_LAST,
_ZI_COUNT
};
enum _Z_field{
ZF_DISPLAY, ZF_NORMAL, ZF_EDIT,
_ZF_COUNT
};
enum _Z_justify{
ZJ_LEFT, ZJ_RIGHT, ZJ_CENTER,
_ZJ_COUNT
};
enum _Z_menu{
ZM_EXIT, ZM_NULL, ZM_COMMAND, ZM_FUNC,
ZM_MENU, ZM_POPUP,
_ZM_COUNT
};
/*===========================================================================*/
/* Key Codes */
/*---------------------------------------------------------------------------*/
#define CTRL_A 0x0001
#define CTRL_B 0x0002
#define CTRL_C 0x0003
#define CTRL_D 0x0004
#define CTRL_E 0x0005
#define CTRL_F 0x0006
#define CTRL_G 0x0007
#define CTRL_H 0x0008
#define CTRL_I 0x0009
#define CTRL_J 0x000A
#define CTRL_K 0x000B
#define CTRL_L 0x000C
#define CTRL_M 0x000D
#define CTRL_N 0x000E
#define CTRL_O 0x000F
#define CTRL_P 0x0010
#define CTRL_Q 0x0011
#define CTRL_R 0x0012
#define CTRL_S 0x0013
#define CTRL_T 0x0014
#define CTRL_U 0x0015
#define CTRL_V 0x0016
#define CTRL_W 0x0017
#define CTRL_X 0x0018
#define CTRL_Y 0x0019
#define CTRL_Z 0x001A
#define SPACE_BAR 0x0020
#define ENTER 0x000D
#define ESC 0x001B
#define BACK_SPACE 0x0008
#define TAB 0x0009
#define INS 0x014B
#define DEL 0x007F
#define UP 0x0103
#define DOWN 0x0102
#define LEFT 0x0104
#define RIGHT 0x0105
#define HOME 0x0106
#define END 0x0168
#define PGUP 0x0153
#define PGDN 0x0152
#define PF1 0x0109
#define PF2 0x010A
#define PF3 0x010B
#define PF4 0x010C
/*===========================================================================*/
/* Global Structures And Unions
/*---------------------------------------------------------------------------*/
/* Button */
/*---------------------------------------------------------------------------*/
typedef struct{
int r; /* The button Origin Row */
int c; /* The button Origin Column */
int h; /* The button height */
int w; /* The button width */
char *l; /* The label of button */
int k; /* The value of key code */
int (*v)(); /* Button validation routine */
int (*p)(); /* Button hit routine */
} ZBUTTON;
/*---------------------------------------------------------------------------*/
/* Window */
/*---------------------------------------------------------------------------*/
typedef struct{
int r; /* Window row */
int c; /* Window column */
int h; /* Window height */
int w; /* Window width */
int s; /* Window style */
char *t; /* Window title */
}ZWINDOW;
/*---------------------------------------------------------------------------*/
/* Field */
/*---------------------------------------------------------------------------*/
typedef struct{
int r; /* Field origin row */
int c; /* Field origin column */
char t; /* Field type */
int w; /* Field display width */
int d; /* Field decimal length */
char *p; /* Field picture */
void *v; /* Field data buffer */
int (*b)(); /* User defined before-edit sub. */
int (*a)(); /* User defined after-edit sub. */
} ZFIELD;
/*---------------------------------------------------------------------------*/
/* Screen */
/*---------------------------------------------------------------------------*/
typedef struct{
int bc; /* Number of buttons on screen */
ZBUTTON *bs; /* Button array address */
int fc; /* Number of fields on screen */
ZFIELD *fs; /* Field array address to be edited */
int (*nk)(); /* No key processor */
} ZSCREEN;
/*---------------------------------------------------------------------------*/
/* Browse */
/*---------------------------------------------------------------------------*/
typedef struct{
ZWINDOW *wp; /* Window definition */
ZSCREEN *s; /* Browse screen */
int rr; /* Result row */
int rc; /* Result column */
int lc; /* Line count */
int cl; /* Cursor line */
void (*ds)(); /* Display screen */
int (*nr)(); /* None result */
int (*ur)(); /* Unique result */
int (*gl)(); /* Get line */
void (*el)(); /* Empty line */
void (*dl)(); /* Display line */
int (*sl)(); /* Goto specified line */
int (*fl)(); /* Goto first line */
int (*ll)(); /* Goto last line */
int (*pl)(); /* Goto previous line */
int (*nl)(); /* Goto next line */
int st; /* Status */
void (*cc)(); /* Cursor changed */
int (*dc)(); /* Data changed */
} ZBROWSE;
/*---------------------------------------------------------------------------*/
/* Menu Term */
/*---------------------------------------------------------------------------*/
typedef struct{
char *d; /* Term description */
int t; /* Term type */
union{
char *s; /* Command parameter */
void *m; /* Menu parameter */
void (*f)(); /* Function parameter */
}p;
} ZMTERM;
/*---------------------------------------------------------------------------*/
/* Menu */
/*---------------------------------------------------------------------------*/
typedef struct{
int r; /* Menu window row */
int c; /* Menu window column */
int s; /* Menu window style */
char *t; /* Menu window title */
int h; /* Menu term display rows */
int w; /* Menu term display columns */
ZMTERM *p; /* Menu term list */
int (*i)(); /* Menu idle function */
} ZMENU;
/*---------------------------------------------------------------------------*/
/* Report */
/*---------------------------------------------------------------------------*/
typedef struct{
int l; /* Data lines in a page */
int (*h)(); /* Print header */
int (*f)(); /* Print footer */
int (*r)(); /* Print repeat line */
int (*g)(); /* Get a data line */
} ZREPORT;
/*===========================================================================*/
/* Miscellaneous Functions */
/*---------------------------------------------------------------------------*/
extern int Zideocode( unsigned int Code );
extern int Zinit();
extern void Zsignal();
extern void Zexit();
extern void Zexec( char *ComLine );
extern int Zstrlen( char *Str );
extern void Zstrmovf( char *Str, int Size, int Pos );
extern void Zstrmovb( char *Str, int Size, int Pos );
extern void Ztrim( char *Str );
extern int Zprint( char *String, int Size );
extern int Zprintf( char *Fmt, ... );
extern int Zinkey();
extern int Zsleep( unsigned int sCnt, int ( *Idle )() );
extern int Zscreen( ZSCREEN *Screen );
extern int Zbrowse( ZBROWSE *Browse );
extern int Zask( int Row, int Col, char *Title, char *Fmt, ... );
extern int Zmessage( int Row, int Col, char *Title, char *Fmt, ... );
extern void Zwaitmsg( int R, int C, int ( *NK )(), char *T, char *F, ... );
extern void Zackmsg( int Row, int Col, char *Title, char *Fmt, ... );
extern void Zwarning( int Row, int Col, char *Fmt, ... );
extern void Zerror( int Row, int Col, char *Fmt, ... );
extern void Znotice( int Row, int Col, char *Fmt, ... );
extern int Zmenu( ZMENU *Menu );
extern int Zreport( ZREPORT *Report );
/*===========================================================================*/
/* Window Functions */
/*---------------------------------------------------------------------------*/
extern int ZWopen( ZWINDOW *W );
extern void ZWclose();
extern int ZWrow();
extern int ZWcol();
extern int ZWheight();
extern int ZWwidth();
extern int ZWattr( int Attr );
extern void ZWuserattr( int FC_Bright, int BC_Blink );
extern void ZWline( int Row, int Pos, char *Str );
extern void ZWbox( int R, int C, int H, int W, int A );
extern int ZWareascroll( int R, int C, int H, int W, int L );
extern int ZWareaclear( int R, int C, int H, int W );
extern void ZWscroll( int L );
extern void ZWclear( int R, int L );
extern void ZWprint( int R, int C, char *S, int L );
extern void ZWprintf( int R, int C, char *F, ... );
extern void ZWlocate( int R, int C );
extern void ZWcursor( int *R, int *C );
/*===========================================================================*/
/* Button Functions */
/*---------------------------------------------------------------------------*/
extern void ZBdisplay( ZBUTTON *Buttons, int Count );
extern void ZBclear( ZBUTTON *Buttons, int Count );
extern void ZBhit( ZBUTTON *Button );
extern void ZBpress( ZBUTTON *Button );
extern void ZBrelease( ZBUTTON *Button );
extern int ZBkey( ZBUTTON *Buttons, int Count, int Key );
/*===========================================================================*/
/* Field Functions */
/*---------------------------------------------------------------------------*/
extern int ZFroundpos( char *Buf, int Pos );
extern int ZFfixpic( char *Pic, int Pos );
extern void ZFtotext( ZFIELD *F, char *B );
extern void ZFtodata( ZFIELD *F, char *B );
extern void ZFattr( ZFIELD *F, int T );
extern void ZFdispbuf( ZFIELD *F, char *Buffer );
extern void ZFdisplay( ZFIELD *Fields, int Count, int Type );
/*===========================================================================*/
/* Scale Functions */
/*---------------------------------------------------------------------------*/
extern void ZSinit( char *Title, unsigned long Count );
extern void ZSexit();
extern void ZSrefresh( unsigned long Counter );
#endif
/*****************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -