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

📄 curses.h

📁 <B>Digital的Unix操作系统VAX 4.2源码</B>
💻 H
字号:
/* @(#)curses.h	4.1	(ULTRIX)	7/2/90	*//*	/usr/include/cursesX.h		*//************************************************************************ *									* *			Copyright (c) 1988, 1990 by			* *		Digital Equipment Corporation, Maynard, MA		* *			All rights reserved.				* *									* *   This software is furnished under a license and may be used and	* *   copied  only  in accordance with the terms of such license and	* *   with the  inclusion  of  the  above  copyright  notice.   This	* *   software  or  any  other copies thereof may not be provided or	* *   otherwise made available to any other person.  No title to and	* *   ownership of the software is hereby transferred.			* *									* *   This software is  derived  from  software  received  from  the	* *   University    of   California,   Berkeley,   and   from   Bell	* *   Laboratories.  Use, duplication, or disclosure is  subject  to	* *   restrictions  under  license  agreements  with  University  of	* *   California and with AT&T.						* *									* *   The information in this software is subject to change  without	* *   notice  and should not be construed as a commitment by Digital	* *   Equipment Corporation.						* *									* *   Digital assumes no responsibility for the use  or  reliability	* *   of its software on equipment which is not supplied by Digital.	* *									* ************************************************************************/ /****** previous copyrights ********************************************* *	Copyright (c) 1984 AT&T	*  *	  All Rights Reserved  	*  *	@(#)curses.h	1.20	(MRH)	3/16/83	*  * 5/15/81 (Berkeley) @(#)curses.h	1.8 *  * ************************************************************************//* * Modification History * * 02/07/90 GWS	replaced <sgtty.h> with <termio.h>, and replaced sgttyb with *		 termio in definition of SGTTY typedef, so cursesX will use *		 termio(4)-style terminal I/O. * */#ifndef WINDOW#  include  <stdio.h>#  include  <unctrl.h>#  include  <termio.h>typedef struct termio SGTTY;# define	bool	char# define	reg	register/* * chtype is the type used to store a character together with attributes. * It can be set to "char" to save space, or "long" to get more attributes. */# ifdef	CHTYPE	typedef	CHTYPE chtype;# else	typedef unsigned int chtype;# endif CHTYPE# define	TRUE	(1)# define	FALSE	(0)# define	ERR	(-1)# define	OK	(0)# define	_SUBWIN		01# define	_ENDLINE	02# define	_FULLWIN	04# define	_SCROLLWIN	010# define	_FLUSH		020# define	_ISPAD		040# define	_STANDOUT	0200# define	_NOCHANGE	-1struct _win_st {	short	_cury, _curx;	short	_maxy, _maxx;	short	_begy, _begx;	short	_flags;	chtype	_attrs;	bool	_clear;	bool	_leave;	bool	_scroll;	bool	_use_idl;	bool	_use_keypad;	/* 0=no, 1=yes, 2=yes/timeout */	bool	_use_meta;	/* T=use the meta key */	bool	_nodelay;	/* T=don't wait for tty input */	chtype	**_y;	short	*_firstch;	short	*_lastch;	short	_tmarg,_bmarg;};extern int	LINES, COLS;typedef struct _win_st	WINDOW;extern WINDOW	*stdscr, *curscr;extern char	*Def_term, ttytype[];typedef struct screen	SCREEN;# ifndef NOMACROS#  ifndef MINICURSES/* * psuedo functions for standard screen */# define	addch(ch)	waddch(stdscr, ch)# define	getch()		wgetch(stdscr)# define	addstr(str)	waddstr(stdscr, str)# define	getstr(str)	wgetstr(stdscr, str)# define	move(y, x)	wmove(stdscr, y, x)# define	clear()		wclear(stdscr)# define	erase()		werase(stdscr)# define	clrtobot()	wclrtobot(stdscr)# define	clrtoeol()	wclrtoeol(stdscr)# define	insertln()	winsertln(stdscr)# define	deleteln()	wdeleteln(stdscr)# define	refresh()	wrefresh(stdscr)# define	inch()		winch(stdscr)# define	insch(c)	winsch(stdscr,c)# define	delch()		wdelch(stdscr)# define	standout()	wstandout(stdscr)# define	standend()	wstandend(stdscr)# define	attron(at)	wattron(stdscr,at)# define	attroff(at)	wattroff(stdscr,at)# define	attrset(at)	wattrset(stdscr,at)# define	setscrreg(t,b)	wsetscrreg(stdscr, t, b)# define	wsetscrreg(win,t,b)	(win->_tmarg=(t),win->_bmarg=(b))/* * mv functions */#define	mvwaddch(win,y,x,ch)	(wmove(win,y,x)==ERR?ERR:waddch(win,ch))#define	mvwgetch(win,y,x)	(wmove(win,y,x)==ERR?ERR:wgetch(win))#define	mvwaddstr(win,y,x,str)	(wmove(win,y,x)==ERR?ERR:waddstr(win,str))#define	mvwgetstr(win,y,x,str)	(wmove(win,y,x)==ERR?ERR:wgetstr(win,str))#define	mvwinch(win,y,x)	(wmove(win,y,x)==ERR?ERR:winch(win))#define	mvwdelch(win,y,x)	(wmove(win,y,x)==ERR?ERR:wdelch(win))#define	mvwinsch(win,y,x,c)	(wmove(win,y,x)==ERR?ERR:winsch(win,c))#define	mvaddch(y,x,ch)		mvwaddch(stdscr,y,x,ch)#define	mvgetch(y,x)		mvwgetch(stdscr,y,x)#define	mvaddstr(y,x,str)	mvwaddstr(stdscr,y,x,str)#define	mvgetstr(y,x,str)	mvwgetstr(stdscr,y,x,str)#define	mvinch(y,x)		mvwinch(stdscr,y,x)#define	mvdelch(y,x)		mvwdelch(stdscr,y,x)#define	mvinsch(y,x,c)		mvwinsch(stdscr,y,x,c)#  else MINICURSES# define	addch(ch)		m_addch(ch)# define	addstr(str)		m_addstr(str)# define	move(y, x)		m_move(y, x)# define	clear()			m_clear()# define	erase()			m_erase()# define	refresh()		m_refresh()# define	standout()		wstandout(stdscr)# define	standend()		wstandend(stdscr)# define	attron(at)		wattron(stdscr,at)# define	attroff(at)		wattroff(stdscr,at)# define	attrset(at)		wattrset(stdscr,at)# define	mvaddch(y,x,ch)		move(y, x), addch(ch)# define	mvaddstr(y,x,str)	move(y, x), addstr(str)# define	initscr			m_initscr# define	newterm			m_newterm/* * These functions don't exist in minicurses, so we define them * to nonexistent functions to help the user catch the error. */#define	getch		m_getch#define	getstr		m_getstr#define	clrtobot	m_clrtobot#define	clrtoeol	m_clrtoeol#define	insertln	m_insertln#define	deleteln	m_deleteln#define	inch		m_inch#define	insch		m_insch#define	delch		m_delch/* mv functions that aren't valid */#define	mvwaddch	m_mvwaddch#define	mvwgetch	m_mvwgetch#define	mvwaddstr	m_mvaddstr#define	mvwgetstr	m_mvwgetstr#define	mvwinch		m_mvwinch#define	mvwdelch	m_mvwdelch#define	mvwinsch	m_mvwinsch#define	mvgetch		m_mvwgetch#define	mvgetstr	m_mvwgetstr#define	mvinch		m_mvwinch#define	mvdelch		m_mvwdelch#define	mvinsch		m_mvwinsch/* Real functions that aren't valid */#define box		m_box#define delwin		m_delwin#define longname	m_longname#define makenew		m_makenew#define mvprintw	m_mvprintw#define mvscanw		m_mvscanw#define mvwin		m_mvwin#define mvwprintw	m_mvwprintw#define mvwscanw	m_mvwscanw#define newwin		m_newwin#define _outchar		m_outchar#define overlay		m_overlay#define overwrite	m_overwrite#define printw		m_printw#define putp		m_putp#define scanw		m_scanw#define scroll		m_scroll#define subwin		m_subwin#define touchwin	m_touchwin#define _tscroll		m_tscroll#define _tstp		m_tstp#define vidattr		m_vidattr#define waddch		m_waddch#define waddstr		m_waddstr#define wclear		m_wclear#define wclrtobot	m_wclrtobot#define wclrtoeol	m_wclrtoeol#define wdelch		m_wdelch#define wdeleteln	m_wdeleteln#define werase		m_werase#define wgetch		m_wgetch#define wgetstr		m_wgetstr#define winsch		m_winsch#define winsertln	m_winsertln#define wmove		m_wmove#define wprintw		m_wprintw#define wrefresh	m_wrefresh#define wscanw		m_wscanw#define setscrreg	m_setscrreg#define wsetscrreg	m_wsetscrreg#  endif MINICURSES/* * psuedo functions */#define	getyx(win,y,x)	 y = win->_cury, x = win->_curx#define	winch(win)	 (win->_y[win->_cury][win->_curx])WINDOW	*initscr(), *newwin(), *subwin(), *newpad();char	*longname();char	erasechar(), killchar();int	wgetch();	/* because it can return KEY_*, for instance. */SCREEN	*newterm();/* Various video attributes */#define A_STANDOUT	0x00010000#define A_UNDERLINE	0x00020000#define A_REVERSE	0x00040000#define A_BLINK		0x00080000#define A_DIM		0x00100000#define A_BOLD		0x00200000/* The next three are subject to change so don't depend on them */#define A_INVIS		0x00400000#define A_PROTECT	0x00800000#define A_ALTCHARSET	0x01000000#define A_NORMAL	0x00000000#define A_ATTRIBUTES	0xFFFF0000#define A_CHARTEXT	0x0000FFFF/* Funny "characters" enabled for various special function keys for input */#define KEY_BREAK	0401		/* break key (unreliable) */#define KEY_DOWN	0402		/* The four arrow keys ... */#define KEY_UP		0403#define KEY_LEFT	0404#define KEY_RIGHT	0405		/* ... */#define KEY_HOME	0406		/* Home key (upward+left arrow) */#define KEY_BACKSPACE	0407		/* backspace (unreliable) */#define KEY_F0		0410		/* Function keys.  Space for 64 */#define KEY_F(n)	(KEY_F0+(n))	/* keys is reserved. */#define KEY_DL		0510		/* Delete line */#define KEY_IL		0511		/* Insert line */#define KEY_DC		0512		/* Delete character */#define KEY_IC		0513		/* Insert char or enter insert mode */#define KEY_EIC		0514		/* Exit insert char mode */#define KEY_CLEAR	0515		/* Clear screen */#define KEY_EOS		0516		/* Clear to end of screen */#define KEY_EOL		0517		/* Clear to end of line */#define KEY_SF		0520		/* Scroll 1 line forward */#define KEY_SR		0521		/* Scroll 1 line backwards (reverse) */#define KEY_NPAGE	0522		/* Next page */#define KEY_PPAGE	0523		/* Previous page */#define KEY_STAB	0524		/* Set tab */#define KEY_CTAB	0525		/* Clear tab */#define KEY_CATAB	0526		/* Clear all tabs */#define KEY_ENTER	0527		/* Enter or send (unreliable) */#define KEY_SRESET	0530		/* soft (partial) reset (unreliable) */#define KEY_RESET	0531		/* reset or hard reset (unreliable) */#define KEY_PRINT	0532		/* print or copy */#define KEY_LL		0533		/* home down or bottom (lower left) */					/* The keypad is arranged like this: */					/*    a1    up    a3   */					/*   left   b2  right  */					/*    c1   down   c3   */#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 */# endif NOMACROS#endif WINDOW

⌨️ 快捷键说明

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