----------------------------------------------------------------------
curses定义的全局变量
WINDOW *stdscr; // 默认的标准窗口
WINDOW *curscr; // 当前窗口
WINDOW *newscr; // 新创建窗口
int LINES; // 当前终端的行数
int COLS; // 当前终端的列数
int TABSIZE; // 制表符长度
----------------------------------------------------------------------
curses宏定义:
#define TRUE 1
#define FALSE 0
#define ERR(-1)
#define OK(0)
字符属性
#define NCURSES_ATTR_SHIFT 8
#define NCURSES_BITS(mask,shift)((mask) <<((shift) + NCURSES_ATTR_SHIFT))
#define A_NORMAL 0L // 关闭所有特殊属性,普通模式
#define A_ATTRIBUTES NCURSES_BITS(~(1UL - 1UL),0) // 打开全部特殊属性
#define A_STANDOUT NCURSES_BITS(1UL,8) // 高亮突出显示
#define A_UNDERLINE NCURSES_BITS(1UL,9) // 下划线
#define A_REVERSE NCURSES_BITS(1UL,10) // 反色突出显示
#define A_BLINK NCURSES_BITS(1UL,11) // 闪烁
#define A_DIM NCURSES_BITS(1UL,12) // 半亮突出显示
#define A_BOLDNCURSES_BITS(1UL,13) // 加粗
特殊符号
ACS_ULCORNER ┌ ACS_LLCORNER └ ACS_URCORNER ┐ ACS_LRCORNER ┘
ACS_LTEE ├ ACS_RTEE ┤ ACS_BTEE ┴ ACS_TTEE ┬
ACS_HLINE ─ ACS_VLINE │ ACS_PLUS ┼ ACS_S1
ACS_S9 ACS_DIAMOND ◆ ACS_CKBOARD ▒ ACS_DEGREE °
ACS_PLMINUS ± ACS_BULLET · ACS_UARROW ^ ACS_BOARD #
ACS_LANTERN ␋ ACS_BLOCK # ACS_S3 ACS_S7
ACS_LEQUAL ≤ ACS_GEQUAL ≥ ACS_PI π ACS_NEQUAL ≠
ACS_STERLING £ ACS_BSSB ┌ ACS_SSBB └ ACS_BBSS ┐
ACS_SBBS ┘ ACS_SBSS ┤ ACS_SSSB ├ ACS_SSBS ┴
ACS_BSSS ┬ ACS_BSBS ─ ACS_SBSB │ ACS_SSSS ┼
字符颜色
#define COLOR_BLACK 0
#define COLOR_RED 1
#define COLOR_GREEN 2
#define COLOR_YELLOW 3
#define COLOR_BLUE 4
#define COLOR_MAGENTA 5
#define COLOR_CYAN 6
#define COLOR_WHITE 7
鼠标事件
#define BUTTON1_RELEASED 000000000001L 按钮 1 松开
#define BUTTON1_PRESSED 000000000002L 按钮 1 按下
#define BUTTON1_CLICKED 000000000004L 按钮 1 单击
#define BUTTON1_DOUBLE_CLICKED 000000000010L 按钮 1 双击
#define BUTTON1_TRIPLE_CLICKED 000000000020L 按钮 1 三击
#define BUTTON1_RESERVED_EVENT 000000000040L 按钮 1 保留
#define BUTTON2_RELEASED 000000000100L 按钮 2 松开
#define BUTTON2_PRESSED 000000000200L 按钮 2 按下
#define BUTTON2_CLICKED 000000000400L 按钮 2 单击
#define BUTTON2_DOUBLE_CLICKED 000000001000L 按钮 2 双击
#define BUTTON2_TRIPLE_CLICKED 000000002000L 按钮 2 三击
#define BUTTON2_RESERVED_EVENT 000000004000L 按钮 2 保留
#define BUTTON3_RELEASED 000000010000L 按钮 3 松开
#define BUTTON3_PRESSED 000000020000L 按钮 3 按下
#define BUTTON3_CLICKED 000000040000L 按钮 3 单击
#define BUTTON3_DOUBLE_CLICKED 000000100000L 按钮 3 双击
#define BUTTON3_TRIPLE_CLICKED 000000200000L 按钮 3 三击
#define BUTTON3_RESERVED_EVENT 000000400000L 按钮 3 保留
#define BUTTON4_RELEASED 000001000000L 按钮 4 松开
#define BUTTON4_PRESSED 000002000000L 按钮 4 按下
#define BUTTON4_CLICKED 000004000000L 按钮 4 单击
#define BUTTON4_DOUBLE_CLICKED 000010000000L 按钮 4 双击
#define BUTTON4_TRIPLE_CLICKED 000020000000L 按钮 4 三击
#define BUTTON4_RESERVED_EVENT 000040000000L 按钮 4 保留
#define BUTTON_CTRL 000100000000L 同时 CTRL 键也被按下
#define BUTTON_SHIFT 000200000000L 同时 SHIFT 键也被按下
#define BUTTON_ALT 000400000000L 同时 ALT 键也被按下
#define ALL_MOUSE_EVENTS 000777777777L 接收所有的鼠标消息
#define REPORT_MOUSE_POSITION 001000000000L 报告鼠标位置
键盘:
#define KEY_CODE_YES 0400 /* A wchar_t contains a key code */
#define KEY_MIN 0401 /* Minimum curses key */
#define KEY_BREAK 0401 /* Break key(unreliable) */
#define KEY_SRESET 0530 /* Soft(partial) reset(unreliable) */
#define KEY_RESET 0531 /* Reset or hard reset(unreliable) */
#define KEY_DOWN 0402 /* down-arrow key */
#define KEY_UP 0403 /* up-arrow key */
#define KEY_LEFT 0404 /* left-arrow key */
#define KEY_RIGHT 0405 /* right-arrow key */
#define KEY_HOME 0406 /* home key */
#define KEY_BACKSPACE 0407 /* backspace key */
#define KEY_F0 0410 /* Function keys. Space for 64 */
#define KEY_F(n) (KEY_F0+(n)) /* Value of function key n */
#define KEY_DL 0510 /* delete-line key */
#define KEY_IL 0511 /* insert-line key */
#define KEY_DC 0512 /* delete-character key */
#define KEY_IC 0513 /* insert-character key */
#define KEY_EIC 0514 /* sent by rmir or smir in insert mode */
#define KEY_CLEAR 0515 /* clear-screen or erase key */
#define KEY_EOS 0516 /* clear-to-end-of-screen key */
#define KEY_EOL 0517 /* clear-to-end-of-line key */
#define KEY_SF 0520 /* scroll-forward key */
#define KEY_SR 0521 /* scroll-backward key */
#define KEY_NPAGE 0522 /* next-page key */
#define KEY_PPAGE 0523 /* previous-page key */
#define KEY_STAB 0524 /* set-tab key */
#define KEY_CTAB 0525 /* clear-tab key */
#define KEY_CATAB 0526 /* clear-all-tabs key */
#define KEY_ENTER 0527 /* enter/send key */