📄 xcurse.h
字号:
/* +---------------------------------------------------------------+ | | | This file is a replacement for the routines in the curses | | library. Although the functions contained in this file | | are only a subset of those contained in curses, these | | will perform the tasks expected of them without the | | glitches found in curses. | | | +---------------------------------------------------------------+*/#ifndef __XCURSE_INC__#define __XCURSE_INC__#include <stdio.h>#include <signal.h>#include <fcntl.h>#define KEY_BREAK 0401#define KEY_DOWN 0402#define KEY_UP 0403#define KEY_LEFT 0404#define KEY_RIGHT 0405#define KEY_HOME 0406#define KEY_BACKSPACE 0407#define KEY_F0 0410#define KEY_F(n) (KEY_F0+(n))#define KEY_DL 0510#define KEY_IL 0511#define KEY_DC 0512#define KEY_IC 0513#define KEY_EIC 0514#define KEY_CLEAR 0515#define KEY_EOS 0516#define KEY_EOL 0517#define KEY_SF 0520#define KEY_SR 0521#define KEY_NPAGE 0522#define KEY_PPAGE 0523#define KEY_STAB 0524#define KEY_CTAB 0525#define KEY_CATAB 0526#define KEY_ENTER 0527#define KEY_SRESET 0530#define KEY_RESET 0531#define KEY_PRINT 0532#define KEY_LL 0533#define KEY_A1 0534#define KEY_A3 0535#define KEY_B2 0536#define KEY_C1 0537#define KEY_C3 0540#define KEY_BTAB 0541#define KEY_BEG 0542#define KEY_CANCEL 0543#define KEY_CLOSE 0544#define KEY_COMMAND 0545#define KEY_COPY 0546#define KEY_CREATE 0547#define KEY_END 0550#define KEY_EXIT 0551#define KEY_FIND 0552#define KEY_HELP 0553#define KEY_MARK 0554#define KEY_MESSAGE 0555#define KEY_MOVE 0556#define KEY_NEXT 0557#define KEY_OPEN 0560#define KEY_OPTIONS 0561#define KEY_PREVIOUS 0562#define KEY_REDO 0563#define KEY_REFERENCE 0564#define KEY_REFRESH 0565#define KEY_REPLACE 0566#define KEY_RESTART 0567#define KEY_RESUME 0570#define KEY_SAVE 0571#define KEY_SBEG 0572#define KEY_SCANCEL 0573#define KEY_SCOMMAND 0574#define KEY_SCOPY 0575#define KEY_SCREATE 0576#define KEY_SDC 0577#define KEY_SDL 0600#define KEY_SELECT 0601#define KEY_SEND 0602#define KEY_SEOL 0603#define KEY_SEXIT 0604#define KEY_SFIND 0605#define KEY_SHELP 0606#define KEY_SHOME 0607#define KEY_SIC 0610#define KEY_SLEFT 0611#define KEY_SMESSAGE 0612#define KEY_SMOVE 0613#define KEY_SNEXT 0614#define KEY_SOPTIONS 0615#define KEY_SPREVIOUS 0616#define KEY_SPRINT 0617#define KEY_SREDO 0620#define KEY_SREPLACE 0621#define KEY_SRIGHT 0622#define KEY_SRSUME 0623#define KEY_SSAVE 0624#define KEY_SSUSPEND 0625#define KEY_SUNDO 0626#define KEY_SUSPEND 0627#define KEY_UNDO 0630#define TRUE 1#define FALSE 0#define A_STANDOUT 0001 /* standout mode */#define SCROLL 1 /* text has been scrolled */#define CLEAR 2 /* window has been cleared */#define CHANGE 3 /* window has been changed */#define UP 1 /* direction of scroll */#define DOWN 2struct _line { struct _line *next_screen; struct _line *prev_screen; char *row; char *attributes; int last_char; int changed; int scroll; int number; };struct _line *top_of_win;typedef struct WIND { int SR; /* starting row */ int SC; /* starting column */ int LC; /* last column */ int LX; /* last cursor column position */ int LY; /* last cursor row position */ int Attrib; /* attributes active in window */ int Num_lines; /* number of lines */ int Num_cols; /* number of columns */ int scroll_up; /* number of lines moved */ int scroll_down; int SCROLL_CLEAR; /* indicates that window has been scrolled or cleared */ struct _line *first_line; struct _line **line_array; } WINDOW;extern WINDOW *curscr;extern WINDOW *stdscr;extern int LINES, COLS;/* X-windows definitions */#include <X11/Xlib.h>#if defined(__STDC__) || defined(__cplusplus)#define P_(s) s#else#define P_(s) ()#endifextern void copy_window P_((WINDOW *origin, WINDOW *destination));extern void reinitscr P_((void));extern void get_options P_((int argc, char *argv[]));extern void get_defaults P_((void));extern void initscr P_((int cols, int lines));extern void Key_Get P_((void));extern struct _line *Screenalloc P_((int columns));extern WINDOW *newwin P_((int lines, int cols, int start_l, int start_c));extern void wmove P_((WINDOW *window, int row, int column));extern void clear_line P_((struct _line *line, int column, int cols));extern void werase P_((WINDOW *window));extern void wclrtoeol P_((WINDOW *window));extern void wrefresh P_((WINDOW *window));extern void touchwin P_((WINDOW *window));extern void wnoutrefresh P_((WINDOW *window));extern void flushinp P_((void));extern int wgetch P_((WINDOW *window));extern int look_up_key P_((int key_code));extern void waddch P_((WINDOW *window, int c));extern void winsertln P_((WINDOW *window));extern void wdeleteln P_((WINDOW *window));extern void wclrtobot P_((WINDOW *window));extern void wstandout P_((WINDOW *window));extern void wstandend P_((WINDOW *window));extern void waddstr P_((WINDOW *window, char *string));extern void clearok P_((WINDOW *window, int flag));extern void echo P_((void));extern void noecho P_((void));extern void raw P_((void));extern void noraw P_((void));extern void nl P_((void));extern void nonl P_((void));extern void saveterm P_((void));extern void fixterm P_((void));extern void resetterm P_((void));extern void nodelay P_((WINDOW *window, int flag));extern void idlok P_((WINDOW *window, int flag));extern void keypad P_((WINDOW *window, int flag));extern void savetty P_((void));extern void resetty P_((void));extern void endwin P_((void));extern void delwin P_((WINDOW *window));extern void wprintw P_((WINDOW *window, const char* format, ...));extern void iout P_((WINDOW *window, int value, int base));extern int Comp_line P_((struct _line *line1, struct _line *line2));extern struct _line *Insert_line P_((int row, int end_row, WINDOW *window));extern struct _line *Delete_line P_((int row, int end_row, WINDOW *window));extern void CLEAR_TO_EOL P_((WINDOW *window, int row, int column));extern void doupdate P_((void));extern void Position P_((WINDOW *window, int row, int col));extern void Char_out P_((int newc, int newatt, char *line, char *attrib, int offset));extern void draw_cursor P_((int visible));extern void cursor P_((WINDOW *window, int row, int col, int erase, int visible));#undef P_#endif /* __XCURSE_INC__ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -