📄 menu.h
字号:
#if !defined(MENU_H_)
#define MENU_H_
#if !defined(KEY_H_)
#include <key.h>
#endif
#include <bios.h>
#define DISABLE 0
#define ENABLE 1
#define SAVE struct text_info old;gettextinfo(&old);window(1,1,80,25);
#define RESTORE window(old.winleft,old.wintop,old.winright,old.winbottom);\
textattr(old.attribute);\
gotoxy(old.curx,old.cury);
/*Type Definitions*/
typedef unsigned char byte;
typedef unsigned int word;
typedef unsigned long dword;
typedef enum{false,true}bool;
typedef struct{
byte X,Y;
}TPoint;
typedef struct{
TPoint A,B;
}TRect;
struct TSM;
typedef struct TMI{
char Name[30];
char KeyCode;
word ShortKey;
word HlpCtx;
byte State;
char *Hint;
struct TMI*Prev,*Next;
void (*Action)();
struct TSM*SM;
}TMI,*PMI;
typedef struct TSM{
TRect R;
byte X,Y;
byte Len;
char Name[11];
char *Buffer;
char KeyCode;
word ShortKey;
word HlpCtx;
byte State;
struct TSM*Prev,*Next;
PMI MIS,CurMI;
byte MIN;
}TSM,*PSM;
typedef struct TMenu{
byte SMN;
PSM SMS,CurSM;
}TMenu,*PMenu;
/*///////////////////////////////////////////////*/
/* Functions to manage Menu units*/
PMI NewMI(char *n,word sk,word hc,char *hint,void (*act)(),PSM sm);
PSM NewSM(int x,int y,int len, char *n,word sk,word hc);
void AddMI(PSM sm,PMI mi);
void InsMI(PSM sm,byte before,PMI mi);
void AddSM(PSM sm);
void InsSM(int befor,PSM sm);
void DelMI(PSM sm,PMI mi);
void DelSM(PSM sm);
void EnableMI(PMI mi);
void EnableSM(PSM sm);
void DisableSM(PSM sm);
void DisableMI(PMI mi);
void SelectSM(PSM sm);
void MenuDraw();
void VOID();
PSM HaveShortKey(word key);
/* Gobal variables*/
extern TMenu Menu;
extern int MenuBack;
extern int SMSelBack;
extern int SMSel;
extern int MenuKey;
extern int SMBox;
extern int SMBoxBack;
extern int BarBack;
extern int BarNor;
extern int DisableColor;
extern int MAXSM;
extern int MAXMI;
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -