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

📄 tool.h

📁 UNIX/LINUX平台下面SMS网管原代码
💻 H
📖 第 1 页 / 共 2 页
字号:
/*****************************************************  PROGRAM: tool.h                               ****  AUTHOR:                                       ****  WRITE DATE:                                   ****  LAST MODIFY DATE:                             ****  COMMENT: 下拉式菜单(彩色)界面工具函数         ****                                                *****************************************************/#ifndef TOOL_H#define TOOL_H#include <curses.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <ctype.h>#include <math.h>#include <time.h>#include <memory.h>#include <sys/types.h>#include <sys/ioctl.h>#define REV_SHOW	1		/* 反显 	*/#define NOM_SHOW 	0		/* 正显 	*/#define COLOR		1		/* 彩色		*/#define BLACK_WHITE	0		/* 黑白		*//* 颜色 */#define BLACK		( short )COLOR_BLACK		#define RED		( short )COLOR_RED	#define GREEN		( short )COLOR_GREEN	#define YELLOW		( short )COLOR_YELLOW	#define BLUE		( short )COLOR_BLUE	#define MAGENTA		( short )COLOR_MAGENTA	#define CYAN		( short )COLOR_CYAN	#define WHITE		( short )COLOR_WHITE /* 调色板类型 */#define TEXT_PATTERN	1		/* 正文调色板	*/#define BOARD_PATTERN	2		/* 边框调色板	*/#define TITLE_PATTERN	3		/* 抬头调色板	*/#define HIGHT_PATTERN	4		/* 高亮调色板	*/#define BACK_PATTERN 	5		/* 背景调色板	*/#define VERSION_PATTERN 6		/* 版本行调色板	*/#define MESSAGE_PATTERN 7		/* 提示行调色板 *//* boardtype 边框类型 */#define NO_BOARD	9		/* 无框 	*/#define BOLD_BOARD	0		/* 粗框 	*/#define REGULAR_BOARD	1		/* 细框 	*//* windowtype 窗口属性 */#define WIN_SHADOW	0x0001		/* 有阴影	*/#define WIN_NO_SHADOW	0x0002		/* 无阴影	*/#define WIN_TITLE	0x0004		/* 有抬头	*/#define	WIN_NO_TITLE	0x0008		/* 无抬头	*/#define WIN_BOARD	0x0010		/* 有边框	*/#define WIN_NO_BOARD	0x0020		/* 无边框	*/#define IS_WIN_SHADOW( x )	( ( x & WIN_SHADOW ) == WIN_SHADOW )#define IS_WIN_NO_SHADOW( x )	( ( x & WIN_NO_SHADOW ) == WIN_NO_SHADOW )#define IS_WIN_TITLE( x )	( ( x & WIN_TITLE ) == WIN_TITLE )#define IS_WIN_NO_TITLE( x )	( ( x & WIN_NO_TITLE ) == WIN_NO_TITLE )#define IS_WIN_BOARD( x )	( ( x & WIN_BOARD ) == WIN_BOARD )#define IS_WIN_NO_BOARD( x )	( ( x & WIN_NO_BOARD ) == WIN_NO_BOARD )/* fieldtype 字段类型 */#define FIELD_BEG	0x8000		 /*字段开始*/	#define FIELD_END	0x0400           /* 字段结束*/ 	#define FIELD_PWD	0x0200		 /*密码字段  hidden	*/#define FIELD_SKP	0x0100		 /*禁止进入 	*/#define FIELD_NOT	0x0080		 /*非数据库字段配合FIELD_SKP */#define FIELD_MKP       0x0040           /*修改时禁止进入 */#define FIELD_DSP       0x0020           /*数据库中字段,不显示*/#define FIELD_FLT       0x0001 		 /*浮点类型 	*/#define FIELD_STR	0x0002		 /*字符类型 	*/#define FIELD_DIG	0x0003		 /*数字类型 	*/#define FIELD_MON	0x0004		 /*货币类型 	*/#define FIELD_DAT	0x0005		 /*日期类型 	*/#define FIELD_LOG       0x0006           /*long*/#define FIELD_SHT       0x0007           /*short*/#define FIELD_TYM       0x0008           /*YYYYMMDDHHMM*//**#define FIELD_TIY       0x0009           tinyint*/#define FIELD_TYPE(x)   (x&0x000f)#define IS_FIELD_BEG( x )	( ( x & FIELD_BEG ) == FIELD_BEG )#define IS_FIELD_FLT( x )	( ( x & FIELD_FLT ) == FIELD_FLT )#define IS_FIELD_STR( x )	( ( x & FIELD_STR ) == FIELD_STR )#define IS_FIELD_DIG( x )	( ( x & FIELD_DIG ) == FIELD_DIG )#define IS_FIELD_MON( x )	( ( x & FIELD_MON ) == FIELD_MON )#define IS_FIELD_DAT( x )	( ( x & FIELD_DAT ) == FIELD_DAT )#define IS_FIELD_LOG( x )	( ( x & FIELD_LOG ) == FIELD_LOG )#define IS_FIELD_TYM( x )       ( ( x & FIELD_TYM ) == FIELD_TYM )#define IS_FIELD_TIY( x )       ( ( x & FIELD_TIY ) == FIELD_TIY )#define IS_FIELD_SKP( x )	( ( x & FIELD_SKP ) == FIELD_SKP )#define IS_FIELD_DSP( x )	( ( x & FIELD_DSP ) == FIELD_DSP )#define IS_FIELD_PWD( x )	( ( x & FIELD_PWD ) == FIELD_PWD )#define IS_FIELD_NOT( x )	( ( x & FIELD_NOT ) == FIELD_NOT )#define IS_FIELD_END( x ) 	( ( x & FIELD_END ) == FIELD_END ) #define IS_FIELD_MKP( x )       ( ( x & FIELD_MKP ) == FIELD_MKP )/* 数据窗口功能*/#define DATA_NOT	0x0000		/* 数据不操作	*/#define DATA_INQ	0x0001		/* 数据查询	*/#define DATA_ADD	0x0002		/* 数据增加 	*/#define DATA_MOD	0x0004		/* 数据修改	*/#define DATA_DEL	0x0008		/* 数据删除*/	#define IS_DATA_INQ( x )	( ( x & DATA_INQ ) == DATA_INQ )#define IS_DATA_ADD( x ) 	( ( x & DATA_ADD ) == DATA_ADD ) #define IS_DATA_MOD( x )    ( ( x & DATA_MOD ) == DATA_MOD )#define IS_DATA_DEL( x )    ( ( x & DATA_DEL ) == DATA_DEL )/* 检查函数返回成功*/#define CHECK_SUCCESS  0 #define SYSTEM_RET     -99 /* 数据空值*/#define TINY_NULL      255#define INT_NULL       -100#define DOUBLE_NULL    -100.00/* 命令提示*/#define CLEAR_SCR		0x01#define WAIT_ENTER		0x02#define WAIT_ENTER_KEY  "echo \"\n\n请按 [ENTER] 键 ... \\c\"; read a"/* 对话框类型 */#define YES_NO_BOX		0#define OK_CANCEL_BOX		1#define YES_NO_CANCEL_BOX	2#define RETRY_ABORD_CANCEL_BOX	3#define CONFIRM_BOX             4/* 对话框返回 */#define CANCEL			1	/* 取消 	*/#define YES			2	/* 是		*/#define NO			3	/* 否		*/#define RETRY			4	/* 重试 	*/#define ABORD			5	/* 放弃 	*/extern int HasColors;			/* 是否支持彩显 */extern char _SysOperNo[4];		/* 操作员号	*/extern char _SysOperRight[11];		/* 操作员权限	*//* 调色板 */typedef struct colorpattern {	short	textcolor[2];		/* 正文色	*/	short	boardcolor[2];		/* 边框色	*/	short	titlecolor[2];		/* 抬头色	*/	short	hightcolor[2];		/* 高亮色	*/}COLORPATTERN;/* 窗口 */typedef struct win {	WINDOW 	*win;			/* 窗口指针	*/	int 	row;			/* 起始行    	*/		int 	col;			/* 起始列	*/	int	height;			/* 窗口高	*/	int	width;			/* 窗口宽	*/	int	boardtype;		/* 边框类型	*/	char    *title;			/* 窗口抬头	*/}WINDOWS;		/* 窗口堆栈链表 */typedef struct winlink {	WINDOWS	*thiswindow;		/* 窗口指针	*/	struct winlink	*prevwinnode;	/* 父窗口链表	*/	struct winlink 	*nextwinnode;	/* 子窗口链表	*/}WINDOWLINK;/* 选项及其说明 */typedef struct item {	char 	*item;			/* 选项     	*/	char	*message;		/* 说明     	*/	int     ( *callfunc )();	/* 执行函数 	*/}ITEMS;/* 下拉菜单 */typedef struct menu {	WINDOWS	*menuwin;		/* 菜单窗口 	*/	ITEMS	*items;			/* 菜单选项 	*/	int	lastoption;		/* 选中         */}MENU;			/* 水平菜单 */typedef struct pad {	int 	row;			/* 起始行	*/	int	col;			/* 起始列	*/	WINDOW	*win;			/* 所在窗口	*/	ITEMS	*items;			/* 水平菜单选项 */	int	itemnum;		/* 选项个数	*/	int	lastoption;		/* 选中         */}PAD;/* 输入字段 */typedef struct iptfld{	int 	row;			int 	col;		char	*fldnote;		char	*fldmessage;	char 	*fldname;	void	*flddata;        int	fldlen;		ushort	fldtype;	int	( *beforecall )();	int 	( *aftercall )();}INPUTFIELD;/* 注释: 离开字段后的调用函数返回SUCCESS则进入下一字段         返回FALSE则重新录入该字段 */typedef struct scr_st{   INPUTFIELD *infld;   int (*atfer_getscr)();} SCREEN_ST;/**********************************************************	函 数 名:	InitSystem		功    能:	系统初始化	入口参数:			返 回 值:	无	调用方法:	InitSystem();**********************************************************/	int InitSystem();int InitColorSystem();/**********************************************************	函 数 名:	InitWindowLink			功    能:	初始化窗口链表	入口参数:	无	返 回 值:	无	调用方法:	InitWindowLink();**********************************************************/	int InitWindowLink();/**********************************************************	函 数 名:	AddToWindowLink		功    能:	加入新窗口到窗口链表	入口参数:	WINDOWS *NewWin	返 回 值:	TRUE	成功			FALSE 	失败			调用方法:	AddToWindowLink( newwin );**********************************************************/	int AddToWindowLink( WINDOWS *NewWin );/**********************************************************	函 数 名:	DeleteFromWindowLink		功    能:	从窗口链表中删除一个窗口	入口参数:	WINDOWS *TheWin	返 回 值:	TRUE	成功			FALSE	失败	调用方法:	DeleteFromWindowLink( thewin );**********************************************************/	int DeleteFromWindowLink( WINDOWS *TheWin );

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -