📄 ncurses.h
字号:
#define mvwchgat(win,y,x,n,a,c,o) (wmove(win,y,x) == ERR ? ERR : wchgat(win,n,a,c,o))#define mvwgetch(win,y,x) (wmove(win,y,x) == ERR ? ERR : wgetch(win))#define mvwgetnstr(win,y,x,str,n) (wmove(win,y,x) == ERR ? ERR : wgetnstr(win,str,n))#define mvwgetstr(win,y,x,str) (wmove(win,y,x) == ERR ? ERR : wgetstr(win,str))#define mvwhline(win,y,x,c,n) (wmove(win,y,x) == ERR ? ERR : whline(win,c,n))#define mvwinch(win,y,x) (wmove(win,y,x) == ERR ? (chtype)ERR : winch(win))#define mvwinchnstr(win,y,x,s,n) (wmove(win,y,x) == ERR ? ERR : winchnstr(win,s,n))#define mvwinchstr(win,y,x,s) (wmove(win,y,x) == ERR ? ERR : winchstr(win,s))#define mvwinnstr(win,y,x,s,n) (wmove(win,y,x) == ERR ? ERR : winnstr(win,s,n))#define mvwinsch(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : winsch(win,c))#define mvwinsnstr(win,y,x,s,n) (wmove(win,y,x) == ERR ? ERR : winsnstr(win,s,n))#define mvwinsstr(win,y,x,s) (wmove(win,y,x) == ERR ? ERR : winsstr(win,s))#define mvwinstr(win,y,x,s) (wmove(win,y,x) == ERR ? ERR : winstr(win,s))#define mvwvline(win,y,x,c,n) (wmove(win,y,x) == ERR ? ERR : wvline(win,c,n))#define mvaddch(y,x,ch) mvwaddch(stdscr,y,x,ch)#define mvaddchnstr(y,x,str,n) mvwaddchnstr(stdscr,y,x,str,n)#define mvaddchstr(y,x,str) mvwaddchstr(stdscr,y,x,str)#define mvaddnstr(y,x,str,n) mvwaddnstr(stdscr,y,x,str,n)#define mvaddstr(y,x,str) mvwaddstr(stdscr,y,x,str)#define mvchgat(y,x,n,a,c,o) mvwchgat(stdscr,y,x,n,a,c,o)#define mvdelch(y,x) mvwdelch(stdscr,y,x)#define mvgetch(y,x) mvwgetch(stdscr,y,x)#define mvgetnstr(y,x,str,n) mvwgetnstr(stdscr,y,x,str,n)#define mvgetstr(y,x,str) mvwgetstr(stdscr,y,x,str)#define mvhline(y,x,c,n) mvwhline(stdscr,y,x,c,n)#define mvinch(y,x) mvwinch(stdscr,y,x)#define mvinchnstr(y,x,s,n) mvwinchnstr(stdscr,y,x,s,n)#define mvinchstr(y,x,s) mvwinchstr(stdscr,y,x,s)#define mvinnstr(y,x,s,n) mvwinnstr(stdscr,y,x,s,n)#define mvinsch(y,x,c) mvwinsch(stdscr,y,x,c)#define mvinsnstr(y,x,s,n) mvwinsnstr(stdscr,y,x,s,n)#define mvinsstr(y,x,s) mvwinsstr(stdscr,y,x,s)#define mvinstr(y,x,s) mvwinstr(stdscr,y,x,s)#define mvvline(y,x,c,n) mvwvline(stdscr,y,x,c,n)/* * Some wide-character functions do not depend on the extensions. */#define getbkgd(win) ((win)->_bkgd)#define slk_attr_off(a,v) ((v) ? ERR : slk_attroff(a))#define slk_attr_on(a,v) ((v) ? ERR : slk_attron(a))#define wattr_get(win,a,p,opts) ((void)((a) != 0 && (*(a) = (win)->_attrs)), \ (void)((p) != 0 && (*(p) = PAIR_NUMBER((win)->_attrs))), \ OK)/* * XSI curses deprecates SVr4 vwprintw/vwscanw, which are supposed to use * varargs.h. It adds new calls vw_printw/vw_scanw, which are supposed to * use POSIX stdarg.h. The ncurses versions of vwprintw/vwscanw already * use stdarg.h, so... */#define vw_printw vwprintw#define vw_scanw vwscanw/* * Export fallback function for use in C++ binding. */#if !1#define vsscanf(a,b,c) _nc_vsscanf(a,b,c)NCURSES_EXPORT(int) vsscanf(const char *, const char *, va_list);#endif/* * Pseudo-character tokens outside ASCII range. The curses wgetch() function * will return any given one of these only if the corresponding k- capability * is defined in your terminal's terminfo entry. * * Some keys (KEY_A1, etc) are arranged like this: * a1 up a3 * left b2 right * c1 down c3 * * A few key codes do not depend upon the terminfo entry. */#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) *//* * These definitions were generated by ./MKkey_defs.sh ./Caps */#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 */#define KEY_PRINT 0532 /* print key */#define KEY_LL 0533 /* lower-left key (home down) */#define KEY_A1 0534 /* upper left of keypad */#define KEY_A3 0535 /* upper right of keypad */#define KEY_B2 0536 /* center of keypad */#define KEY_C1 0537 /* lower left of keypad */#define KEY_C3 0540 /* lower right of keypad */#define KEY_BTAB 0541 /* back-tab key */#define KEY_BEG 0542 /* begin key */#define KEY_CANCEL 0543 /* cancel key */#define KEY_CLOSE 0544 /* close key */#define KEY_COMMAND 0545 /* command key */#define KEY_COPY 0546 /* copy key */#define KEY_CREATE 0547 /* create key */#define KEY_END 0550 /* end key */#define KEY_EXIT 0551 /* exit key */#define KEY_FIND 0552 /* find key */#define KEY_HELP 0553 /* help key */#define KEY_MARK 0554 /* mark key */#define KEY_MESSAGE 0555 /* message key */#define KEY_MOVE 0556 /* move key */#define KEY_NEXT 0557 /* next key */#define KEY_OPEN 0560 /* open key */#define KEY_OPTIONS 0561 /* options key */#define KEY_PREVIOUS 0562 /* previous key */#define KEY_REDO 0563 /* redo key */#define KEY_REFERENCE 0564 /* reference key */#define KEY_REFRESH 0565 /* refresh key */#define KEY_REPLACE 0566 /* replace key */#define KEY_RESTART 0567 /* restart key */#define KEY_RESUME 0570 /* resume key */#define KEY_SAVE 0571 /* save key */#define KEY_SBEG 0572 /* shifted begin key */#define KEY_SCANCEL 0573 /* shifted cancel key */#define KEY_SCOMMAND 0574 /* shifted command key */#define KEY_SCOPY 0575 /* shifted copy key */#define KEY_SCREATE 0576 /* shifted create key */#define KEY_SDC 0577 /* shifted delete-character key */#define KEY_SDL 0600 /* shifted delete-line key */#define KEY_SELECT 0601 /* select key */#define KEY_SEND 0602 /* shifted end key */#define KEY_SEOL 0603 /* shifted clear-to-end-of-line key */#define KEY_SEXIT 0604 /* shifted exit key */#define KEY_SFIND 0605 /* shifted find key */#define KEY_SHELP 0606 /* shifted help key */#define KEY_SHOME 0607 /* shifted home key */#define KEY_SIC 0610 /* shifted insert-character key */#define KEY_SLEFT 0611 /* shifted left-arrow key */#define KEY_SMESSAGE 0612 /* shifted message key */#define KEY_SMOVE 0613 /* shifted move key */#define KEY_SNEXT 0614 /* shifted next key */#define KEY_SOPTIONS 0615 /* shifted options key */#define KEY_SPREVIOUS 0616 /* shifted previous key */#define KEY_SPRINT 0617 /* shifted print key */#define KEY_SREDO 0620 /* shifted redo key */#define KEY_SREPLACE 0621 /* shifted replace key */#define KEY_SRIGHT 0622 /* shifted right-arrow key */#define KEY_SRSUME 0623 /* shifted resume key */#define KEY_SSAVE 0624 /* shifted save key */#define KEY_SSUSPEND 0625 /* shifted suspend key */#define KEY_SUNDO 0626 /* shifted undo key */#define KEY_SUSPEND 0627 /* suspend key */#define KEY_UNDO 0630 /* undo key */#define KEY_MOUSE 0631 /* Mouse event has occurred */#define KEY_RESIZE 0632 /* Terminal resize event */#define KEY_EVENT 0633 /* We were interrupted by an event */#define KEY_MAX 0777 /* Maximum key value is 0633 *//* $Id: curses.tail,v 1.8 2002/11/02 20:26:26 tom Exp $ *//* mouse interface */#define NCURSES_MOUSE_VERSION 1/* event masks */#define BUTTON1_RELEASED 000000000001L#define BUTTON1_PRESSED 000000000002L#define BUTTON1_CLICKED 000000000004L#define BUTTON1_DOUBLE_CLICKED 000000000010L#define BUTTON1_TRIPLE_CLICKED 000000000020L#define BUTTON1_RESERVED_EVENT 000000000040L#define BUTTON2_RELEASED 000000000100L#define BUTTON2_PRESSED 000000000200L#define BUTTON2_CLICKED 000000000400L#define BUTTON2_DOUBLE_CLICKED 000000001000L#define BUTTON2_TRIPLE_CLICKED 000000002000L#define BUTTON2_RESERVED_EVENT 000000004000L#define BUTTON3_RELEASED 000000010000L#define BUTTON3_PRESSED 000000020000L#define BUTTON3_CLICKED 000000040000L#define BUTTON3_DOUBLE_CLICKED 000000100000L#define BUTTON3_TRIPLE_CLICKED 000000200000L#define BUTTON3_RESERVED_EVENT 000000400000L#define BUTTON4_RELEASED 000001000000L#define BUTTON4_PRESSED 000002000000L#define BUTTON4_CLICKED 000004000000L#define BUTTON4_DOUBLE_CLICKED 000010000000L#define BUTTON4_TRIPLE_CLICKED 000020000000L#define BUTTON4_RESERVED_EVENT 000040000000L#define BUTTON_CTRL 000100000000L#define BUTTON_SHIFT 000200000000L#define BUTTON_ALT 000400000000L#define ALL_MOUSE_EVENTS 000777777777L#define REPORT_MOUSE_POSITION 001000000000L/* macros to extract single event-bits from masks */#define BUTTON_RELEASE(e, x) ((e) & (001 << (6 * ((x) - 1))))#define BUTTON_PRESS(e, x) ((e) & (002 << (6 * ((x) - 1))))#define BUTTON_CLICK(e, x) ((e) & (004 << (6 * ((x) - 1))))#define BUTTON_DOUBLE_CLICK(e, x) ((e) & (010 << (6 * ((x) - 1))))#define BUTTON_TRIPLE_CLICK(e, x) ((e) & (020 << (6 * ((x) - 1))))#define BUTTON_RESERVED_EVENT(e, x) ((e) & (040 << (6 * ((x) - 1))))typedef unsigned long mmask_t;typedef struct{ short id; /* ID to distinguish multiple devices */ int x, y, z; /* event coordinates (character-cell) */ mmask_t bstate; /* button state bits */}MEVENT;extern NCURSES_EXPORT(int) getmouse (MEVENT *);extern NCURSES_EXPORT(int) ungetmouse (MEVENT *);extern NCURSES_EXPORT(mmask_t) mousemask (mmask_t, mmask_t *);extern NCURSES_EXPORT(bool) wenclose (const WINDOW *, int, int);extern NCURSES_EXPORT(int) mouseinterval (int);extern NCURSES_EXPORT(bool) wmouse_trafo (const WINDOW* win,int* y, int* x, bool to_screen);extern NCURSES_EXPORT(bool) mouse_trafo (int*, int*, bool); /* generated */#define mouse_trafo(y,x,to_screen) wmouse_trafo(stdscr,y,x,to_screen)/* other non-XSI functions */extern NCURSES_EXPORT(int) mcprint (char *, int); /* direct data to printer */extern NCURSES_EXPORT(int) has_key (int); /* do we have given key? *//* Debugging : use with libncurses_g.a */extern NCURSES_EXPORT(void) _tracef (const char *, ...) GCC_PRINTFLIKE(1,2);extern NCURSES_EXPORT(void) _tracedump (const char *, WINDOW *);extern NCURSES_EXPORT(char *) _traceattr (attr_t);extern NCURSES_EXPORT(char *) _traceattr2 (int, chtype);extern NCURSES_EXPORT(char *) _nc_tracebits (void);extern NCURSES_EXPORT(char *) _tracechar (int);extern NCURSES_EXPORT(char *) _tracechtype (chtype);extern NCURSES_EXPORT(char *) _tracechtype2 (int, chtype);#ifdef _XOPEN_SOURCE_EXTENDED#define _tracech_t _tracecchar_textern NCURSES_EXPORT(char *) _tracecchar_t (const cchar_t *);#define _tracech_t2 _tracecchar_t2extern NCURSES_EXPORT(char *) _tracecchar_t2 (int, const cchar_t *);#else#define _tracech_t _tracechtype#define _tracech_t2 _tracechtype2#endifextern NCURSES_EXPORT(char *) _tracemouse (const MEVENT *);extern NCURSES_EXPORT(void) trace (const unsigned int);/* trace masks */#define TRACE_DISABLE 0x0000 /* turn off tracing */#define TRACE_TIMES 0x0001 /* trace user and system times of updates */#define TRACE_TPUTS 0x0002 /* trace tputs calls */#define TRACE_UPDATE 0x0004 /* trace update actions, old & new screens */#define TRACE_MOVE 0x0008 /* trace cursor moves and scrolls */#define TRACE_CHARPUT 0x0010 /* trace all character outputs */#define TRACE_ORDINARY 0x001F /* trace all update actions */#define TRACE_CALLS 0x0020 /* trace all curses calls */#define TRACE_VIRTPUT 0x0040 /* trace virtual character puts */#define TRACE_IEVENT 0x0080 /* trace low-level input processing */#define TRACE_BITS 0x0100 /* trace state of TTY control bits */#define TRACE_ICALLS 0x0200 /* trace internal/nested calls */#define TRACE_CCALLS 0x0400 /* trace per-character calls */#define TRACE_DATABASE 0x0800 /* trace read/write of terminfo/termcap data */#define TRACE_ATTRS 0x1000 /* trace attribute updates */#define TRACE_SHIFT 13 /* number of bits in the trace masks */#define TRACE_MAXIMUM ((1 << TRACE_SHIFT) - 1) /* maximum trace level */#if defined(TRACE) || defined(NCURSES_TEST)extern NCURSES_EXPORT_VAR(int) _nc_optimize_enable; /* enable optimizations */#ifdef _XOPEN_SOURCE_EXTENDEDextern NCURSES_EXPORT(const char *) _nc_viswbuf(const wchar_t *);#endifextern NCURSES_EXPORT(const char *) _nc_visbuf (const char *);#define OPTIMIZE_MVCUR 0x01 /* cursor movement optimization */#define OPTIMIZE_HASHMAP 0x02 /* diff hashing to detect scrolls */#define OPTIMIZE_SCROLL 0x04 /* scroll optimization */#define OPTIMIZE_ALL 0xff /* enable all optimizations (dflt) */#endif#ifdef __cplusplus/* these names conflict with STL */#undef box#undef clear#undef erase#undef move#undef refresh}#endif#endif /* __NCURSES_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -