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

📄 new_curse.h

📁 aee是一种易使用的文本编辑器。你可以不用说明书来使用它。它提供终端接口和本地的X-windows接口。它的特性包括即弹的菜单
💻 H
字号:
/* |	new_curse.h | |	A subset of curses developed for use with ae. | |	written by Hugh Mahon | |	THIS MATERIAL IS PROVIDED "AS IS".  THERE ARE |	NO WARRANTIES OF ANY KIND WITH REGARD TO THIS |	MATERIAL, INCLUDING, BUT NOT LIMITED TO, THE |	IMPLIED WARRANTIES OF MERCHANTABILITY AND |	FITNESS FOR A PARTICULAR PURPOSE.  Neither |	Hewlett-Packard nor Hugh Mahon shall be liable |	for errors contained herein, nor for |	incidental or consequential damages in |	connection with the furnishing, performance or |	use of this material.  Neither Hewlett-Packard |	nor Hugh Mahon assumes any responsibility for |	the use or reliability of this software or |	documentation.  This software and |	documentation is totally UNSUPPORTED.  There |	is no support contract available.  Hewlett- |	Packard has done NO Quality Assurance on ANY |	of the program or documentation.  You may find |	the quality of the materials inferior to |	supported materials. | |	This software is not a product of Hewlett-Packard, Co., or any  |	other company.  No support is implied or offered with this software. |	You've got the source, and you're on your own. | |	This software may be distributed under the terms of Larry Wall's  |	Artistic license, a copy of which is included in this distribution.  | |	This notice must be included with this software and any derivatives. | |	Copyright (c) 1986, 1987, 1988, 1991, 1995 Hugh Mahon |	All are rights reserved. | */#include <stdio.h>#ifdef SYS5#include <termio.h>#else#include <sgtty.h>#include <fcntl.h>#endif#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 A_NC_BIG5  0x0100	/* Handle Chinese Big5 characters	*/#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;#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_((int));extern void initscr P_((void));extern int Get_int P_((void));extern int INFO_PARSE P_((void));extern int AtoI P_((void));extern void Key_Get P_((void));extern void keys_vt100 P_((void));extern struct _line *Screenalloc P_((int columns));extern WINDOW *newwin P_((int lines, int cols, int start_l, int start_c));extern int Operation P_((int Temp_Stack[], int place));extern void Info_Out P_((char *string, int p_list[], int place));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 void ungetch P_((int c));extern int wgetch P_((WINDOW *window));extern void Clear P_((int));extern int Get_key P_((int first_char));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));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 int check_delete P_((WINDOW *window, int line, int offset, struct _line *pointer_new, struct _line *pointer_old));extern int check_insert P_((WINDOW *window, int line, int offset, struct _line *pointer_new, struct _line *pointer_old));extern void doupdate P_((void));extern void Position P_((WINDOW *window, int row, int col));extern void Char_del P_((char *line, char *attrib, int offset, int maxlen));extern void Char_ins P_((char *line, char *attrib, int newc, int newatt, int offset, int maxlen));extern void attribute_on P_((void));extern void attribute_off P_((void));extern void Char_out P_((int newc, int newatt, char *line, char *attrib, int offset));extern void nc_setattrib P_((int));extern void nc_clearattrib P_((int));#undef P_

⌨️ 快捷键说明

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