/* * CDDL HEADER START * * The contents of this file are subject to the terms of the * Common Development and Distribution License, Version 1.0 only * (the "License"). You may not use this file except in compliance * with the License. * * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE * or http://www.opensolaris.org/os/licensing. * See the License for the specific language governing permissions * and limitations under the License. * * When distributing Covered Code, include this CDDL HEADER in each * file and include the License file at usr/src/OPENSOLARIS.LICENSE. * If applicable, add the following below this CDDL HEADER, with the * fields enclosed by brackets "[]" replaced with your own identifying * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END */ /* * Copyright 2004 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* * curses.h * * XCurses Library * * Copyright 1990, 1995 by Mortice Kern Systems Inc. All rights reserved. * */ #ifndef __M_CURSES_H__ #define __M_CURSES_H__ #define _XOPEN_CURSES #include #include #include #include #ifndef EOF #define EOF (-1) #endif #ifndef WEOF #define WEOF (-1) #endif /* * Not all are created equal. */ #ifndef _MBSTATE_T #define _MBSTATE_T typedef int mbstate_t; #endif #define ERR EOF #define OK 0 #if !(defined(__cplusplus) && defined(_BOOL)) typedef short bool; #endif #define TRUE 1 #define FALSE 0 typedef unsigned short attr_t; /* * These attributes and masks can be applied to an attr_t. * These are ordered according to the mask, * which has been extended to include additional attributes. */ #define WA_NORMAL 0x0 #define WA_STANDOUT 0x0001 #define WA_UNDERLINE 0x0002 #define WA_REVERSE 0x0004 #define WA_BLINK 0x0008 #define WA_DIM 0x0010 #define WA_BOLD 0x0020 #define WA_INVIS 0x0040 #define WA_PROTECT 0x0080 #define WA_ALTCHARSET 0x0100 #define WA_HORIZONTAL 0x0200 #define WA_LEFT 0x0400 #define WA_LOW 0x0800 #define WA_RIGHT 0x1000 #define WA_TOP 0x2000 #define WA_VERTICAL 0x4000 #define WA_SGR_MASK 0x01ff /* Historical attribute set. */ #define WA_SGR1_MASK 0x7e00 /* Extended attribute set. */ /* * Internal attribute used to support . */ #define WA_COOKIE 0x8000 /* * Color names. */ #define COLOR_BLACK 0 #define COLOR_BLUE 1 #define COLOR_GREEN 2 #define COLOR_CYAN 3 #define COLOR_RED 4 #define COLOR_MAGENTA 5 #define COLOR_YELLOW 6 #define COLOR_WHITE 7 /* * A cchar_t details the attributes, color, and a string of wide characters * composing a complex character (p12). The wide character string consists * of a spacing character (wcwidth() > 0) and zero or more non-spacing * characters. Xcurses (p17) states that the minimum number of non-spacing * characters associated with a spacing character must be at least 5, if a * limit is imposed. */ #define M_CCHAR_MAX 6 /*** *** Opaque data type. Keep your grubby mits off. ***/ typedef struct { short _f; /* True if start of character. */ short _n; /* Number of elements in wc[]. */ short _co; /* Color pair number. */ attr_t _at; /* Attribute flags. */ wchar_t _wc[M_CCHAR_MAX]; /* Complex spacing character. */ } cchar_t; /*** *** Opaque data type. Keep your grubby mits off. ***/ typedef struct window_t { cchar_t _bg; /* Background. */ cchar_t _fg; /* Foreground, ignore character. */ short _cury, _curx; /* Curent cursor position in window. */ short _begy, _begx; /* Upper-left origin on screen. */ short _maxy, _maxx; /* Window dimensions. */ short _top, _bottom; /* Window's software scroll region. */ short _refy, _refx; /* Pad origin of last refresh. */ short _sminy, _sminx; /* T-L screen corner of last refresh. */ short _smaxy, _smaxx; /* B-R screen corner of last refresh. */ short _vmin, _vtime; /* wtimeout() control. */ short *_first, *_last; /* Dirty region for each screen line. */ unsigned short _flags; /* Internal flags for the window. */ unsigned short _scroll; /* Internal for scroll optimization. */ cchar_t **_line; cchar_t *_base; /* Block of M*N screen cells. */ struct window_t *_parent; /* Parent of sub-window. */ } WINDOW; /*** *** Opaque data type. Keep your grubby mits off. ***/ typedef struct { int _kfd; /* typeahead() file descriptor. */ FILE *_if, *_of; /* I/O file pointers. */ TERMINAL *_term; /* Associated terminfo entry. */ WINDOW *_newscr; /* New screen image built by wnoutrefresh(). */ WINDOW *_curscr; /* Current screen image after doupdate(). */ mbstate_t _state; /* Current multibyte state of _of. */ unsigned long *_hash; /* Hash values for curscr's screen lines. */ unsigned short _flags; /* Assorted flags. */ void *_decode; /* Function key decode tree. */ void *_in; /* Wide I/O object. */ struct { int _size; /* Allocated size of the input stack. */ int _count; /* Number of entries on the input stack. */ int *_stack; /* Buffer used for the input stack. */ } _unget; struct { WINDOW *_w; /* Exists on if emulating soft label keys. */ char *_labels[8]; /* Soft label key strings. */ short _justify[8]; /* Justification for label. */ } _slk; } SCREEN; #ifndef __M_UNCTRL_H__ /* * Backwards compatiblity with historical Curses applications. */ typedef unsigned long chtype; #endif /* * These attributes and masks can be applied to a chtype. * They are order according to the mask. */ #define A_NORMAL 0x00000000L #define A_ATTRIBUTES 0xffff0000L /* Color/Attribute mask */ #define A_CHARTEXT 0x0000ffffL /* 16-bit character mask */ #define A_COLOR 0xfe000000L /* Colour mask, see __COLOR_SHIFT */ #define A_STANDOUT 0x00010000L #define A_UNDERLINE 0x00020000L #define A_REVERSE 0x00040000L #define A_BLINK 0x00080000L #define A_DIM 0x00100000L #define A_BOLD 0x00200000L #define A_INVIS 0x00400000L #define A_PROTECT 0x00800000L #define A_ALTCHARSET 0x01000000L /* * Colour atttribute support for chtype. */ #define __COLOR_SHIFT 26 /* * Characters constants used with a chtype. * Mapping defined in Xcurses Section 6.2.12 (p260). */ #define ACS_VLINE (A_ALTCHARSET | 'x') #define ACS_HLINE (A_ALTCHARSET | 'q') #define ACS_ULCORNER (A_ALTCHARSET | 'l') #define ACS_URCORNER (A_ALTCHARSET | 'k') #define ACS_LLCORNER (A_ALTCHARSET | 'm') #define ACS_LRCORNER (A_ALTCHARSET | 'j') #define ACS_RTEE (A_ALTCHARSET | 'u') #define ACS_LTEE (A_ALTCHARSET | 't') #define ACS_BTEE (A_ALTCHARSET | 'v') #define ACS_TTEE (A_ALTCHARSET | 'w') #define ACS_PLUS (A_ALTCHARSET | 'n') #define ACS_S1 (A_ALTCHARSET | 'o') #define ACS_S9 (A_ALTCHARSET | 's') #define ACS_DIAMOND (A_ALTCHARSET | '`') #define ACS_CKBOARD (A_ALTCHARSET | 'a') #define ACS_DEGREE (A_ALTCHARSET | 'f') #define ACS_PLMINUS (A_ALTCHARSET | 'g') #define ACS_BULLET (A_ALTCHARSET | '~') #define ACS_LARROW (A_ALTCHARSET | ',') #define ACS_RARROW (A_ALTCHARSET | '+') #define ACS_DARROW (A_ALTCHARSET | '.') #define ACS_UARROW (A_ALTCHARSET | '-') #define ACS_BOARD (A_ALTCHARSET | 'h') #define ACS_LANTERN (A_ALTCHARSET | 'I') #define ACS_BLOCK (A_ALTCHARSET | '0') #ifndef _XOPEN_SOURCE /* * MKS Extensions for double width box characters. */ #define ACS_DVLINE ACS_VLINE #define ACS_DHLINE ACS_HLINE #define ACS_DULCORNER ACS_ULCORNER #define ACS_DURCORNER ACS_URCORNER #define ACS_DLLCORNER ACS_LLCORNER #define ACS_DLRCORNER ACS_LRCORNER #define ACS_DRTEE ACS_RTEE #define ACS_DLTEE ACS_LTEE #define ACS_DBTEE ACS_BTEE #define ACS_DTTEE ACS_TTEE #endif /* _XOPEN_SOURCE */ /* * Wide characters constants for a cchar_t. */ extern const cchar_t __WACS_VLINE; extern const cchar_t __WACS_HLINE; extern const cchar_t __WACS_ULCORNER; extern const cchar_t __WACS_URCORNER; extern const cchar_t __WACS_LLCORNER; extern const cchar_t __WACS_LRCORNER; extern const cchar_t __WACS_RTEE; extern const cchar_t __WACS_LTEE; extern const cchar_t __WACS_BTEE; extern const cchar_t __WACS_TTEE; extern const cchar_t __WACS_PLUS; extern const cchar_t __WACS_S1; extern const cchar_t __WACS_S9; extern const cchar_t __WACS_DIAMOND; extern const cchar_t __WACS_CKBOARD; extern const cchar_t __WACS_DEGREE; extern const cchar_t __WACS_PLMINUS; extern const cchar_t __WACS_BULLET; extern const cchar_t __WACS_LARROW; extern const cchar_t __WACS_RARROW; extern const cchar_t __WACS_DARROW; extern const cchar_t __WACS_UARROW; extern const cchar_t __WACS_BOARD; extern const cchar_t __WACS_LANTERN; extern const cchar_t __WACS_BLOCK; #define WACS_VLINE &__WACS_VLINE #define WACS_HLINE &__WACS_HLINE #define WACS_ULCORNER &__WACS_ULCORNER #define WACS_URCORNER &__WACS_URCORNER #define WACS_LLCORNER &__WACS_LLCORNER #define WACS_LRCORNER &__WACS_LRCORNER #define WACS_RTEE &__WACS_RTEE #define WACS_LTEE &__WACS_LTEE #define WACS_BTEE &__WACS_BTEE #define WACS_TTEE &__WACS_TTEE #define WACS_PLUS &__WACS_PLUS #define WACS_S1 &__WACS_S1 #define WACS_S9 &__WACS_S9 #define WACS_DIAMOND &__WACS_DIAMOND #define WACS_CKBOARD &__WACS_CKBOARD #define WACS_DEGREE &__WACS_DEGREE #define WACS_PLMINUS &__WACS_PLMINUS #define WACS_BULLET &__WACS_BULLET #define WACS_LARROW &__WACS_LARROW #define WACS_RARROW &__WACS_RARROW #define WACS_DARROW &__WACS_DARROW #define WACS_UARROW &__WACS_UARROW #define WACS_BOARD &__WACS_BOARD #define WACS_LANTERN &__WACS_LANTERN #define WACS_BLOCK &__WACS_BLOCK #ifndef _XOPEN_SOURCE /* * MKS Extensions for double width box characters. */ #define WACS_DVLINE WACS_VLINE #define WACS_DHLINE WACS_HLINE #define WACS_DULCORNER WACS_ULCORNER #define WACS_DURCORNER WACS_URCORNER #define WACS_DLLCORNER WACS_LLCORNER #define WACS_DLRCORNER WACS_LRCORNER #define WACS_DRTEE WACS_RTEE #define WACS_DLTEE WACS_LTEE #define WACS_DBTEE WACS_BTEE #define WACS_DTTEE WACS_TTEE #endif /* _XOPEN_SOURCE */ /* * Internal functions. */ extern int __m_outc(int); extern int __m_tty_wc(int, wchar_t *); extern int __m_chtype_cc(chtype, cchar_t *); extern chtype __m_cc_chtype(const cchar_t *); extern int __m_copywin(const WINDOW *, WINDOW *, int); extern WINDOW *__m_newwin(WINDOW *, int, int, int, int); /* * Internal macros. */ #define __m_getpary(w) ((w)->_parent == (WINDOW *) 0 ? -1 \ : (w)->_begy - (w)->_parent->_begy) #define __m_getparx(w) ((w)->_parent == (WINDOW *) 0 ? -1 \ : (w)->_begx - (w)->_parent->_begx) /* * Global Window Macros */ #define getyx(w,y,x) (y = (w)->_cury, x = (w)->_curx) #define getbegyx(w,y,x) (y = (w)->_begy, x = (w)->_begx) #define getmaxyx(w,y,x) (y = (w)->_maxy, x = (w)->_maxx) #define getparyx(w,y,x) (y = __m_getpary(w), x = __m_getparx(w)) /* * Global variables */ extern int LINES, COLS; extern int COLORS, COLOR_PAIRS; extern WINDOW *curscr, *stdscr; #ifndef _XOPEN_SOURCE /* * Non-portable extension functions. */ extern int wistombs(char *, const wint_t *, int); extern int wistowcs(wchar_t *, const wint_t *, int); #endif /* _XOPEN_SOURCE */ #ifdef M_CURSES_TRACE /* * Curses trace facility is only available with a version of * the library that was compiled with -DM_CURSES_TRACE. */ extern void traceoff(void); extern void traceon(void); #endif /* M_CURSES_TRACE */ extern int addch(chtype); extern int addchnstr(const chtype *, int); extern int addchstr(const chtype *); extern int add_wch(const cchar_t *); extern int add_wchnstr(const cchar_t *, int); extern int add_wchstr(const cchar_t *); extern int mvaddch(int, int, chtype); extern int mvaddchnstr(int, int, const chtype *, int); extern int mvaddchstr(int, int, const chtype *); extern int mvadd_wch(int, int, const cchar_t *); extern int mvadd_wchnstr(int, int, const cchar_t *, int); extern int mvadd_wchstr(int, int, const cchar_t *); extern int mvwaddch(WINDOW *, int, int, chtype); extern int mvwaddchnstr(WINDOW *, int, int, const chtype *, int); extern int mvwaddchstr(WINDOW *, int, int, const chtype *); extern int mvwadd_wch(WINDOW *, int, int, const cchar_t *); extern int mvwadd_wchnstr(WINDOW *, int, int, const cchar_t *, int); extern int mvwadd_wchstr(WINDOW *, int, int, const cchar_t *); extern int waddch(WINDOW *, chtype); extern int waddchnstr(WINDOW *, const chtype *, int); extern int waddchstr(WINDOW *, const chtype *); extern int wadd_wch(WINDOW *, const cchar_t *); extern int wadd_wchnstr(WINDOW *, const cchar_t *, int); extern int wadd_wchstr(WINDOW *, const cchar_t *); extern int addnstr(const char *, int); extern int addstr(const char *); extern int addnwstr(const wchar_t *, int); extern int addwstr(const wchar_t *); extern int mvaddnstr(int, int, const char *, int); extern int mvaddstr(int, int, const char *); extern int mvaddnwstr(int, int, const wchar_t *, int); extern int mvaddwstr(int, int, const wchar_t *); extern int mvwaddnstr(WINDOW *, int, int, const char *, int); extern int mvwaddstr(WINDOW *, int, int, const char *); extern int mvwaddnwstr(WINDOW *, int, int, const wchar_t *, int); extern int mvwaddwstr(WINDOW *, int, int, const wchar_t *); extern int waddnstr(WINDOW *, const char *, int); extern int waddstr(WINDOW *, const char *); extern int waddnwstr(WINDOW *, const wchar_t *, int); extern int waddwstr(WINDOW *, const wchar_t *); extern int attroff(int); extern int attron(int); extern int attrset(int); extern int wattroff(WINDOW *, int); extern int wattron(WINDOW *, int); extern int wattrset(WINDOW *, int); extern int attr_get(attr_t *, short *, void *); extern int attr_off(attr_t, void *); extern int attr_on(attr_t, void *); extern int attr_set(attr_t, short, void *); extern int color_set(short, void *); extern int wattr_get(WINDOW *, attr_t *, short *, void *); extern int wattr_off(WINDOW *, attr_t, void *); extern int wattr_on(WINDOW *, attr_t, void *); extern int wattr_set(WINDOW *, attr_t, short, void *); extern int wcolor_set(WINDOW *, short, void *); extern chtype COLOR_PAIR(short); extern short PAIR_NUMBER(chtype); extern int baudrate(void); extern int delay_output(int); extern int napms(int); extern int beep(void); extern int flash(void); extern int bkgd(chtype); extern int bkgdset(chtype); extern chtype getbkgd(WINDOW *); extern int wbkgd(WINDOW *, chtype); extern int wbkgdset(WINDOW *, chtype); extern int bkgrnd(const cchar_t *); extern void bkgrndset(const cchar_t *); extern int getbkgrnd(cchar_t *); extern int wbkgrnd(WINDOW *, const cchar_t *); extern void wbkgrndset(WINDOW *, const cchar_t *); extern int wgetbkgrnd(WINDOW *, cchar_t *); extern int border( chtype, chtype, chtype, chtype, chtype, chtype, chtype, chtype); extern int border_set( const cchar_t *, const cchar_t *, const cchar_t *, const cchar_t *, const cchar_t *, const cchar_t *, const cchar_t *, const cchar_t *); extern int box(WINDOW *, chtype, chtype); extern int box_set(WINDOW *, const cchar_t *, const cchar_t *); extern int wborder( WINDOW *, chtype, chtype, chtype, chtype, chtype, chtype, chtype, chtype); extern int wborder_set( WINDOW *, const cchar_t *, const cchar_t *, const cchar_t *, const cchar_t *, const cchar_t *, const cchar_t *, const cchar_t *, const cchar_t *); extern bool can_change_color(void); extern int color_content(short, short *, short *, short *); extern bool has_colors(void); extern int init_color(short, short, short, short); extern int init_pair(short, short, short); extern int pair_content(short, short *, short *); extern int start_color(void); extern int cbreak(void); extern int halfdelay(int); extern int nocbreak(void); extern int raw(void); extern int noraw(void); extern int chgat(int, attr_t, short, const void *); extern int mvchgat(int, int, int, attr_t, short, const void *); extern int mvwchgat(WINDOW *, int, int, int, attr_t, short, const void *); extern int wchgat(WINDOW *, int, attr_t, short, const void *); extern int clear(void); extern int clrtobot(void); extern int clrtoeol(void); extern int erase(void); extern int wclear(WINDOW *); extern int wclrtobot(WINDOW *); extern int wclrtoeol(WINDOW *); extern int werase(WINDOW *); extern int clearok(WINDOW *, bool); extern void idcok(WINDOW *, bool); extern int idlok(WINDOW *, bool); extern void immedok(WINDOW *, bool); extern int intrflush(WINDOW *, bool); extern int keypad(WINDOW *, bool); extern int leaveok(WINDOW *, bool); extern int meta(WINDOW *, bool); extern int nodelay(WINDOW *, bool); extern int notimeout(WINDOW *, bool); extern int scrollok(WINDOW *, bool); extern int syncok(WINDOW *, bool); extern int copywin(const WINDOW *, WINDOW *, int, int, int, int, int, int, int); extern int overlay(const WINDOW *, WINDOW *); extern int overwrite(const WINDOW *, WINDOW *); extern int curs_set(int); extern int def_prog_mode(void); extern int def_shell_mode(void); extern int reset_prog_mode(void); extern int reset_shell_mode(void); extern int delch(void); extern int mvdelch(int, int); extern int mvwdelch(WINDOW *, int, int); extern int wdelch(WINDOW *); extern int deleteln(void); extern int insdelln(int); extern int insertln(void); extern int wdeleteln(WINDOW *); extern int winsdelln(WINDOW *, int); extern int winsertln(WINDOW *); extern void delscreen(SCREEN *); extern SCREEN *newterm(char *, FILE *, FILE *); extern SCREEN *set_term(SCREEN *); extern int delwin(WINDOW *); extern WINDOW *derwin(WINDOW *, int, int, int, int); extern WINDOW *dupwin(WINDOW *); extern WINDOW *getwin(FILE *); extern int mvwin(WINDOW *, int, int); extern int mvderwin(WINDOW *, int, int); extern WINDOW *newwin(int, int, int, int); extern int putwin(WINDOW *, FILE *); extern int redrawwin(WINDOW *); extern WINDOW *subwin(WINDOW *, int, int, int, int); extern int wredrawln(WINDOW *, int, int); extern int doupdate(void); extern int refresh(void); extern int wnoutrefresh(WINDOW *); extern int wrefresh(WINDOW *); extern int echo(void); extern int noecho(void); extern int echochar(chtype); extern int echo_wchar(const cchar_t *); extern int wechochar(WINDOW *, chtype); extern int wecho_wchar(WINDOW *, const cchar_t *); extern int endwin(void); extern void filter(void); extern WINDOW *initscr(void); extern bool isendwin(void); extern int ripoffline(int, int (*)(WINDOW *, int)); extern int typeahead(int); extern void use_env(bool); extern int erasechar(void); extern int erasewchar(wchar_t *); extern int killchar(void); extern int killwchar(wchar_t *); extern int flushinp(void); extern int getcchar(const cchar_t *, wchar_t *, attr_t *, short *, void *); extern int setcchar(cchar_t *, const wchar_t *, attr_t, short, const void *); extern int getch(void); extern int get_wch(wint_t *); extern int mvgetch(int, int); extern int mvget_wch(int, int, wint_t *); extern int mvwgetch(WINDOW *, int, int); extern int mvwget_wch(WINDOW *, int, int, wint_t *); extern int wgetch(WINDOW *); extern int wget_wch(WINDOW *, wint_t *); extern int getnstr(char *, int); extern int getstr(char *); extern int mvgetnstr(int, int, char *, int); extern int mvgetstr(int, int, char *); extern int mvwgetnstr(WINDOW *, int, int, char *, int); extern int mvwgetstr(WINDOW *, int, int, char *); extern int wgetnstr(WINDOW *, char *, int); extern int wgetstr(WINDOW *, char *); extern int getn_wstr(wint_t *, int); extern int get_wstr(wint_t *); extern int mvgetn_wstr(int, int, wint_t *, int); extern int mvget_wstr(int, int, wint_t *); extern int mvwgetn_wstr(WINDOW *, int, int, wint_t *, int); extern int mvwget_wstr(WINDOW *, int, int, wint_t *); extern int wgetn_wstr(WINDOW *, wint_t *, int); extern int wget_wstr(WINDOW *, wint_t *); extern bool has_ic(void); extern bool has_il(void); extern int hline(chtype, int); extern int hline_set(const cchar_t *, int); extern int vline(chtype, int); extern int vline_set(const cchar_t *, int); extern int mvhline(int, int, chtype, int); extern int mvhline_set(int, int, const cchar_t *, int); extern int mvvline(int, int, chtype, int); extern int mvvline_set(int, int, const cchar_t *, int); extern int mvwhline(WINDOW *, int, int, chtype, int); extern int mvwhline_set(WINDOW *, int, int, const cchar_t *, int); extern int mvwvline(WINDOW *, int, int, chtype, int); extern int mvwvline_set(WINDOW *, int, int, const cchar_t *, int); extern int whline(WINDOW *, chtype, int); extern int whline_set(WINDOW *, const cchar_t *, int); extern int wvline(WINDOW *, chtype, int); extern int wvline_set(WINDOW *, const cchar_t *, int); extern chtype inch(void); extern int inchnstr(chtype *, int); extern int inchstr(chtype *); extern int in_wch(cchar_t *); extern int in_wchnstr(cchar_t *, int); extern int in_wchstr(cchar_t *); extern chtype mvinch(int, int); extern int mvinchnstr(int, int, chtype *, int); extern int mvinchstr(int, int, chtype *); extern int mvin_wch(int, int, cchar_t *); extern int mvin_wchnstr(int, int, cchar_t *, int); extern int mvin_wchstr(int, int, cchar_t *); extern chtype mvwinch(WINDOW *, int, int); extern int mvwinchnstr(WINDOW *, int, int, chtype *, int); extern int mvwinchstr(WINDOW *, int, int, chtype *); extern int mvwin_wch(WINDOW *, int, int, cchar_t *); extern int mvwin_wchnstr(WINDOW *, int, int, cchar_t *, int); extern int mvwin_wchstr(WINDOW *, int, int, cchar_t *); extern chtype winch(WINDOW *); extern int winchnstr(WINDOW *, chtype *, int); extern int winchstr(WINDOW *, chtype *); extern int win_wch(WINDOW *, cchar_t *); extern int win_wchnstr(WINDOW *, cchar_t *, int); extern int win_wchstr(WINDOW *, cchar_t *); extern int innstr(char *, int); extern int instr(char *); extern int innwstr(wchar_t *, int); extern int inwstr(wchar_t *); extern int mvinnstr(int, int, char *, int); extern int mvinstr(int, int, char *); extern int mvinnwstr(int, int, wchar_t *, int); extern int mvinwstr(int, int, wchar_t *); extern int mvwinnstr(WINDOW *, int, int, char *, int); extern int mvwinstr(WINDOW *, int, int, char *); extern int mvwinnwstr(WINDOW *, int, int, wchar_t *, int); extern int mvwinwstr(WINDOW *, int, int, wchar_t *); extern int winnstr(WINDOW *, char *, int); extern int winstr(WINDOW *, char *); extern int winnwstr(WINDOW *, wchar_t *, int); extern int winwstr(WINDOW *, wchar_t *); extern int insch(chtype); extern int ins_wch(const cchar_t *); extern int mvinsch(int, int, chtype); extern int mvins_wch(int, int, const cchar_t *); extern int mvwinsch(WINDOW *, int, int, chtype); extern int mvwins_wch(WINDOW *, int, int, const cchar_t *); extern int winsch(WINDOW *, chtype); extern int wins_wch(WINDOW *, const cchar_t *); extern int insnstr(const char *, int); extern int insstr(const char *); extern int ins_nwstr(const wchar_t *, int); extern int ins_wstr(const wchar_t *); extern int mvinsnstr(int, int, const char *, int); extern int mvinsstr(int, int, const char *); extern int mvins_nwstr(int, int, const wchar_t *, int); extern int mvins_wstr(int, int, const wchar_t *); extern int mvwinsnstr(WINDOW *, int, int, const char *, int); extern int mvwinsstr(WINDOW *, int, int, const char *); extern int mvwins_nwstr(WINDOW *, int, int, const wchar_t *, int); extern int mvwins_wstr(WINDOW *, int, int, const wchar_t *); extern int winsnstr(WINDOW *, const char *, int); extern int winsstr(WINDOW *, const char *); extern int wins_nwstr(WINDOW *, const wchar_t *, int); extern int wins_wstr(WINDOW *, const wchar_t *); extern bool is_linetouched(WINDOW *, int); extern bool is_wintouched(WINDOW *); extern int touchline(WINDOW *, int, int); extern int touchwin(WINDOW *); extern int wtouchln(WINDOW *, int, int, int); extern int untouchwin(WINDOW *); extern const char *keyname(int); extern const char *key_name(wchar_t); extern char *longname(void); extern char *termname(void); extern int move(int, int); extern int wmove(WINDOW *, int, int); extern int mvcur(int, int, int, int); extern WINDOW *newpad(int, int); extern int pechochar(WINDOW *, chtype); extern int pecho_wchar(WINDOW *, const cchar_t *); extern int pnoutrefresh(WINDOW *, int, int, int, int, int, int); extern int prefresh(WINDOW *, int, int, int, int, int, int); extern WINDOW *subpad(WINDOW *, int, int, int, int); extern int nl(void); extern int nonl(void); extern int printw(const char *, ...); extern int mvprintw(int, int, const char *, ...); extern int mvwprintw(WINDOW *, int, int, const char *, ...); #if defined(sun) extern int vwprintw(WINDOW *, const char *, __va_list); extern int vw_printw(WINDOW *, const char *, __va_list); #else extern int vwprintw(WINDOW *, const char *, void *); extern int vw_printw(WINDOW *, const char *, void *); #endif extern int wprintw(WINDOW *, const char *, ...); extern void qiflush(void); extern void noqiflush(void); extern int resetty(void); extern int savetty(void); extern int scanw(const char *, ...); extern int mvscanw(int, int, const char *, ...); extern int mvwscanw(WINDOW *, int, int, const char *, ...); #if defined(sun) extern int vwscanw(WINDOW *, const char *, __va_list); extern int vw_scanw(WINDOW *, const char *, __va_list); #else extern int vwscanw(WINDOW *, const char *, void *); extern int vw_scanw(WINDOW *, const char *, void *); #endif extern int wscanw(WINDOW *, const char *, ...); extern int scr_dump(const char *); extern int scr_init(const char *); extern int scr_restore(const char *); extern int scr_set(const char *); extern int scrl(int); extern int scroll(WINDOW *); extern int setscrreg(int, int); extern int wscrl(WINDOW *, int); extern int wsetscrreg(WINDOW *, int, int); extern int slk_attroff(const chtype); extern int slk_attron(const chtype); extern int slk_attrset(const chtype); extern int slk_attr_off(const attr_t, void *); extern int slk_attr_on(const attr_t, void *); extern int slk_attr_set(const attr_t, short, void *); extern int slk_color_set(short); extern int slk_clear(void); extern int slk_init(int); extern char *slk_label(int); extern int slk_noutrefresh(void); extern int slk_refresh(void); extern int slk_restore(void); extern int slk_set(int, const char *, int); extern int slk_touch(void); extern int slk_wset(int, const wchar_t *, int); extern int standend(void); extern int wstandend(WINDOW *); extern int standout(void); extern int wstandout(WINDOW *); extern chtype termattrs(void); extern attr_t term_attrs(void); extern void timeout(int); extern void wtimeout(WINDOW *, int); extern int ungetch(int); extern int unget_wch(const wchar_t); extern int vidattr(chtype); extern int vid_attr(attr_t, short, void *); extern int vidputs(chtype, int (*)(int)); extern int vid_puts(attr_t, short, void *, int (*)(int)); extern void wcursyncup(WINDOW *); extern void wsyncdown(WINDOW *); extern void wsyncup(WINDOW *); extern const wchar_t *wunctrl(const cchar_t *); /* * These macros are not suitable for strict XPG4 conformance, * because some of them evaluate their arguments more than once. * However, they can improve speed and size of an application, * provided an application is careful about not using side effects * with function/macro parameters. */ #ifndef _XOPEN_SOURCE_EXTENDED #define addch(ch) waddch(stdscr,ch) #define mvaddch(y,x,ch) (move(y,x)?ERR:addch(ch)) #define mvwaddch(w,y,x,ch) (wmove(w,y,x)?ERR:waddch(w,ch)) #define add_wch(cp) wadd_wch(stdscr,cp) #define mvadd_wch(y,x,cp) (move(y,x)?ERR:add_wch(cp)) #define mvwadd_wch(w,y,x,cp) (wmove(w,y,x)?ERR:wadd_wch(w,cp)) #define addchnstr(chs,n) waddchnstr(stdscr,chs,n) #define addchstr(chs) waddchstr(stdscr,chs) #define mvaddchnstr(y,x,chs,n) (move(y,x)?ERR:addchnstr(chs,n)) #define mvaddchstr(y,x,chs) (move(y,x)?ERR:addchstr(chs)) #define mvwaddchnstr(w,y,x,chs,n) (wmove(w,y,x)?ERR:waddchnstr(w,chs,n)) #define mvwaddchstr(w,y,x,chs) (wmove(w,y,x)?ERR:waddchstr(w,chs)) #define waddchstr(w,chs) waddchnstr(w,chs,-1) #define add_wchnstr(cp,n) wadd_wchnstr(stdscr,cp,n) #define add_wchstr(cp) wadd_wchstr(stdscr,cp) #define mvadd_wchnstr(y,x,cp,n) (move(y,x)?ERR:add_wchnstr(cp,n)) #define mvadd_wchstr(y,x,cp) (move(y,x)?ERR:add_wchstr(cp)) #define mvwadd_wchnstr(w,y,x,cp,n) (wmove(w,y,x)?ERR:wadd_wchnstr(w,cp,n)) #define mvwadd_wchstr(w,y,x,cp) (wmove(w,y,x)?ERR:wadd_wchstr(w,cp)) #define wadd_wchstr(w,cp) wadd_wchnstr(w,cp,-1) #define addnstr(s,n) waddnstr(stdscr,s,n) #define addstr(s) waddstr(stdscr,s) #define mvaddnstr(y,x,s,n) (move(y,x)?ERR:addnstr(s,n)) #define mvaddstr(y,x,s) (move(y,x)?ERR:addstr(s)) #define mvwaddnstr(w,y,x,s,n) (wmove(w,y,x)?ERR:waddnstr(w,s,n)) #define mvwaddstr(w,y,x,s) (wmove(w,y,x)?ERR:waddstr(w,s)) #define waddstr(w,wcs) waddnstr(w,wcs,-1) #define addnwstr(wcs,n) waddnwstr(stdscr,wcs,n) #define addwstr(wcs) waddwstr(stdscr,wcs) #define mvaddnwstr(y,x,wcs,n) (move(y,x)?ERR:addnwstr(wcs,n)) #define mvaddwstr(y,x,wcs) (move(y,x)?ERR:addwstr(wcs)) #define mvwaddnwstr(w,y,x,wcs,n) (wmove(w,y,x)?ERR:waddnwstr(w,wcs,n)) #define mvwaddwstr(w,y,x,wcs) (wmove(w,y,x)?ERR:waddwstr(w,wcs)) #define waddwstr(w,wcs) waddnwstr(w,wcs,-1) #define attr_get(a,c,o) wattr_get(stdscr,a,c,o) #define attr_off(a,o) wattr_off(stdscr,a,o) #define attr_on(a,o) wattr_on(stdscr,a,o) #define attr_set(a,c,o) wattr_set(stdscr,a,c,o) #define COLOR_PAIR(n) ((chtype)(n)<<__COLOR_SHIFT) #define PAIR_NUMBER(a) (((chtype)(a)&A_COLOR)>>__COLOR_SHIFT) #define bkgd(ch) wbkgd(stdscr, ch) #define bkgdset(ch) __m_chtype_cc(ch, &stdscr->_bg) #define getbkgd(w) __m_cc_chtype(&(w)->_bg) #define wbkgdset(w,ch) __m_chtype_cc(ch, &(w)->_bg) #define bkgrnd(b) wbkgrnd(stdscr,b) #define bkgrndset(b) wbkgrndset(stdscr,b) #define getbkgrnd(b) wgetbkgrnd(stdscr,b) #define wbkgrndset(w,b) ((w)->_bg = *(b)) #define wgetbkgrnd(w,b) (*(b) = (w)->_bg, OK) #define border(ls, rs, ts, bs, tl, tr, bl, br) \ wborder(stdscr, ls, rs, ts, bs, tl, tr, bl, br) #define border_set(ls, rs, ts, bs, tl, tr, bl, br) \ wborder_set(stdscr, ls, rs, ts, bs, tl, tr, bl, br) #define box(w,v,h) wborder(w,v,v,h,h,0,0,0,0) #define box_set(w,v,h) wborder_set(w,v,v,h,h,0,0,0,0) #define can_change_color() (2 < max_colors && can_change \ && initialize_color != (char *) 0) #define has_colors() (0 < max_colors) #define chgat(n,a,co,p) wchgat(stdscr,n,a,co,p) #define mvchgat(y,x,n,a,co,p) (move(y,x)?ERR:chgat(n,a,co,p)) #define mvwchgat(w,y,x,n,a,co,p) (wmove(w,y,x)?ERR:wchgat(w,n,a,co,p)) #define clear() wclear(stdscr) #define clrtobot() wclrtobot(stdscr) #define clrtoeol() wclrtoeol(stdscr) #define erase() werase(stdscr) #define wclear(w) (clearok(w,1)?ERR:werase(w)) #define werase(w) (wmove(w,0,0)?ERR:wclrtobot(w)) #define delch() wdelch(stdscr) #define mvdelch(y,x) (move(y,x)?ERR:delch()) #define mvwdelch(w,y,x) (wmove(w,y,x)?ERR:wdelch(w)) #define deleteln() wdeleteln(stdscr) #define insdelln(n) winsdelln(stdscr,n) #define insertln() winsertln(stdscr) #define wdeleteln(w) winsdelln(w, -1) #define winsertln(w) winsdelln(w, 1) #define refresh() wrefresh(stdscr) #define echochar(ch) wechochar(stdscr,ch) #define echo_wchar(cp) wecho_wchar(stdscr,cp) #define wechochar(w,ch) (waddch(w,ch)?ERR:wrefresh(w)) #define wecho_wchar(w,cp) (wadd_wch(w,cp)?ERR:wrefresh(w)) #define erasewchar(wp) __m_tty_wc(VERASE, wp) #define killwchar(wp) __m_tty_wc(VKILL, wp) #define getch() wgetch(stdscr) #define mvgetch(y,x) (move(y,x)?ERR:getch()) #define mvwgetch(w,y,x) (wmove(w,y,x)?ERR:wgetch(w)) #define get_wch(wcp) wget_wch(stdscr,wcp) #define mvget_wch(y,x,wcp) (move(y,x)?ERR:get_wch(wcp)) #define mvwget_wch(w,y,x,wcp) (wmove(w,y,x)?ERR:wget_wch(w,wcp)) #define getnstr(s,n) wgetnstr(stdscr,s,n) #define getstr(s) wgetstr(stdscr,s) #define mvgetnstr(y,x,s,n) (move(y,x)?ERR:getnstr(s,n)) #define mvgetstr(y,x,s) (move(y,x)?ERR:getstr(s)) #define mvwgetnstr(w,y,x,s,n) (wmove(w,y,x)?ERR:wgetnstr(w,s,n)) #define mvwgetstr(w,y,x,s) (wmove(w,y,x)?ERR:wgetstr(w,s)) #define wgetstr(w,s) wgetnstr(w,s,-1) #define getn_wstr(wcs,n) wgetn_wstr(stdscr,wcs,n) #define get_wstr(wcs) wget_wstr(stdscr,wcs) #define mvgetn_wstr(y,x,wcs,n) (move(y,x)?ERR:getn_wstr(wcs,n)) #define mvget_wstr(y,x,wcs) (move(y,x)?ERR:get_wstr(wcs)) #define mvwgetn_wstr(w,y,x,wcs,n) (wmove(w,y,x)?ERR:wgetn_wstr(w,wcs,n)) #define mvwget_wstr(w,y,x,wcs) (wmove(w,y,x)?ERR:wget_wstr(w,wcs)) #define wget_wstr(w,wcs) wgetn_wstr(w,wcs,-1) #define has_ic() (((insert_character != (char *) 0 \ || parm_ich != (char *) 0) \ && (delete_character != (char *) 0 \ || parm_dch != (char *) 0)) \ || (enter_insert_mode != (char *) 0 \ && exit_insert_mode)) #define has_il() (((insert_line != (char *) 0 \ || parm_insert_line != (char *) 0) \ && (delete_line != (char *) 0 \ || parm_delete_line !=(char*)0)) \ || change_scroll_region != (char *) 0) #define hline(ch,n) whline(stdscr,ch,n) #define vline(ch,n) wvline(stdscr,ch,n) #define mvhline(y,x,ch,n) (move(y,x)?ERR:hline(ch,n)) #define mvvline(y,x,ch,n) (move(y,x)?ERR:vline(ch,n)) #define mvwhline(w,y,x,ch,n) (wmove(w,y,x)?ERR:whline(w,ch,n)) #define mvwvline(w,y,x,ch,n) (wmove(w,y,x)?ERR:wvline(w,ch,n)) #define hline_set(cp,n) whline_set(stdscr,cp,n) #define vline_set(cp,n) wvline_set(stdscr,cp,n) #define mvhline_set(y,x,cp,n) (move(y,x)?ERR:hline_set(cp,n)) #define mvvline_set(y,x,cp,n) (move(y,x)?ERR:vline_set(cp,n)) #define mvwhline_set(w,y,x,cp,n) (wmove(w,y,x)?ERR:whline_set(w,cp,n)) #define mvwvline_set(w,y,x,cp,n) (wmove(w,y,x)?ERR:wvline_set(w,cp,n)) #define inch() winch(stdscr) #define mvinch(y,x) (move(y,x)?ERR:inch()) #define mvwinch(w,y,x) (wmove(w,y,x)?ERR:winch(w)) #define in_wch(cp) win_wch(stdscr,cp) #define mvin_wch(y,x,cp) (move(y,x)?ERR:in_wch(cp)) #define mvwin_wch(w,y,x,cp) (wmove(w,y,x)?ERR:win_wch(w,cp)) #define inchnstr(chs,n) winchnstr(stdscr,chs,n) #define inchstr(chs) winchstr(stdscr,chs) #define mvinchnstr(y,x,chs,n) (move(y,x)?ERR:inchnstr(chs,n)) #define mvinchstr(y,x,chs) (move(y,x)?ERR:inchstr(chs)) #define mvwinchnstr(w,y,x,chs,n) (wmove(w,y,x)?ERR:winchnstr(w,chs,n)) #define mvwinchstr(w,y,x,chs) (wmove(w,y,x)?ERR:winchstr(w,chs)) #define winchstr(w,chs) winchnstr(w,chs,-1) #define in_wchnstr(cp,n) win_wchnstr(stdscr,cp,n) #define in_wchstr(cp) win_wchstr(stdscr,cp) #define mvin_wchnstr(y,x,cp,n) (move(y,x)?ERR:in_wchnstr(cp,n)) #define mvin_wchstr(y,x,cp) (move(y,x)?ERR:in_wchstr(cp)) #define mvwin_wchnstr(w,y,x,cp,n) (wmove(w,y,x)?ERR:win_wchnstr(w,cp,n)) #define mvwin_wchstr(w,y,x,cp) (wmove(w,y,x)?ERR:win_wchstr(w,cp)) #define win_wchstr(w,cp) win_wchnstr(w,cp,-1) #define innstr(s,n) winnstr(stdscr,s,n) #define instr(s) winstr(stdscr,s) #define mvinnstr(y,x,s,n) (move(y,x)?ERR:innstr(s,n)) #define mvinstr(y,x,s) (move(y,x)?ERR:instr(s)) #define mvwinnstr(w,y,x,s,n) (wmove(w,y,x)?ERR:winnstr(w,s,n)) #define mvwinstr(w,y,x,s) (wmove(w,y,x)?ERR:winstr(w,s)) #define winstr(w,s) winnstr(w,s,-1) #define innwstr(wcs,n) winnwstr(stdscr,wcs,n) #define inwstr(wcs) winwstr(stdscr,wcs) #define mvinnwstr(y,x,wcs,n) (move(y,x)?ERR:innwstr(wcs,n)) #define mvinwstr(y,x,wcs) (move(y,x)?ERR:inwstr(wcs)) #define mvwinnwstr(w,y,x,wcs,n) (wmove(w,y,x)?ERR:winnwstr(w,wcs,n)) #define mvwinwstr(w,y,x,wcs) (wmove(w,y,x)?ERR:winwstr(w,wcs)) #define winwstr(w,wcs) winnwstr(w,wcs,-1) #define insch(ch) winsch(stdscr,ch) #define mvinsch(y,x,ch) (move(y,x)?ERR:insch(ch)) #define mvwinsch(w,y,x,ch) (wmove(w,y,x)?ERR:winsch(w,ch)) #define ins_wch(cp) wins_wch(stdscr,cp) #define mvins_wch(y,x,cp) (move(y,x)?ERR:ins_wch(cp)) #define mvwins_wch(w,y,x,cp) (wmove(w,y,x)?ERR:wins_wch(w,cp)) #define insnstr(s,n) winsnstr(stdscr,s,n) #define insstr(s) winsstr(stdscr,s) #define mvinsnstr(y,x,s,n) (move(y,x)?ERR:insnstr(s,n)) #define mvinsstr(y,x,s) (move(y,x)?ERR:insstr(s)) #define mvwinsnstr(w, y, x, s, n) (wmove(w, y, x)?ERR:winsnstr(w, s, n)) #define mvwinsstr(w, y, x, s) (wmove(w, y, x)?ERR:winsstr(w, s)) #define winsstr(w, s) winsnstr(w, s, -1) #define ins_nwstr(wcs, n) wins_nwstr(stdscr, wcs, n) #define ins_wstr(wcs) wins_wstr(stdscr, wcs) #define mvins_nwstr(y, x, wcs, n) (move(y, x)?ERR:ins_nwstr(wcs, n)) #define mvins_wstr(y, x, wcs) (move(y, x)?ERR:ins_wstr(wcs)) #define mvwins_nwstr(w, y, x, wcs, n) (wmove(w, y, x)?ERR:wins_nwstr(w,wcs,n)) #define mvwins_wstr(w, y, x, wcs) (wmove(w, y, x)?ERR:wins_wstr(w,wcs)) #define wins_wstr(w, wcs) wins_nwstr(w, wcs, -1) #define is_linetouched(w, y) (0 <= (w)->_last[y]) #define mvcur(or, oc, nr, nc) __m_mvcur(or, oc, nr, nc, __m_outc) #define move(y, x) wmove(stdscr, y, x) #define overlay(s, t) __m_copywin(s, t, 1) #define overwrite(s, t) __m_copywin(s, t, 0) #define newpad(ny, nx) __m_newwin((WINDOW *) 0, ny, nx, -1, -1) #define subpad(par, ny, nx, by, bx) subwin(par, ny, nx, by, bx) #define nodelay(w, bf) (wtimeout(w, (bf)?0:-1), OK) #define timeout(n) wtimeout(stdscr, n) #define qiflush() ((void) intrflush((WINDOW *) 0, 1)) #define noqiflush() ((void) intrflush((WINDOW *) 0, 0)) #define redrawwin(w) wredrawln(w, 0, (w)->_maxy) #define scrl(n) wscrl(stdscr, n) #define setscrreg(t, b) wsetscrreg(stdscr, t, b) #define standend() wstandend(stdscr) #define standout() wstandout(stdscr) #define wstandend(w) (wattr_set(w, WA_NORMAL, COLOR_BLACK, \ (void *)0), 1) #define wstandout(w) (wattr_on(w, WA_STANDOUT, (void *)0), 1) #define touchline(w, y, n) wtouchln(w, y, n, 1) #define touchwin(w) wtouchln(w, 0, (w)->_maxy, 1) #define untouchwin(w) wtouchln(w, 0, (w)->_maxy, 0) #define termname() (cur_term->_term) #ifndef _XOPEN_SOURCE /* * Obsolete functions names. */ #define crmode cbreak #define nocrmode nocbreak #define saveterm def_prog_mode #define fixterm reset_prog_mode #define resetterm reset_shell_mode #endif /* _XOPEN_SOURCE */ #endif /* _XOPEN_SOURCE_EXTENDED */ /* * Special Keys * * Keypad layout * A1 up A3 * left B2 right * C1 down C3 * * Chossing negative values for KEY_ constants means that they can * be safely returned in either an int or long type. */ #define __KEY_BASE (-2) #define __KEY_MAX __KEY_BASE #define KEY_CODE_YES (__KEY_BASE-1) /* Special indicator. */ #define KEY_BREAK (__KEY_BASE-2) /* Break key (unreliable) */ #define KEY_DOWN (__KEY_BASE-3) /* The four arrow keys ... */ #define KEY_UP (__KEY_BASE-4) #define KEY_LEFT (__KEY_BASE-5) #define KEY_RIGHT (__KEY_BASE-6) #define KEY_HOME (__KEY_BASE-7) /* Move to upper-left corner. */ #define KEY_BACKSPACE (__KEY_BASE-8) /* Backspace */ #define KEY_F0 (__KEY_BASE-9) /* Function keys. Space for */ #define KEY_F(n) (KEY_F0-(n)) /* 64 keys is reserved. */ #define KEY_DL (__KEY_BASE-73) /* Delete line */ #define KEY_IL (__KEY_BASE-74) /* Insert line */ #define KEY_DC (__KEY_BASE-75) /* Delete character */ #define KEY_IC (__KEY_BASE-76) /* Ins char / enter ins mode */ #define KEY_EIC (__KEY_BASE-77) /* Exit insert char mode */ #define KEY_CLEAR (__KEY_BASE-78) /* Clear screen */ #define KEY_EOS (__KEY_BASE-79) /* Clear to end of screen */ #define KEY_EOL (__KEY_BASE-80) /* Clear to end of line */ #define KEY_SF (__KEY_BASE-81) /* Scroll 1 line forward */ #define KEY_SR (__KEY_BASE-82) /* Scroll 1 line backwards */ #define KEY_NPAGE (__KEY_BASE-83) /* Next page */ #define KEY_PPAGE (__KEY_BASE-84) /* Previous page */ #define KEY_STAB (__KEY_BASE-85) /* Set tab */ #define KEY_CTAB (__KEY_BASE-86) /* Clear tab */ #define KEY_CATAB (__KEY_BASE-87) /* Clear all tabs */ #define KEY_ENTER (__KEY_BASE-88) /* Enter or send */ #define KEY_SRESET (__KEY_BASE-89) /* Soft (partial) reset */ #define KEY_RESET (__KEY_BASE-90) /* Hard reset */ #define KEY_PRINT (__KEY_BASE-91) /* Print or copy */ #define KEY_LL (__KEY_BASE-92) /* Move to lower left corner. */ #define KEY_A1 (__KEY_BASE-93) /* Upper left of keypad */ #define KEY_A3 (__KEY_BASE-94) /* Upper rght of keypad */ #define KEY_B2 (__KEY_BASE-95) /* Center of keypad */ #define KEY_C1 (__KEY_BASE-96) /* Lower left of keypad */ #define KEY_C3 (__KEY_BASE-97) /* Lower right of keypad */ #define KEY_BTAB (__KEY_BASE-98) /* Back Tab */ #define KEY_BEG (__KEY_BASE-99) /* Beginning */ #define KEY_CANCEL (__KEY_BASE-100) #define KEY_CLOSE (__KEY_BASE-101) #define KEY_COMMAND (__KEY_BASE-102) #define KEY_COPY (__KEY_BASE-103) #define KEY_CREATE (__KEY_BASE-104) #define KEY_END (__KEY_BASE-105) #define KEY_EXIT (__KEY_BASE-106) #define KEY_FIND (__KEY_BASE-107) #define KEY_HELP (__KEY_BASE-108) #define KEY_MARK (__KEY_BASE-109) #define KEY_MESSAGE (__KEY_BASE-110) #define KEY_MOUSE (__KEY_BASE-111) /* Mouse event occured */ #define KEY_MOVE (__KEY_BASE-112) #define KEY_NEXT (__KEY_BASE-113) /* Next object */ #define KEY_OPEN (__KEY_BASE-114) #define KEY_OPTIONS (__KEY_BASE-115) #define KEY_PREVIOUS (__KEY_BASE-116) /* Previous object */ #define KEY_REDO (__KEY_BASE-117) #define KEY_REFERENCE (__KEY_BASE-118) #define KEY_REFRESH (__KEY_BASE-119) #define KEY_REPLACE (__KEY_BASE-120) #define KEY_RESTART (__KEY_BASE-121) #define KEY_RESUME (__KEY_BASE-122) #define KEY_SAVE (__KEY_BASE-123) #define KEY_SBEG (__KEY_BASE-124) /* Shifted keys */ #define KEY_SCANCEL (__KEY_BASE-125) #define KEY_SCOMMAND (__KEY_BASE-126) #define KEY_SCOPY (__KEY_BASE-127) #define KEY_SCREATE (__KEY_BASE-128) #define KEY_SDC (__KEY_BASE-129) #define KEY_SDL (__KEY_BASE-130) #define KEY_SELECT (__KEY_BASE-131) /* Select */ #define KEY_SEND (__KEY_BASE-132) /* Shifted end key */ #define KEY_SEOL (__KEY_BASE-133) #define KEY_SEXIT (__KEY_BASE-134) #define KEY_SFIND (__KEY_BASE-135) #define KEY_SHELP (__KEY_BASE-136) #define KEY_SHOME (__KEY_BASE-137) #define KEY_SIC (__KEY_BASE-138) #define KEY_SLEFT (__KEY_BASE-139) #define KEY_SMESSAGE (__KEY_BASE-140) #define KEY_SMOVE (__KEY_BASE-141) #define KEY_SNEXT (__KEY_BASE-142) #define KEY_SOPTIONS (__KEY_BASE-143) #define KEY_SPREVIOUS (__KEY_BASE-144) #define KEY_SPRINT (__KEY_BASE-145) #define KEY_SREDO (__KEY_BASE-146) #define KEY_SREPLACE (__KEY_BASE-147) #define KEY_SRIGHT (__KEY_BASE-148) #define KEY_SRSUME (__KEY_BASE-149) #define KEY_SSAVE (__KEY_BASE-150) #define KEY_SSUSPEND (__KEY_BASE-151) #define KEY_SUNDO (__KEY_BASE-152) #define KEY_SUSPEND (__KEY_BASE-153) #define KEY_UNDO (__KEY_BASE-154) #define __KEY_MIN (__KEY_BASE-155) #endif /* __M_CURSES_H__ */