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

📄 menu.h

📁 UNIX 界面程序
💻 H
字号:
#ifndef _SETTLEMENU_H_
#define _SETTLEMENU_H_
#include <stdio.h>
#include <curses.h>
#include <ctype.h>

#define MENU_add	"/view/match.add"	/* 附加菜单项定义文件 */
#define MENU_f		"/view/match.menu"	/* 菜单文件           */
#if 0
/* 已改为使用全局变量GV_help_file */
#define HELP_f		"/view/match.help"	/* 帮助文件           */
#endif
#define MAXITEM		256			/* 最大菜单选择项数   */
#define MAXSCR		128			/* 最大菜单屏数	      */
#define WIDTH1		50			/* 选择项名最大宽度   */
#define WIDTH2		80			/* 选择项说明最大宽度 */

#define ERR_MENU	-1			/* 出错状态           */
#define NORMAL		0			/* 正常状态           */
#define CLOSE		1			/* 关闭菜单           */
#define OPEN_LEFT	2			/* 弹出左边菜单       */
#define OPEN_RIGHT	3			/* 弹出右边菜单       */

struct S_item_info_struc {
	int iHeadItem;
	int iTailItem;
} SItemInfo[MAXITEM];

struct S_menu_a {
	int iFatherMenu;		/* 父菜单号 (数组下标) */
	int iFatherMenuItem;		/* 父菜单选择项号      */
	int iItem;			/* 最新选择项名        */
	int x,y,l,h;
	int iPageItem;			/* 须分屏显示的选择项 */
} SMenuActiveStatus[MAXSCR];

struct S_menu_item_struc {
	int	(*mproc)();		/* 激活菜单完成操作      */
	int	iChildMenu;		/* 子菜单号 (数组下标号) */
	char	sName[WIDTH1+1];	/* 菜单选择项名          */
	char	sText[WIDTH2+1];	/* 选择项说明            */
	char	cFirstChar;		/* 选择项首字母          */
	int	iPower;			/* 权限(0禁用,1可用)    */
        char    cProcType;		/* 处理类型 M:子菜单 E:退出菜单 */
					/* X:shell命令;F:函数调用    */
        char	sShell[128];		/* 当proc_type='X'时,shell命令串 */
	char	cReplace;		/* 菜单操作是否可被程序替换 */

        int	(*preprog)();		/* 执行菜单操作前,须执行的操作 */
        char	cCheckPwd;		/* 选择菜单项时,是否须主管用户口令 */
        char	sHelpId[11];		/* 选择项的帮助信息标识号 */
	char	sItemId[11];		/* 菜单项标识号,用于外部文件定义 */
					/* 使用此号查找菜单项的数组下标 */
	char 	sParam[30];	
};
#define	MAX_MENU_ITEMS	MAXITEM		/* 最大SMenuItem[]项 */
extern struct S_menu_item_struc SMenuItem[MAX_MENU_ITEMS];
extern iMenuItemCount;
extern WINDOW *menu_win;


typedef struct  S_proc_st {
        char    sNote[WIDTH2+1];
        int     (*p_proc)();
        char    sName[WIDTH1+1];
}       PROC_T;

extern  PROC_T  proctab[];

struct S_menu_struc {
	char	sMenuName[WIDTH1];	/* 菜单名称                 */
	int	iLocateY;		/* 显示坐标 Y               */
	int	iLocateX;		/* 显示坐标 X               */
	int	iDispFormat;		/* 显示格式 (0:横排,1:纵排) */

	char	cReplace;		/* 0-不可修改坐标及显示格式 */
					/* 1-可修改		    */
	char	sMenuId[11];		/* 菜单标识号 */

	int iMenuItemSet[MAXITEM];	/* 子菜单集合, 必须以-1结束 */
};
#define	MAX_MENUS	128	/* 最大SMenu[]项数 */
extern struct S_menu_struc SMenu[MAX_MENUS];
extern iMenuCount;


int	DispMenu(WINDOW *, int, int *, FILE *);
int	DealMenu(int, FILE *);
int	GetMenu(FILE *, FILE *);
int	GetAddMenu(FILE *);
int	GetItemOrd(char *);
int	GetMenuOrd(char *);
int	GetActiveMenu(FILE *);
int	GetItemInfo(int, FILE *);
void	DispItem1(WINDOW *, int, int);
int	DispMenu(WINDOW *, int, int *, FILE *);
int	DispMenu0(WINDOW *, int, int *);
int	DispMenu1(WINDOW *, int, int *);
int	InitItemInfo( WINDOW *, int, FILE *);
int	DispMainMenu(WINDOW *, int);
int	ClearMenu(WINDOW *, int);
int	DispFrame(WINDOW *);
int	DispBelow(char *);
int	FunKeyHelp(char *);
int	GetWinParam(WINDOW *);
int	PromptBottomRight(int, int, int, char *);
int	PromptBottom(int, int, int, char *);
int	PormptTopRight(int, int, int, char *);
int	PromptTop(int, int, int, char *);
#endif

⌨️ 快捷键说明

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