⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zlib.h

📁 unix下的界面工具
💻 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 + -