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

📄 curses.h

📁 操作系统源代码
💻 H
字号:
/* curses.h *//* Author: *	Steve Kirkendall *	14407 SW Teal Blvd. #C *	Beaverton, OR 97005 *	kirkenda@cs.pdx.edu *//* This is the header file for a small, fast, fake curses package *//* termcap stuff */extern char	*tgoto();extern char	*tgetstr();extern void	tputs();#if MSDOS/* BIOS interface used instead of termcap for MS-DOS */extern int	vmode;extern void	v_up();extern void	v_cb();extern void	v_cs();extern void	v_ce();extern void	v_cl();extern void	v_cd();extern void	v_al();extern void	v_dl();extern void	v_sr();extern void	v_move();#endif/* faddch() is a function.  a pointer to it is passed to tputs() */extern int	faddch();/* data types */#define WINDOW	char/* CONSTANTS & SYMBOLS */#define TRUE		1#define FALSE		0#define A_NORMAL	0#define A_STANDOUT	1#define A_BOLD		2#define A_UNDERLINE	3#define A_ALTCHARSET	4#define A_POPUP		5#define A_VISIBLE	6#define KBSIZ		4096/* figure out how many function keys we need to allow. */#ifndef NO_FKEY# ifdef NO_SHIFT_FKEY#  define	NFKEYS	10# else#  ifdef NO_CTRL_FKEY#   define	NFKEYS	20#  else#   ifdef NO_ALT_FKEY#    define	NFKEYS	30#   else#    define	NFKEYS	40#   endif#  endif# endifextern char	*FKEY[NFKEYS];	/* :k0=:...:k9=: codes sent by function keys */#endif/* extern variables, defined in curses.c */extern char	*termtype;	/* name of terminal entry */extern short	ospeed;		/* tty speed, eg B2400 */#if OSKextern char PC_;	/* Pad char */extern char	*BC;	/* Backspace char string */#elseextern char	PC;		/* Pad char */#endifextern WINDOW	*stdscr;	/* pointer into kbuf[] */extern WINDOW	kbuf[KBSIZ];	/* a very large output buffer */extern int	LINES;		/* :li#: number of rows */extern int	COLS;		/* :co#: number of columns */extern int	AM;		/* :am:  boolean: auto margins? */extern int	PT;		/* :pt:  boolean: physical tabs? */extern char	*VB;		/* :vb=: visible bell */extern char	*UP;		/* :up=: move cursor up */extern char	*SO;		/* :so=: standout start */extern char	*SE;		/* :se=: standout end */extern char	*US;		/* :us=: underline start */extern char	*UE;		/* :ue=: underline end */extern char	*MD;		/* :md=: bold start */extern char	*ME;		/* :me=: bold end */extern char	*AS;		/* :as=: alternate (italic) start */extern char	*AE;		/* :ae=: alternate (italic) end */#ifndef NO_VISIBLEextern char	*MV;		/* :mv=: "visible" selection start */#endifextern char	*CM;		/* :cm=: cursor movement */extern char	*CE;		/* :ce=: clear to end of line */extern char	*CD;		/* :cd=: clear to end of screen */extern char	*AL;		/* :al=: add a line */extern char	*DL;		/* :dl=: delete a line */#if OSKextern char	*SR_;		/* :sr=: scroll reverse */#elseextern char	*SR;		/* :sr=: scroll reverse */#endifextern char	*KS;		/* :ks=: init string for cursor */extern char	*KE;		/* :ke=: restore string for cursor */extern char	*KU;		/* :ku=: sequence sent by up key */extern char	*KD;		/* :kd=: sequence sent by down key */extern char	*KL;		/* :kl=: sequence sent by left key */extern char	*KR;		/* :kr=: sequence sent by right key */extern char	*PU;		/* :PU=: key sequence sent by PgUp key */extern char	*PD;		/* :PD=: key sequence sent by PgDn key */extern char	*HM;		/* :HM=: key sequence sent by Home key */extern char	*EN;		/* :EN=: key sequence sent by End key */extern char	*KI;		/* :kI=: key sequence sent by Insert key */extern char	*IM;		/* :im=: insert mode start */extern char	*IC;		/* :ic=: insert following char */extern char	*EI;		/* :ei=: insert mode end */extern char	*DC;		/* :dc=: delete a character */extern char	*TI;		/* :ti=: terminal init */	/* GB */extern char	*TE;		/* :te=: terminal exit */	/* GB */#ifndef NO_CURSORSHAPEextern char	*CQ;		/* :cQ=: normal cursor */extern char	*CX;		/* :cX=: cursor used for EX command/entry */extern char	*CV;		/* :cV=: cursor used for VI command mode */extern char	*CI;		/* :cI=: cursor used for VI input mode */extern char	*CR;		/* :cR=: cursor used for VI replace mode */#endifextern char	*aend;		/* end an attribute -- either UE or ME */extern char	ERASEKEY;	/* taken from the ioctl structure */#ifndef NO_COLORextern char	SOcolor[];extern char	SEcolor[];extern char	UScolor[];extern char	UEcolor[];extern char	MDcolor[];extern char	MEcolor[];extern char	AScolor[];extern char	AEcolor[];# ifndef NO_POPUPextern char	POPUPcolor[];# endif# ifndef NO_VISIBLEextern char	VISIBLEcolor[];# endifextern char	normalcolor[];#endif /* undef NO_COLOR *//* Msdos-versions may use bios; others always termcap. * Will emit some 'code has no effect' warnings in unix. */ #if MSDOSextern char o_pcbios[1];		/* BAH! */#define	CHECKBIOS(x,y)	(*o_pcbios ? (x) : (y))#define VOIDBIOS(x,y)	{if (*o_pcbios) {x;} else {y;}}#else#define	CHECKBIOS(x,y)	(y)#define VOIDBIOS(x,y)	{y;}#endif#ifndef NO_COLOR# define setcolor(m,a)	CHECKBIOS(bioscolor(m,a), ansicolor(m,a))# define fixcolor()	VOIDBIOS(;, tputs(normalcolor, 1, faddch))# define quitcolor()	CHECKBIOS(biosquit(), ansiquit())# define do_SO()	VOIDBIOS((vmode=A_STANDOUT), tputs(SOcolor, 1, faddch))# define do_SE()	VOIDBIOS((vmode=A_NORMAL), tputs(SEcolor, 1, faddch))# define do_US()	VOIDBIOS((vmode=A_UNDERLINE), tputs(UScolor, 1, faddch))# define do_UE()	VOIDBIOS((vmode=A_NORMAL), tputs(UEcolor, 1, faddch))# define do_MD()	VOIDBIOS((vmode=A_BOLD), tputs(MDcolor, 1, faddch))# define do_ME()	VOIDBIOS((vmode=A_NORMAL), tputs(MEcolor, 1, faddch))# define do_AS()	VOIDBIOS((vmode=A_ALTCHARSET), tputs(AScolor, 1, faddch))# define do_AE()	VOIDBIOS((vmode=A_NORMAL), tputs(AEcolor, 1, faddch))# define do_POPUP()	VOIDBIOS((vmode=A_POPUP), tputs(POPUPcolor, 1, faddch))# define do_VISIBLE()	VOIDBIOS((vmode=A_VISIBLE), tputs(VISIBLEcolor, 1, faddch))#else# define do_SO()	VOIDBIOS((vmode=A_STANDOUT), tputs(SO, 1, faddch))# define do_SE()	VOIDBIOS((vmode=A_NORMAL), tputs(SE, 1, faddch))# define do_US()	VOIDBIOS((vmode=A_UNDERLINE), tputs(US, 1, faddch))# define do_UE()	VOIDBIOS((vmode=A_NORMAL), tputs(UE, 1, faddch))# define do_MD()	VOIDBIOS((vmode=A_BOLD), tputs(MD, 1, faddch))# define do_ME()	VOIDBIOS((vmode=A_NORMAL), tputs(ME, 1, faddch))# define do_AS()	VOIDBIOS((vmode=A_ALTCHARSET), tputs(AS, 1, faddch))# define do_AE()	VOIDBIOS((vmode=A_NORMAL), tputs(AE, 1, faddch))# define do_POPUP()	VOIDBIOS((vmode=A_POPUP), tputs(SO, 1, faddch))# define do_VISIBLE()	VOIDBIOS((vmode=A_VISIBLE), tputs(MV, 1, faddch))#endif#define	do_VB()		VOIDBIOS(;, tputs(VB, 1, faddch))#define	do_UP()		VOIDBIOS(v_up(), tputs(UP, 1, faddch))#undef	do_CM		/* move */#define	do_CE()		VOIDBIOS(v_ce(), tputs(CE, 1, faddch))#define	do_CD()		VOIDBIOS(v_cd(), tputs(CD, 1, faddch))#define	do_AL()		VOIDBIOS(v_al(), tputs(AL, LINES, faddch))#define	do_DL()		VOIDBIOS(v_dl(), tputs(DL, LINES, faddch))#if OSK#define	do_SR()		VOIDBIOS(v_sr(), tputs(SR_, 1, faddch))#else#define	do_SR()		VOIDBIOS(v_sr(), tputs(SR, 1, faddch))#endif#define do_KS()		VOIDBIOS(1, tputs(KS, 1, faddch))#define do_KE()		VOIDBIOS(1, tputs(KE, 1, faddch))#define	do_IM()		VOIDBIOS(;, tputs(IM, 1, faddch))#define	do_IC()		VOIDBIOS(;, tputs(IC, 1, faddch))#define	do_EI()		VOIDBIOS(;, tputs(EI, 1, faddch))#define	do_DC()		VOIDBIOS(;, tputs(DC, COLS, faddch))#define	do_TI()		VOIDBIOS(;, (void)ttywrite(TI, (unsigned)strlen(TI)))#define	do_TE()		VOIDBIOS(;, (void)ttywrite(TE, (unsigned)strlen(TE)))#ifndef NO_CURSORSHAPE# define do_CQ()	VOIDBIOS(v_cs(), tputs(CQ, 1, faddch))# define do_CX()	VOIDBIOS(v_cs(), tputs(CX, 1, faddch))# define do_CV()	VOIDBIOS(v_cs(), tputs(CV, 1, faddch))# define do_CI()	VOIDBIOS(v_cb(), tputs(CI, 1, faddch))# define do_CR()	VOIDBIOS(v_cb(), tputs(CR, 1, faddch))#endif#ifndef NO_COLOR# define do_aend()	VOIDBIOS((vmode=A_NORMAL), endcolor())#else# define do_aend()	VOIDBIOS((vmode=A_NORMAL), tputs(aend, 1, faddch))#endif#define	has_AM		CHECKBIOS(1, AM)#define	has_PT		CHECKBIOS(0, PT)#define	has_VB		CHECKBIOS((char *)0, VB)#define	has_UP		CHECKBIOS((char *)1, UP)#define	has_SO		CHECKBIOS((char)1, (*SO))#define	has_SE		CHECKBIOS((char)1, (*SE))#define	has_US		CHECKBIOS((char)1, (*US))#define	has_UE		CHECKBIOS((char)1, (*UE))#define	has_MD		CHECKBIOS((char)1, (*MD))#define	has_ME		CHECKBIOS((char)1, (*ME))#define	has_AS		CHECKBIOS((char)1, (*AS))#define	has_AE		CHECKBIOS((char)1, (*AE))#undef	has_CM		/* cursor move: don't need */#define	has_CB		CHECKBIOS(1, 0)#define	has_CS		CHECKBIOS(1, 0)#define	has_CE		CHECKBIOS((char *)1, CE)#define	has_CD		CHECKBIOS((char *)1, CD)#define	has_AL		CHECKBIOS((char *)1, AL)#define	has_DL		CHECKBIOS((char *)1, DL)#if OSK#define	has_SR		CHECKBIOS((char *)1, SR_)#else#define	has_SR		CHECKBIOS((char *)1, SR)#endif#define has_KS		CHECKBIOS((char)1, (*KS))#define has_KE		CHECKBIOS((char)1, (*KE))#define	has_KU		KU#define	has_KD		KD#define	has_KL		KL#define	has_KR		KR#define has_HM		HM#define has_EN		EN#define has_PU		PU#define has_PD		PD#define has_KI		KI#define	has_IM		CHECKBIOS((char)0, (*IM))#define	has_IC		CHECKBIOS((char)0, (*IC))#define	has_EI		CHECKBIOS((char)0, (*EI))#define	has_DC		CHECKBIOS((char *)0, DC)#define	has_TI		CHECKBIOS((char)0, (*TI))#define	has_TE		CHECKBIOS((char)0, (*TE))#ifndef NO_CURSORSHAPE#define has_CQ		CHECKBIOS((char *)1, CQ)#endif/* (pseudo)-Curses-functions */#ifdef lint# define _addCR		VOIDBIOS(;, (stdscr[-1] == '\n' ? qaddch('\r') : (stdscr[-1] = '\n')))#else# if OSK#  define _addCR	VOIDBIOS(;, (stdscr[-1] == '\n' ? qaddch('\l') : (stdscr[-1] = stdscr[-1])))# else#  define _addCR	VOIDBIOS(;, (stdscr[-1] == '\n' ? qaddch('\r') : 0))# endif#endif#ifdef AZTEC_C# define qaddch(ch)	CHECKBIOS(v_put(ch), (*stdscr = (ch), *stdscr++))#else#define qaddch(ch)	CHECKBIOS(v_put(ch), (*stdscr++ = (ch)))#endif#if OSK#define addch(ch)	if (qaddch(ch) == '\n') qaddch('\l'); else#else#define addch(ch)	if (qaddch(ch) == '\n') qaddch('\r'); else#endifextern void initscr();extern void endwin();extern void suspend_curses();extern void resume_curses();extern void attrset();extern void insch();extern void qaddstr();extern void wrefresh();extern void wqrefresh();#define addstr(str)	{qaddstr(str); _addCR;}#define move(y,x)	VOIDBIOS(v_move(x,y), tputs(tgoto(CM, x, y), 1, faddch))#define mvaddch(y,x,ch)	{move(y,x); addch(ch);}#define refresh()	VOIDBIOS(;, wrefresh())#define standout()	do_SO()#define standend()	do_SE()#define clrtoeol()	do_CE()#define clrtobot()	do_CD()#define insertln()	do_AL()#define deleteln()	do_DL()#define delch()		do_DC()#define scrollok(w,b)#define raw()#define echo()#define cbreak()#define noraw()#define noecho()#define nocbreak()

⌨️ 快捷键说明

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