1*7c478bd9Sstevel@tonic-gate /* 2*7c478bd9Sstevel@tonic-gate * CDDL HEADER START 3*7c478bd9Sstevel@tonic-gate * 4*7c478bd9Sstevel@tonic-gate * The contents of this file are subject to the terms of the 5*7c478bd9Sstevel@tonic-gate * Common Development and Distribution License, Version 1.0 only 6*7c478bd9Sstevel@tonic-gate * (the "License"). You may not use this file except in compliance 7*7c478bd9Sstevel@tonic-gate * with the License. 8*7c478bd9Sstevel@tonic-gate * 9*7c478bd9Sstevel@tonic-gate * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10*7c478bd9Sstevel@tonic-gate * or http://www.opensolaris.org/os/licensing. 11*7c478bd9Sstevel@tonic-gate * See the License for the specific language governing permissions 12*7c478bd9Sstevel@tonic-gate * and limitations under the License. 13*7c478bd9Sstevel@tonic-gate * 14*7c478bd9Sstevel@tonic-gate * When distributing Covered Code, include this CDDL HEADER in each 15*7c478bd9Sstevel@tonic-gate * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 16*7c478bd9Sstevel@tonic-gate * If applicable, add the following below this CDDL HEADER, with the 17*7c478bd9Sstevel@tonic-gate * fields enclosed by brackets "[]" replaced with your own identifying 18*7c478bd9Sstevel@tonic-gate * information: Portions Copyright [yyyy] [name of copyright owner] 19*7c478bd9Sstevel@tonic-gate * 20*7c478bd9Sstevel@tonic-gate * CDDL HEADER END 21*7c478bd9Sstevel@tonic-gate */ 22*7c478bd9Sstevel@tonic-gate /* 23*7c478bd9Sstevel@tonic-gate * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 24*7c478bd9Sstevel@tonic-gate * Use is subject to license terms. 25*7c478bd9Sstevel@tonic-gate */ 26*7c478bd9Sstevel@tonic-gate 27*7c478bd9Sstevel@tonic-gate #pragma ident "%Z%%M% %I% %E% SMI" 28*7c478bd9Sstevel@tonic-gate 29*7c478bd9Sstevel@tonic-gate /* 30*7c478bd9Sstevel@tonic-gate * curses.h 31*7c478bd9Sstevel@tonic-gate * 32*7c478bd9Sstevel@tonic-gate * XCurses Library 33*7c478bd9Sstevel@tonic-gate * 34*7c478bd9Sstevel@tonic-gate * Copyright 1990, 1995 by Mortice Kern Systems Inc. All rights reserved. 35*7c478bd9Sstevel@tonic-gate * 36*7c478bd9Sstevel@tonic-gate */ 37*7c478bd9Sstevel@tonic-gate 38*7c478bd9Sstevel@tonic-gate #ifndef __M_CURSES_H__ 39*7c478bd9Sstevel@tonic-gate #define __M_CURSES_H__ 40*7c478bd9Sstevel@tonic-gate 41*7c478bd9Sstevel@tonic-gate #define _XOPEN_CURSES 42*7c478bd9Sstevel@tonic-gate 43*7c478bd9Sstevel@tonic-gate #include <stdio.h> 44*7c478bd9Sstevel@tonic-gate #include <term.h> 45*7c478bd9Sstevel@tonic-gate #include <unctrl.h> 46*7c478bd9Sstevel@tonic-gate #include <wchar.h> 47*7c478bd9Sstevel@tonic-gate 48*7c478bd9Sstevel@tonic-gate #ifndef EOF 49*7c478bd9Sstevel@tonic-gate #define EOF (-1) 50*7c478bd9Sstevel@tonic-gate #endif 51*7c478bd9Sstevel@tonic-gate 52*7c478bd9Sstevel@tonic-gate #ifndef WEOF 53*7c478bd9Sstevel@tonic-gate #define WEOF (-1) 54*7c478bd9Sstevel@tonic-gate #endif 55*7c478bd9Sstevel@tonic-gate 56*7c478bd9Sstevel@tonic-gate /* 57*7c478bd9Sstevel@tonic-gate * Not all <wchar.h> are created equal. 58*7c478bd9Sstevel@tonic-gate */ 59*7c478bd9Sstevel@tonic-gate #ifndef _MBSTATE_T 60*7c478bd9Sstevel@tonic-gate #define _MBSTATE_T 61*7c478bd9Sstevel@tonic-gate typedef int mbstate_t; 62*7c478bd9Sstevel@tonic-gate #endif 63*7c478bd9Sstevel@tonic-gate 64*7c478bd9Sstevel@tonic-gate #define ERR EOF 65*7c478bd9Sstevel@tonic-gate #define OK 0 66*7c478bd9Sstevel@tonic-gate 67*7c478bd9Sstevel@tonic-gate #if !(defined(__cplusplus) && defined(_BOOL)) 68*7c478bd9Sstevel@tonic-gate typedef short bool; 69*7c478bd9Sstevel@tonic-gate #endif 70*7c478bd9Sstevel@tonic-gate 71*7c478bd9Sstevel@tonic-gate #define TRUE 1 72*7c478bd9Sstevel@tonic-gate #define FALSE 0 73*7c478bd9Sstevel@tonic-gate 74*7c478bd9Sstevel@tonic-gate typedef unsigned short attr_t; 75*7c478bd9Sstevel@tonic-gate 76*7c478bd9Sstevel@tonic-gate /* 77*7c478bd9Sstevel@tonic-gate * These attributes and masks can be applied to an attr_t. 78*7c478bd9Sstevel@tonic-gate * These are ordered according to the <no_color_video> mask, 79*7c478bd9Sstevel@tonic-gate * which has been extended to include additional attributes. 80*7c478bd9Sstevel@tonic-gate */ 81*7c478bd9Sstevel@tonic-gate #define WA_NORMAL 0x0 82*7c478bd9Sstevel@tonic-gate #define WA_STANDOUT 0x0001 83*7c478bd9Sstevel@tonic-gate #define WA_UNDERLINE 0x0002 84*7c478bd9Sstevel@tonic-gate #define WA_REVERSE 0x0004 85*7c478bd9Sstevel@tonic-gate #define WA_BLINK 0x0008 86*7c478bd9Sstevel@tonic-gate #define WA_DIM 0x0010 87*7c478bd9Sstevel@tonic-gate #define WA_BOLD 0x0020 88*7c478bd9Sstevel@tonic-gate #define WA_INVIS 0x0040 89*7c478bd9Sstevel@tonic-gate #define WA_PROTECT 0x0080 90*7c478bd9Sstevel@tonic-gate #define WA_ALTCHARSET 0x0100 91*7c478bd9Sstevel@tonic-gate #define WA_HORIZONTAL 0x0200 92*7c478bd9Sstevel@tonic-gate #define WA_LEFT 0x0400 93*7c478bd9Sstevel@tonic-gate #define WA_LOW 0x0800 94*7c478bd9Sstevel@tonic-gate #define WA_RIGHT 0x1000 95*7c478bd9Sstevel@tonic-gate #define WA_TOP 0x2000 96*7c478bd9Sstevel@tonic-gate #define WA_VERTICAL 0x4000 97*7c478bd9Sstevel@tonic-gate 98*7c478bd9Sstevel@tonic-gate #define WA_SGR_MASK 0x01ff /* Historical attribute set. */ 99*7c478bd9Sstevel@tonic-gate #define WA_SGR1_MASK 0x7e00 /* Extended attribute set. */ 100*7c478bd9Sstevel@tonic-gate 101*7c478bd9Sstevel@tonic-gate /* 102*7c478bd9Sstevel@tonic-gate * Internal attribute used to support <ceol_standout_glitch>. 103*7c478bd9Sstevel@tonic-gate */ 104*7c478bd9Sstevel@tonic-gate #define WA_COOKIE 0x8000 105*7c478bd9Sstevel@tonic-gate 106*7c478bd9Sstevel@tonic-gate /* 107*7c478bd9Sstevel@tonic-gate * Color names. 108*7c478bd9Sstevel@tonic-gate */ 109*7c478bd9Sstevel@tonic-gate #define COLOR_BLACK 0 110*7c478bd9Sstevel@tonic-gate #define COLOR_BLUE 1 111*7c478bd9Sstevel@tonic-gate #define COLOR_GREEN 2 112*7c478bd9Sstevel@tonic-gate #define COLOR_CYAN 3 113*7c478bd9Sstevel@tonic-gate #define COLOR_RED 4 114*7c478bd9Sstevel@tonic-gate #define COLOR_MAGENTA 5 115*7c478bd9Sstevel@tonic-gate #define COLOR_YELLOW 6 116*7c478bd9Sstevel@tonic-gate #define COLOR_WHITE 7 117*7c478bd9Sstevel@tonic-gate 118*7c478bd9Sstevel@tonic-gate /* 119*7c478bd9Sstevel@tonic-gate * A cchar_t details the attributes, color, and a string of wide characters 120*7c478bd9Sstevel@tonic-gate * composing a complex character (p12). The wide character string consists 121*7c478bd9Sstevel@tonic-gate * of a spacing character (wcwidth() > 0) and zero or more non-spacing 122*7c478bd9Sstevel@tonic-gate * characters. Xcurses (p17) states that the minimum number of non-spacing 123*7c478bd9Sstevel@tonic-gate * characters associated with a spacing character must be at least 5, if a 124*7c478bd9Sstevel@tonic-gate * limit is imposed. 125*7c478bd9Sstevel@tonic-gate */ 126*7c478bd9Sstevel@tonic-gate #define M_CCHAR_MAX 6 127*7c478bd9Sstevel@tonic-gate 128*7c478bd9Sstevel@tonic-gate /*** 129*7c478bd9Sstevel@tonic-gate *** Opaque data type. Keep your grubby mits off. 130*7c478bd9Sstevel@tonic-gate ***/ 131*7c478bd9Sstevel@tonic-gate typedef struct { 132*7c478bd9Sstevel@tonic-gate short _f; /* True if start of character. */ 133*7c478bd9Sstevel@tonic-gate short _n; /* Number of elements in wc[]. */ 134*7c478bd9Sstevel@tonic-gate short _co; /* Color pair number. */ 135*7c478bd9Sstevel@tonic-gate attr_t _at; /* Attribute flags. */ 136*7c478bd9Sstevel@tonic-gate wchar_t _wc[M_CCHAR_MAX]; /* Complex spacing character. */ 137*7c478bd9Sstevel@tonic-gate } cchar_t; 138*7c478bd9Sstevel@tonic-gate 139*7c478bd9Sstevel@tonic-gate /*** 140*7c478bd9Sstevel@tonic-gate *** Opaque data type. Keep your grubby mits off. 141*7c478bd9Sstevel@tonic-gate ***/ 142*7c478bd9Sstevel@tonic-gate typedef struct window_t { 143*7c478bd9Sstevel@tonic-gate cchar_t _bg; /* Background. */ 144*7c478bd9Sstevel@tonic-gate cchar_t _fg; /* Foreground, ignore character. */ 145*7c478bd9Sstevel@tonic-gate short _cury, _curx; /* Curent cursor position in window. */ 146*7c478bd9Sstevel@tonic-gate short _begy, _begx; /* Upper-left origin on screen. */ 147*7c478bd9Sstevel@tonic-gate short _maxy, _maxx; /* Window dimensions. */ 148*7c478bd9Sstevel@tonic-gate short _top, _bottom; /* Window's software scroll region. */ 149*7c478bd9Sstevel@tonic-gate short _refy, _refx; /* Pad origin of last refresh. */ 150*7c478bd9Sstevel@tonic-gate short _sminy, _sminx; /* T-L screen corner of last refresh. */ 151*7c478bd9Sstevel@tonic-gate short _smaxy, _smaxx; /* B-R screen corner of last refresh. */ 152*7c478bd9Sstevel@tonic-gate short _vmin, _vtime; /* wtimeout() control. */ 153*7c478bd9Sstevel@tonic-gate short *_first, *_last; /* Dirty region for each screen line. */ 154*7c478bd9Sstevel@tonic-gate unsigned short _flags; /* Internal flags for the window. */ 155*7c478bd9Sstevel@tonic-gate unsigned short _scroll; /* Internal for scroll optimization. */ 156*7c478bd9Sstevel@tonic-gate cchar_t **_line; 157*7c478bd9Sstevel@tonic-gate cchar_t *_base; /* Block of M*N screen cells. */ 158*7c478bd9Sstevel@tonic-gate struct window_t *_parent; /* Parent of sub-window. */ 159*7c478bd9Sstevel@tonic-gate } WINDOW; 160*7c478bd9Sstevel@tonic-gate 161*7c478bd9Sstevel@tonic-gate /*** 162*7c478bd9Sstevel@tonic-gate *** Opaque data type. Keep your grubby mits off. 163*7c478bd9Sstevel@tonic-gate ***/ 164*7c478bd9Sstevel@tonic-gate typedef struct { 165*7c478bd9Sstevel@tonic-gate int _kfd; /* typeahead() file descriptor. */ 166*7c478bd9Sstevel@tonic-gate FILE *_if, *_of; /* I/O file pointers. */ 167*7c478bd9Sstevel@tonic-gate TERMINAL *_term; /* Associated terminfo entry. */ 168*7c478bd9Sstevel@tonic-gate WINDOW *_newscr; /* New screen image built by wnoutrefresh(). */ 169*7c478bd9Sstevel@tonic-gate WINDOW *_curscr; /* Current screen image after doupdate(). */ 170*7c478bd9Sstevel@tonic-gate mbstate_t _state; /* Current multibyte state of _of. */ 171*7c478bd9Sstevel@tonic-gate unsigned long *_hash; /* Hash values for curscr's screen lines. */ 172*7c478bd9Sstevel@tonic-gate unsigned short _flags; /* Assorted flags. */ 173*7c478bd9Sstevel@tonic-gate void *_decode; /* Function key decode tree. */ 174*7c478bd9Sstevel@tonic-gate void *_in; /* Wide I/O object. */ 175*7c478bd9Sstevel@tonic-gate struct { 176*7c478bd9Sstevel@tonic-gate int _size; /* Allocated size of the input stack. */ 177*7c478bd9Sstevel@tonic-gate int _count; /* Number of entries on the input stack. */ 178*7c478bd9Sstevel@tonic-gate int *_stack; /* Buffer used for the input stack. */ 179*7c478bd9Sstevel@tonic-gate } _unget; 180*7c478bd9Sstevel@tonic-gate struct { 181*7c478bd9Sstevel@tonic-gate WINDOW *_w; /* Exists on if emulating soft label keys. */ 182*7c478bd9Sstevel@tonic-gate char *_labels[8]; /* Soft label key strings. */ 183*7c478bd9Sstevel@tonic-gate short _justify[8]; /* Justification for label. */ 184*7c478bd9Sstevel@tonic-gate } _slk; 185*7c478bd9Sstevel@tonic-gate } SCREEN; 186*7c478bd9Sstevel@tonic-gate 187*7c478bd9Sstevel@tonic-gate #ifndef __M_UNCTRL_H__ 188*7c478bd9Sstevel@tonic-gate /* 189*7c478bd9Sstevel@tonic-gate * Backwards compatiblity with historical Curses applications. 190*7c478bd9Sstevel@tonic-gate */ 191*7c478bd9Sstevel@tonic-gate typedef unsigned long chtype; 192*7c478bd9Sstevel@tonic-gate #endif 193*7c478bd9Sstevel@tonic-gate 194*7c478bd9Sstevel@tonic-gate /* 195*7c478bd9Sstevel@tonic-gate * These attributes and masks can be applied to a chtype. 196*7c478bd9Sstevel@tonic-gate * They are order according to the <no_color_video> mask. 197*7c478bd9Sstevel@tonic-gate */ 198*7c478bd9Sstevel@tonic-gate #define A_NORMAL 0x00000000L 199*7c478bd9Sstevel@tonic-gate #define A_ATTRIBUTES 0xffff0000L /* Color/Attribute mask */ 200*7c478bd9Sstevel@tonic-gate #define A_CHARTEXT 0x0000ffffL /* 16-bit character mask */ 201*7c478bd9Sstevel@tonic-gate #define A_COLOR 0xfe000000L /* Colour mask, see __COLOR_SHIFT */ 202*7c478bd9Sstevel@tonic-gate #define A_STANDOUT 0x00010000L 203*7c478bd9Sstevel@tonic-gate #define A_UNDERLINE 0x00020000L 204*7c478bd9Sstevel@tonic-gate #define A_REVERSE 0x00040000L 205*7c478bd9Sstevel@tonic-gate #define A_BLINK 0x00080000L 206*7c478bd9Sstevel@tonic-gate #define A_DIM 0x00100000L 207*7c478bd9Sstevel@tonic-gate #define A_BOLD 0x00200000L 208*7c478bd9Sstevel@tonic-gate #define A_INVIS 0x00400000L 209*7c478bd9Sstevel@tonic-gate #define A_PROTECT 0x00800000L 210*7c478bd9Sstevel@tonic-gate #define A_ALTCHARSET 0x01000000L 211*7c478bd9Sstevel@tonic-gate 212*7c478bd9Sstevel@tonic-gate /* 213*7c478bd9Sstevel@tonic-gate * Colour atttribute support for chtype. 214*7c478bd9Sstevel@tonic-gate */ 215*7c478bd9Sstevel@tonic-gate #define __COLOR_SHIFT 26 216*7c478bd9Sstevel@tonic-gate 217*7c478bd9Sstevel@tonic-gate /* 218*7c478bd9Sstevel@tonic-gate * Characters constants used with a chtype. 219*7c478bd9Sstevel@tonic-gate * Mapping defined in Xcurses Section 6.2.12 (p260). 220*7c478bd9Sstevel@tonic-gate */ 221*7c478bd9Sstevel@tonic-gate #define ACS_VLINE (A_ALTCHARSET | 'x') 222*7c478bd9Sstevel@tonic-gate #define ACS_HLINE (A_ALTCHARSET | 'q') 223*7c478bd9Sstevel@tonic-gate #define ACS_ULCORNER (A_ALTCHARSET | 'l') 224*7c478bd9Sstevel@tonic-gate #define ACS_URCORNER (A_ALTCHARSET | 'k') 225*7c478bd9Sstevel@tonic-gate #define ACS_LLCORNER (A_ALTCHARSET | 'm') 226*7c478bd9Sstevel@tonic-gate #define ACS_LRCORNER (A_ALTCHARSET | 'j') 227*7c478bd9Sstevel@tonic-gate #define ACS_RTEE (A_ALTCHARSET | 'u') 228*7c478bd9Sstevel@tonic-gate #define ACS_LTEE (A_ALTCHARSET | 't') 229*7c478bd9Sstevel@tonic-gate #define ACS_BTEE (A_ALTCHARSET | 'v') 230*7c478bd9Sstevel@tonic-gate #define ACS_TTEE (A_ALTCHARSET | 'w') 231*7c478bd9Sstevel@tonic-gate #define ACS_PLUS (A_ALTCHARSET | 'n') 232*7c478bd9Sstevel@tonic-gate #define ACS_S1 (A_ALTCHARSET | 'o') 233*7c478bd9Sstevel@tonic-gate #define ACS_S9 (A_ALTCHARSET | 's') 234*7c478bd9Sstevel@tonic-gate #define ACS_DIAMOND (A_ALTCHARSET | '`') 235*7c478bd9Sstevel@tonic-gate #define ACS_CKBOARD (A_ALTCHARSET | 'a') 236*7c478bd9Sstevel@tonic-gate #define ACS_DEGREE (A_ALTCHARSET | 'f') 237*7c478bd9Sstevel@tonic-gate #define ACS_PLMINUS (A_ALTCHARSET | 'g') 238*7c478bd9Sstevel@tonic-gate #define ACS_BULLET (A_ALTCHARSET | '~') 239*7c478bd9Sstevel@tonic-gate #define ACS_LARROW (A_ALTCHARSET | ',') 240*7c478bd9Sstevel@tonic-gate #define ACS_RARROW (A_ALTCHARSET | '+') 241*7c478bd9Sstevel@tonic-gate #define ACS_DARROW (A_ALTCHARSET | '.') 242*7c478bd9Sstevel@tonic-gate #define ACS_UARROW (A_ALTCHARSET | '-') 243*7c478bd9Sstevel@tonic-gate #define ACS_BOARD (A_ALTCHARSET | 'h') 244*7c478bd9Sstevel@tonic-gate #define ACS_LANTERN (A_ALTCHARSET | 'I') 245*7c478bd9Sstevel@tonic-gate #define ACS_BLOCK (A_ALTCHARSET | '0') 246*7c478bd9Sstevel@tonic-gate 247*7c478bd9Sstevel@tonic-gate #ifndef _XOPEN_SOURCE 248*7c478bd9Sstevel@tonic-gate /* 249*7c478bd9Sstevel@tonic-gate * MKS Extensions for double width box characters. 250*7c478bd9Sstevel@tonic-gate */ 251*7c478bd9Sstevel@tonic-gate #define ACS_DVLINE ACS_VLINE 252*7c478bd9Sstevel@tonic-gate #define ACS_DHLINE ACS_HLINE 253*7c478bd9Sstevel@tonic-gate #define ACS_DULCORNER ACS_ULCORNER 254*7c478bd9Sstevel@tonic-gate #define ACS_DURCORNER ACS_URCORNER 255*7c478bd9Sstevel@tonic-gate #define ACS_DLLCORNER ACS_LLCORNER 256*7c478bd9Sstevel@tonic-gate #define ACS_DLRCORNER ACS_LRCORNER 257*7c478bd9Sstevel@tonic-gate #define ACS_DRTEE ACS_RTEE 258*7c478bd9Sstevel@tonic-gate #define ACS_DLTEE ACS_LTEE 259*7c478bd9Sstevel@tonic-gate #define ACS_DBTEE ACS_BTEE 260*7c478bd9Sstevel@tonic-gate #define ACS_DTTEE ACS_TTEE 261*7c478bd9Sstevel@tonic-gate #endif /* _XOPEN_SOURCE */ 262*7c478bd9Sstevel@tonic-gate 263*7c478bd9Sstevel@tonic-gate /* 264*7c478bd9Sstevel@tonic-gate * Wide characters constants for a cchar_t. 265*7c478bd9Sstevel@tonic-gate */ 266*7c478bd9Sstevel@tonic-gate extern const cchar_t __WACS_VLINE; 267*7c478bd9Sstevel@tonic-gate extern const cchar_t __WACS_HLINE; 268*7c478bd9Sstevel@tonic-gate extern const cchar_t __WACS_ULCORNER; 269*7c478bd9Sstevel@tonic-gate extern const cchar_t __WACS_URCORNER; 270*7c478bd9Sstevel@tonic-gate extern const cchar_t __WACS_LLCORNER; 271*7c478bd9Sstevel@tonic-gate extern const cchar_t __WACS_LRCORNER; 272*7c478bd9Sstevel@tonic-gate extern const cchar_t __WACS_RTEE; 273*7c478bd9Sstevel@tonic-gate extern const cchar_t __WACS_LTEE; 274*7c478bd9Sstevel@tonic-gate extern const cchar_t __WACS_BTEE; 275*7c478bd9Sstevel@tonic-gate extern const cchar_t __WACS_TTEE; 276*7c478bd9Sstevel@tonic-gate extern const cchar_t __WACS_PLUS; 277*7c478bd9Sstevel@tonic-gate extern const cchar_t __WACS_S1; 278*7c478bd9Sstevel@tonic-gate extern const cchar_t __WACS_S9; 279*7c478bd9Sstevel@tonic-gate extern const cchar_t __WACS_DIAMOND; 280*7c478bd9Sstevel@tonic-gate extern const cchar_t __WACS_CKBOARD; 281*7c478bd9Sstevel@tonic-gate extern const cchar_t __WACS_DEGREE; 282*7c478bd9Sstevel@tonic-gate extern const cchar_t __WACS_PLMINUS; 283*7c478bd9Sstevel@tonic-gate extern const cchar_t __WACS_BULLET; 284*7c478bd9Sstevel@tonic-gate extern const cchar_t __WACS_LARROW; 285*7c478bd9Sstevel@tonic-gate extern const cchar_t __WACS_RARROW; 286*7c478bd9Sstevel@tonic-gate extern const cchar_t __WACS_DARROW; 287*7c478bd9Sstevel@tonic-gate extern const cchar_t __WACS_UARROW; 288*7c478bd9Sstevel@tonic-gate extern const cchar_t __WACS_BOARD; 289*7c478bd9Sstevel@tonic-gate extern const cchar_t __WACS_LANTERN; 290*7c478bd9Sstevel@tonic-gate extern const cchar_t __WACS_BLOCK; 291*7c478bd9Sstevel@tonic-gate 292*7c478bd9Sstevel@tonic-gate #define WACS_VLINE &__WACS_VLINE 293*7c478bd9Sstevel@tonic-gate #define WACS_HLINE &__WACS_HLINE 294*7c478bd9Sstevel@tonic-gate #define WACS_ULCORNER &__WACS_ULCORNER 295*7c478bd9Sstevel@tonic-gate #define WACS_URCORNER &__WACS_URCORNER 296*7c478bd9Sstevel@tonic-gate #define WACS_LLCORNER &__WACS_LLCORNER 297*7c478bd9Sstevel@tonic-gate #define WACS_LRCORNER &__WACS_LRCORNER 298*7c478bd9Sstevel@tonic-gate #define WACS_RTEE &__WACS_RTEE 299*7c478bd9Sstevel@tonic-gate #define WACS_LTEE &__WACS_LTEE 300*7c478bd9Sstevel@tonic-gate #define WACS_BTEE &__WACS_BTEE 301*7c478bd9Sstevel@tonic-gate #define WACS_TTEE &__WACS_TTEE 302*7c478bd9Sstevel@tonic-gate #define WACS_PLUS &__WACS_PLUS 303*7c478bd9Sstevel@tonic-gate #define WACS_S1 &__WACS_S1 304*7c478bd9Sstevel@tonic-gate #define WACS_S9 &__WACS_S9 305*7c478bd9Sstevel@tonic-gate #define WACS_DIAMOND &__WACS_DIAMOND 306*7c478bd9Sstevel@tonic-gate #define WACS_CKBOARD &__WACS_CKBOARD 307*7c478bd9Sstevel@tonic-gate #define WACS_DEGREE &__WACS_DEGREE 308*7c478bd9Sstevel@tonic-gate #define WACS_PLMINUS &__WACS_PLMINUS 309*7c478bd9Sstevel@tonic-gate #define WACS_BULLET &__WACS_BULLET 310*7c478bd9Sstevel@tonic-gate #define WACS_LARROW &__WACS_LARROW 311*7c478bd9Sstevel@tonic-gate #define WACS_RARROW &__WACS_RARROW 312*7c478bd9Sstevel@tonic-gate #define WACS_DARROW &__WACS_DARROW 313*7c478bd9Sstevel@tonic-gate #define WACS_UARROW &__WACS_UARROW 314*7c478bd9Sstevel@tonic-gate #define WACS_BOARD &__WACS_BOARD 315*7c478bd9Sstevel@tonic-gate #define WACS_LANTERN &__WACS_LANTERN 316*7c478bd9Sstevel@tonic-gate #define WACS_BLOCK &__WACS_BLOCK 317*7c478bd9Sstevel@tonic-gate 318*7c478bd9Sstevel@tonic-gate #ifndef _XOPEN_SOURCE 319*7c478bd9Sstevel@tonic-gate /* 320*7c478bd9Sstevel@tonic-gate * MKS Extensions for double width box characters. 321*7c478bd9Sstevel@tonic-gate */ 322*7c478bd9Sstevel@tonic-gate #define WACS_DVLINE WACS_VLINE 323*7c478bd9Sstevel@tonic-gate #define WACS_DHLINE WACS_HLINE 324*7c478bd9Sstevel@tonic-gate #define WACS_DULCORNER WACS_ULCORNER 325*7c478bd9Sstevel@tonic-gate #define WACS_DURCORNER WACS_URCORNER 326*7c478bd9Sstevel@tonic-gate #define WACS_DLLCORNER WACS_LLCORNER 327*7c478bd9Sstevel@tonic-gate #define WACS_DLRCORNER WACS_LRCORNER 328*7c478bd9Sstevel@tonic-gate #define WACS_DRTEE WACS_RTEE 329*7c478bd9Sstevel@tonic-gate #define WACS_DLTEE WACS_LTEE 330*7c478bd9Sstevel@tonic-gate #define WACS_DBTEE WACS_BTEE 331*7c478bd9Sstevel@tonic-gate #define WACS_DTTEE WACS_TTEE 332*7c478bd9Sstevel@tonic-gate #endif /* _XOPEN_SOURCE */ 333*7c478bd9Sstevel@tonic-gate 334*7c478bd9Sstevel@tonic-gate /* 335*7c478bd9Sstevel@tonic-gate * Internal functions. 336*7c478bd9Sstevel@tonic-gate */ 337*7c478bd9Sstevel@tonic-gate extern int __m_outc(int); 338*7c478bd9Sstevel@tonic-gate extern int __m_tty_wc(int, wchar_t *); 339*7c478bd9Sstevel@tonic-gate extern int __m_chtype_cc(chtype, cchar_t *); 340*7c478bd9Sstevel@tonic-gate extern chtype __m_cc_chtype(const cchar_t *); 341*7c478bd9Sstevel@tonic-gate extern int __m_copywin(const WINDOW *, WINDOW *, int); 342*7c478bd9Sstevel@tonic-gate extern WINDOW *__m_newwin(WINDOW *, int, int, int, int); 343*7c478bd9Sstevel@tonic-gate 344*7c478bd9Sstevel@tonic-gate /* 345*7c478bd9Sstevel@tonic-gate * Internal macros. 346*7c478bd9Sstevel@tonic-gate */ 347*7c478bd9Sstevel@tonic-gate #define __m_getpary(w) ((w)->_parent == (WINDOW *) 0 ? -1 \ 348*7c478bd9Sstevel@tonic-gate : (w)->_begy - (w)->_parent->_begy) 349*7c478bd9Sstevel@tonic-gate #define __m_getparx(w) ((w)->_parent == (WINDOW *) 0 ? -1 \ 350*7c478bd9Sstevel@tonic-gate : (w)->_begx - (w)->_parent->_begx) 351*7c478bd9Sstevel@tonic-gate 352*7c478bd9Sstevel@tonic-gate /* 353*7c478bd9Sstevel@tonic-gate * Global Window Macros 354*7c478bd9Sstevel@tonic-gate */ 355*7c478bd9Sstevel@tonic-gate #define getyx(w,y,x) (y = (w)->_cury, x = (w)->_curx) 356*7c478bd9Sstevel@tonic-gate #define getbegyx(w,y,x) (y = (w)->_begy, x = (w)->_begx) 357*7c478bd9Sstevel@tonic-gate #define getmaxyx(w,y,x) (y = (w)->_maxy, x = (w)->_maxx) 358*7c478bd9Sstevel@tonic-gate #define getparyx(w,y,x) (y = __m_getpary(w), x = __m_getparx(w)) 359*7c478bd9Sstevel@tonic-gate 360*7c478bd9Sstevel@tonic-gate /* 361*7c478bd9Sstevel@tonic-gate * Global variables 362*7c478bd9Sstevel@tonic-gate */ 363*7c478bd9Sstevel@tonic-gate extern int LINES, COLS; 364*7c478bd9Sstevel@tonic-gate extern int COLORS, COLOR_PAIRS; 365*7c478bd9Sstevel@tonic-gate extern WINDOW *curscr, *stdscr; 366*7c478bd9Sstevel@tonic-gate 367*7c478bd9Sstevel@tonic-gate #ifndef _XOPEN_SOURCE 368*7c478bd9Sstevel@tonic-gate /* 369*7c478bd9Sstevel@tonic-gate * Non-portable extension functions. 370*7c478bd9Sstevel@tonic-gate */ 371*7c478bd9Sstevel@tonic-gate extern int wistombs(char *, const wint_t *, int); 372*7c478bd9Sstevel@tonic-gate extern int wistowcs(wchar_t *, const wint_t *, int); 373*7c478bd9Sstevel@tonic-gate #endif /* _XOPEN_SOURCE */ 374*7c478bd9Sstevel@tonic-gate 375*7c478bd9Sstevel@tonic-gate #ifdef M_CURSES_TRACE 376*7c478bd9Sstevel@tonic-gate /* 377*7c478bd9Sstevel@tonic-gate * Curses trace facility is only available with a version of 378*7c478bd9Sstevel@tonic-gate * the library that was compiled with -DM_CURSES_TRACE. 379*7c478bd9Sstevel@tonic-gate */ 380*7c478bd9Sstevel@tonic-gate extern void traceoff(void); 381*7c478bd9Sstevel@tonic-gate extern void traceon(void); 382*7c478bd9Sstevel@tonic-gate #endif /* M_CURSES_TRACE */ 383*7c478bd9Sstevel@tonic-gate 384*7c478bd9Sstevel@tonic-gate extern int addch(chtype); 385*7c478bd9Sstevel@tonic-gate extern int addchnstr(const chtype *, int); 386*7c478bd9Sstevel@tonic-gate extern int addchstr(const chtype *); 387*7c478bd9Sstevel@tonic-gate extern int add_wch(const cchar_t *); 388*7c478bd9Sstevel@tonic-gate extern int add_wchnstr(const cchar_t *, int); 389*7c478bd9Sstevel@tonic-gate extern int add_wchstr(const cchar_t *); 390*7c478bd9Sstevel@tonic-gate extern int mvaddch(int, int, chtype); 391*7c478bd9Sstevel@tonic-gate extern int mvaddchnstr(int, int, const chtype *, int); 392*7c478bd9Sstevel@tonic-gate extern int mvaddchstr(int, int, const chtype *); 393*7c478bd9Sstevel@tonic-gate extern int mvadd_wch(int, int, const cchar_t *); 394*7c478bd9Sstevel@tonic-gate extern int mvadd_wchnstr(int, int, const cchar_t *, int); 395*7c478bd9Sstevel@tonic-gate extern int mvadd_wchstr(int, int, const cchar_t *); 396*7c478bd9Sstevel@tonic-gate extern int mvwaddch(WINDOW *, int, int, chtype); 397*7c478bd9Sstevel@tonic-gate extern int mvwaddchnstr(WINDOW *, int, int, const chtype *, int); 398*7c478bd9Sstevel@tonic-gate extern int mvwaddchstr(WINDOW *, int, int, const chtype *); 399*7c478bd9Sstevel@tonic-gate extern int mvwadd_wch(WINDOW *, int, int, const cchar_t *); 400*7c478bd9Sstevel@tonic-gate extern int mvwadd_wchnstr(WINDOW *, int, int, const cchar_t *, int); 401*7c478bd9Sstevel@tonic-gate extern int mvwadd_wchstr(WINDOW *, int, int, const cchar_t *); 402*7c478bd9Sstevel@tonic-gate extern int waddch(WINDOW *, chtype); 403*7c478bd9Sstevel@tonic-gate extern int waddchnstr(WINDOW *, const chtype *, int); 404*7c478bd9Sstevel@tonic-gate extern int waddchstr(WINDOW *, const chtype *); 405*7c478bd9Sstevel@tonic-gate extern int wadd_wch(WINDOW *, const cchar_t *); 406*7c478bd9Sstevel@tonic-gate extern int wadd_wchnstr(WINDOW *, const cchar_t *, int); 407*7c478bd9Sstevel@tonic-gate extern int wadd_wchstr(WINDOW *, const cchar_t *); 408*7c478bd9Sstevel@tonic-gate 409*7c478bd9Sstevel@tonic-gate extern int addnstr(const char *, int); 410*7c478bd9Sstevel@tonic-gate extern int addstr(const char *); 411*7c478bd9Sstevel@tonic-gate extern int addnwstr(const wchar_t *, int); 412*7c478bd9Sstevel@tonic-gate extern int addwstr(const wchar_t *); 413*7c478bd9Sstevel@tonic-gate extern int mvaddnstr(int, int, const char *, int); 414*7c478bd9Sstevel@tonic-gate extern int mvaddstr(int, int, const char *); 415*7c478bd9Sstevel@tonic-gate extern int mvaddnwstr(int, int, const wchar_t *, int); 416*7c478bd9Sstevel@tonic-gate extern int mvaddwstr(int, int, const wchar_t *); 417*7c478bd9Sstevel@tonic-gate extern int mvwaddnstr(WINDOW *, int, int, const char *, int); 418*7c478bd9Sstevel@tonic-gate extern int mvwaddstr(WINDOW *, int, int, const char *); 419*7c478bd9Sstevel@tonic-gate extern int mvwaddnwstr(WINDOW *, int, int, const wchar_t *, int); 420*7c478bd9Sstevel@tonic-gate extern int mvwaddwstr(WINDOW *, int, int, const wchar_t *); 421*7c478bd9Sstevel@tonic-gate extern int waddnstr(WINDOW *, const char *, int); 422*7c478bd9Sstevel@tonic-gate extern int waddstr(WINDOW *, const char *); 423*7c478bd9Sstevel@tonic-gate extern int waddnwstr(WINDOW *, const wchar_t *, int); 424*7c478bd9Sstevel@tonic-gate extern int waddwstr(WINDOW *, const wchar_t *); 425*7c478bd9Sstevel@tonic-gate 426*7c478bd9Sstevel@tonic-gate extern int attroff(int); 427*7c478bd9Sstevel@tonic-gate extern int attron(int); 428*7c478bd9Sstevel@tonic-gate extern int attrset(int); 429*7c478bd9Sstevel@tonic-gate extern int wattroff(WINDOW *, int); 430*7c478bd9Sstevel@tonic-gate extern int wattron(WINDOW *, int); 431*7c478bd9Sstevel@tonic-gate extern int wattrset(WINDOW *, int); 432*7c478bd9Sstevel@tonic-gate 433*7c478bd9Sstevel@tonic-gate extern int attr_get(attr_t *, short *, void *); 434*7c478bd9Sstevel@tonic-gate extern int attr_off(attr_t, void *); 435*7c478bd9Sstevel@tonic-gate extern int attr_on(attr_t, void *); 436*7c478bd9Sstevel@tonic-gate extern int attr_set(attr_t, short, void *); 437*7c478bd9Sstevel@tonic-gate extern int color_set(short, void *); 438*7c478bd9Sstevel@tonic-gate extern int wattr_get(WINDOW *, attr_t *, short *, void *); 439*7c478bd9Sstevel@tonic-gate extern int wattr_off(WINDOW *, attr_t, void *); 440*7c478bd9Sstevel@tonic-gate extern int wattr_on(WINDOW *, attr_t, void *); 441*7c478bd9Sstevel@tonic-gate extern int wattr_set(WINDOW *, attr_t, short, void *); 442*7c478bd9Sstevel@tonic-gate extern int wcolor_set(WINDOW *, short, void *); 443*7c478bd9Sstevel@tonic-gate 444*7c478bd9Sstevel@tonic-gate extern chtype COLOR_PAIR(short); 445*7c478bd9Sstevel@tonic-gate extern short PAIR_NUMBER(chtype); 446*7c478bd9Sstevel@tonic-gate 447*7c478bd9Sstevel@tonic-gate extern int baudrate(void); 448*7c478bd9Sstevel@tonic-gate 449*7c478bd9Sstevel@tonic-gate extern int delay_output(int); 450*7c478bd9Sstevel@tonic-gate extern int napms(int); 451*7c478bd9Sstevel@tonic-gate 452*7c478bd9Sstevel@tonic-gate extern int beep(void); 453*7c478bd9Sstevel@tonic-gate extern int flash(void); 454*7c478bd9Sstevel@tonic-gate 455*7c478bd9Sstevel@tonic-gate extern int bkgd(chtype); 456*7c478bd9Sstevel@tonic-gate extern int bkgdset(chtype); 457*7c478bd9Sstevel@tonic-gate extern chtype getbkgd(WINDOW *); 458*7c478bd9Sstevel@tonic-gate extern int wbkgd(WINDOW *, chtype); 459*7c478bd9Sstevel@tonic-gate extern int wbkgdset(WINDOW *, chtype); 460*7c478bd9Sstevel@tonic-gate 461*7c478bd9Sstevel@tonic-gate extern int bkgrnd(const cchar_t *); 462*7c478bd9Sstevel@tonic-gate extern void bkgrndset(const cchar_t *); 463*7c478bd9Sstevel@tonic-gate extern int getbkgrnd(cchar_t *); 464*7c478bd9Sstevel@tonic-gate extern int wbkgrnd(WINDOW *, const cchar_t *); 465*7c478bd9Sstevel@tonic-gate extern void wbkgrndset(WINDOW *, const cchar_t *); 466*7c478bd9Sstevel@tonic-gate extern int wgetbkgrnd(WINDOW *, cchar_t *); 467*7c478bd9Sstevel@tonic-gate 468*7c478bd9Sstevel@tonic-gate extern int border( 469*7c478bd9Sstevel@tonic-gate chtype, chtype, chtype, chtype, 470*7c478bd9Sstevel@tonic-gate chtype, chtype, chtype, chtype); 471*7c478bd9Sstevel@tonic-gate extern int border_set( 472*7c478bd9Sstevel@tonic-gate const cchar_t *, const cchar_t *, 473*7c478bd9Sstevel@tonic-gate const cchar_t *, const cchar_t *, 474*7c478bd9Sstevel@tonic-gate const cchar_t *, const cchar_t *, 475*7c478bd9Sstevel@tonic-gate const cchar_t *, const cchar_t *); 476*7c478bd9Sstevel@tonic-gate extern int box(WINDOW *, chtype, chtype); 477*7c478bd9Sstevel@tonic-gate extern int box_set(WINDOW *, const cchar_t *, const cchar_t *); 478*7c478bd9Sstevel@tonic-gate extern int wborder( 479*7c478bd9Sstevel@tonic-gate WINDOW *, 480*7c478bd9Sstevel@tonic-gate chtype, chtype, chtype, chtype, 481*7c478bd9Sstevel@tonic-gate chtype, chtype, chtype, chtype); 482*7c478bd9Sstevel@tonic-gate extern int wborder_set( 483*7c478bd9Sstevel@tonic-gate WINDOW *, 484*7c478bd9Sstevel@tonic-gate const cchar_t *, const cchar_t *, 485*7c478bd9Sstevel@tonic-gate const cchar_t *, const cchar_t *, 486*7c478bd9Sstevel@tonic-gate const cchar_t *, const cchar_t *, 487*7c478bd9Sstevel@tonic-gate const cchar_t *, const cchar_t *); 488*7c478bd9Sstevel@tonic-gate 489*7c478bd9Sstevel@tonic-gate extern bool can_change_color(void); 490*7c478bd9Sstevel@tonic-gate extern int color_content(short, short *, short *, short *); 491*7c478bd9Sstevel@tonic-gate extern bool has_colors(void); 492*7c478bd9Sstevel@tonic-gate extern int init_color(short, short, short, short); 493*7c478bd9Sstevel@tonic-gate extern int init_pair(short, short, short); 494*7c478bd9Sstevel@tonic-gate extern int pair_content(short, short *, short *); 495*7c478bd9Sstevel@tonic-gate extern int start_color(void); 496*7c478bd9Sstevel@tonic-gate 497*7c478bd9Sstevel@tonic-gate extern int cbreak(void); 498*7c478bd9Sstevel@tonic-gate extern int halfdelay(int); 499*7c478bd9Sstevel@tonic-gate extern int nocbreak(void); 500*7c478bd9Sstevel@tonic-gate extern int raw(void); 501*7c478bd9Sstevel@tonic-gate extern int noraw(void); 502*7c478bd9Sstevel@tonic-gate 503*7c478bd9Sstevel@tonic-gate extern int chgat(int, attr_t, short, const void *); 504*7c478bd9Sstevel@tonic-gate extern int mvchgat(int, int, int, attr_t, short, const void *); 505*7c478bd9Sstevel@tonic-gate extern int mvwchgat(WINDOW *, int, int, int, attr_t, short, const void *); 506*7c478bd9Sstevel@tonic-gate extern int wchgat(WINDOW *, int, attr_t, short, const void *); 507*7c478bd9Sstevel@tonic-gate 508*7c478bd9Sstevel@tonic-gate extern int clear(void); 509*7c478bd9Sstevel@tonic-gate extern int clrtobot(void); 510*7c478bd9Sstevel@tonic-gate extern int clrtoeol(void); 511*7c478bd9Sstevel@tonic-gate extern int erase(void); 512*7c478bd9Sstevel@tonic-gate extern int wclear(WINDOW *); 513*7c478bd9Sstevel@tonic-gate extern int wclrtobot(WINDOW *); 514*7c478bd9Sstevel@tonic-gate extern int wclrtoeol(WINDOW *); 515*7c478bd9Sstevel@tonic-gate extern int werase(WINDOW *); 516*7c478bd9Sstevel@tonic-gate 517*7c478bd9Sstevel@tonic-gate extern int clearok(WINDOW *, bool); 518*7c478bd9Sstevel@tonic-gate extern void idcok(WINDOW *, bool); 519*7c478bd9Sstevel@tonic-gate extern int idlok(WINDOW *, bool); 520*7c478bd9Sstevel@tonic-gate extern void immedok(WINDOW *, bool); 521*7c478bd9Sstevel@tonic-gate extern int intrflush(WINDOW *, bool); 522*7c478bd9Sstevel@tonic-gate extern int keypad(WINDOW *, bool); 523*7c478bd9Sstevel@tonic-gate extern int leaveok(WINDOW *, bool); 524*7c478bd9Sstevel@tonic-gate extern int meta(WINDOW *, bool); 525*7c478bd9Sstevel@tonic-gate extern int nodelay(WINDOW *, bool); 526*7c478bd9Sstevel@tonic-gate extern int notimeout(WINDOW *, bool); 527*7c478bd9Sstevel@tonic-gate extern int scrollok(WINDOW *, bool); 528*7c478bd9Sstevel@tonic-gate extern int syncok(WINDOW *, bool); 529*7c478bd9Sstevel@tonic-gate 530*7c478bd9Sstevel@tonic-gate extern int copywin(const WINDOW *, WINDOW *, int, int, int, int, int, int, int); 531*7c478bd9Sstevel@tonic-gate extern int overlay(const WINDOW *, WINDOW *); 532*7c478bd9Sstevel@tonic-gate extern int overwrite(const WINDOW *, WINDOW *); 533*7c478bd9Sstevel@tonic-gate 534*7c478bd9Sstevel@tonic-gate extern int curs_set(int); 535*7c478bd9Sstevel@tonic-gate 536*7c478bd9Sstevel@tonic-gate extern int def_prog_mode(void); 537*7c478bd9Sstevel@tonic-gate extern int def_shell_mode(void); 538*7c478bd9Sstevel@tonic-gate extern int reset_prog_mode(void); 539*7c478bd9Sstevel@tonic-gate extern int reset_shell_mode(void); 540*7c478bd9Sstevel@tonic-gate 541*7c478bd9Sstevel@tonic-gate extern int delch(void); 542*7c478bd9Sstevel@tonic-gate extern int mvdelch(int, int); 543*7c478bd9Sstevel@tonic-gate extern int mvwdelch(WINDOW *, int, int); 544*7c478bd9Sstevel@tonic-gate extern int wdelch(WINDOW *); 545*7c478bd9Sstevel@tonic-gate 546*7c478bd9Sstevel@tonic-gate extern int deleteln(void); 547*7c478bd9Sstevel@tonic-gate extern int insdelln(int); 548*7c478bd9Sstevel@tonic-gate extern int insertln(void); 549*7c478bd9Sstevel@tonic-gate extern int wdeleteln(WINDOW *); 550*7c478bd9Sstevel@tonic-gate extern int winsdelln(WINDOW *, int); 551*7c478bd9Sstevel@tonic-gate extern int winsertln(WINDOW *); 552*7c478bd9Sstevel@tonic-gate 553*7c478bd9Sstevel@tonic-gate extern void delscreen(SCREEN *); 554*7c478bd9Sstevel@tonic-gate extern SCREEN *newterm(char *, FILE *, FILE *); 555*7c478bd9Sstevel@tonic-gate extern SCREEN *set_term(SCREEN *); 556*7c478bd9Sstevel@tonic-gate 557*7c478bd9Sstevel@tonic-gate extern int delwin(WINDOW *); 558*7c478bd9Sstevel@tonic-gate extern WINDOW *derwin(WINDOW *, int, int, int, int); 559*7c478bd9Sstevel@tonic-gate extern WINDOW *dupwin(WINDOW *); 560*7c478bd9Sstevel@tonic-gate extern WINDOW *getwin(FILE *); 561*7c478bd9Sstevel@tonic-gate extern int mvwin(WINDOW *, int, int); 562*7c478bd9Sstevel@tonic-gate extern int mvderwin(WINDOW *, int, int); 563*7c478bd9Sstevel@tonic-gate extern WINDOW *newwin(int, int, int, int); 564*7c478bd9Sstevel@tonic-gate extern int putwin(WINDOW *, FILE *); 565*7c478bd9Sstevel@tonic-gate extern int redrawwin(WINDOW *); 566*7c478bd9Sstevel@tonic-gate extern WINDOW *subwin(WINDOW *, int, int, int, int); 567*7c478bd9Sstevel@tonic-gate extern int wredrawln(WINDOW *, int, int); 568*7c478bd9Sstevel@tonic-gate 569*7c478bd9Sstevel@tonic-gate extern int doupdate(void); 570*7c478bd9Sstevel@tonic-gate extern int refresh(void); 571*7c478bd9Sstevel@tonic-gate extern int wnoutrefresh(WINDOW *); 572*7c478bd9Sstevel@tonic-gate extern int wrefresh(WINDOW *); 573*7c478bd9Sstevel@tonic-gate 574*7c478bd9Sstevel@tonic-gate extern int echo(void); 575*7c478bd9Sstevel@tonic-gate extern int noecho(void); 576*7c478bd9Sstevel@tonic-gate extern int echochar(chtype); 577*7c478bd9Sstevel@tonic-gate extern int echo_wchar(const cchar_t *); 578*7c478bd9Sstevel@tonic-gate extern int wechochar(WINDOW *, chtype); 579*7c478bd9Sstevel@tonic-gate extern int wecho_wchar(WINDOW *, const cchar_t *); 580*7c478bd9Sstevel@tonic-gate 581*7c478bd9Sstevel@tonic-gate extern int endwin(void); 582*7c478bd9Sstevel@tonic-gate extern void filter(void); 583*7c478bd9Sstevel@tonic-gate extern WINDOW *initscr(void); 584*7c478bd9Sstevel@tonic-gate extern bool isendwin(void); 585*7c478bd9Sstevel@tonic-gate extern int ripoffline(int, int (*)(WINDOW *, int)); 586*7c478bd9Sstevel@tonic-gate extern int typeahead(int); 587*7c478bd9Sstevel@tonic-gate extern void use_env(bool); 588*7c478bd9Sstevel@tonic-gate 589*7c478bd9Sstevel@tonic-gate extern int erasechar(void); 590*7c478bd9Sstevel@tonic-gate extern int erasewchar(wchar_t *); 591*7c478bd9Sstevel@tonic-gate extern int killchar(void); 592*7c478bd9Sstevel@tonic-gate extern int killwchar(wchar_t *); 593*7c478bd9Sstevel@tonic-gate 594*7c478bd9Sstevel@tonic-gate extern int flushinp(void); 595*7c478bd9Sstevel@tonic-gate 596*7c478bd9Sstevel@tonic-gate extern int getcchar(const cchar_t *, wchar_t *, attr_t *, short *, void *); 597*7c478bd9Sstevel@tonic-gate extern int setcchar(cchar_t *, const wchar_t *, attr_t, short, const void *); 598*7c478bd9Sstevel@tonic-gate 599*7c478bd9Sstevel@tonic-gate extern int getch(void); 600*7c478bd9Sstevel@tonic-gate extern int get_wch(wint_t *); 601*7c478bd9Sstevel@tonic-gate extern int mvgetch(int, int); 602*7c478bd9Sstevel@tonic-gate extern int mvget_wch(int, int, wint_t *); 603*7c478bd9Sstevel@tonic-gate extern int mvwgetch(WINDOW *, int, int); 604*7c478bd9Sstevel@tonic-gate extern int mvwget_wch(WINDOW *, int, int, wint_t *); 605*7c478bd9Sstevel@tonic-gate extern int wgetch(WINDOW *); 606*7c478bd9Sstevel@tonic-gate extern int wget_wch(WINDOW *, wint_t *); 607*7c478bd9Sstevel@tonic-gate 608*7c478bd9Sstevel@tonic-gate extern int getnstr(char *, int); 609*7c478bd9Sstevel@tonic-gate extern int getstr(char *); 610*7c478bd9Sstevel@tonic-gate extern int mvgetnstr(int, int, char *, int); 611*7c478bd9Sstevel@tonic-gate extern int mvgetstr(int, int, char *); 612*7c478bd9Sstevel@tonic-gate extern int mvwgetnstr(WINDOW *, int, int, char *, int); 613*7c478bd9Sstevel@tonic-gate extern int mvwgetstr(WINDOW *, int, int, char *); 614*7c478bd9Sstevel@tonic-gate extern int wgetnstr(WINDOW *, char *, int); 615*7c478bd9Sstevel@tonic-gate extern int wgetstr(WINDOW *, char *); 616*7c478bd9Sstevel@tonic-gate 617*7c478bd9Sstevel@tonic-gate extern int getn_wstr(wint_t *, int); 618*7c478bd9Sstevel@tonic-gate extern int get_wstr(wint_t *); 619*7c478bd9Sstevel@tonic-gate extern int mvgetn_wstr(int, int, wint_t *, int); 620*7c478bd9Sstevel@tonic-gate extern int mvget_wstr(int, int, wint_t *); 621*7c478bd9Sstevel@tonic-gate extern int mvwgetn_wstr(WINDOW *, int, int, wint_t *, int); 622*7c478bd9Sstevel@tonic-gate extern int mvwget_wstr(WINDOW *, int, int, wint_t *); 623*7c478bd9Sstevel@tonic-gate extern int wgetn_wstr(WINDOW *, wint_t *, int); 624*7c478bd9Sstevel@tonic-gate extern int wget_wstr(WINDOW *, wint_t *); 625*7c478bd9Sstevel@tonic-gate 626*7c478bd9Sstevel@tonic-gate extern bool has_ic(void); 627*7c478bd9Sstevel@tonic-gate extern bool has_il(void); 628*7c478bd9Sstevel@tonic-gate 629*7c478bd9Sstevel@tonic-gate extern int hline(chtype, int); 630*7c478bd9Sstevel@tonic-gate extern int hline_set(const cchar_t *, int); 631*7c478bd9Sstevel@tonic-gate extern int vline(chtype, int); 632*7c478bd9Sstevel@tonic-gate extern int vline_set(const cchar_t *, int); 633*7c478bd9Sstevel@tonic-gate extern int mvhline(int, int, chtype, int); 634*7c478bd9Sstevel@tonic-gate extern int mvhline_set(int, int, const cchar_t *, int); 635*7c478bd9Sstevel@tonic-gate extern int mvvline(int, int, chtype, int); 636*7c478bd9Sstevel@tonic-gate extern int mvvline_set(int, int, const cchar_t *, int); 637*7c478bd9Sstevel@tonic-gate extern int mvwhline(WINDOW *, int, int, chtype, int); 638*7c478bd9Sstevel@tonic-gate extern int mvwhline_set(WINDOW *, int, int, const cchar_t *, int); 639*7c478bd9Sstevel@tonic-gate extern int mvwvline(WINDOW *, int, int, chtype, int); 640*7c478bd9Sstevel@tonic-gate extern int mvwvline_set(WINDOW *, int, int, const cchar_t *, int); 641*7c478bd9Sstevel@tonic-gate extern int whline(WINDOW *, chtype, int); 642*7c478bd9Sstevel@tonic-gate extern int whline_set(WINDOW *, const cchar_t *, int); 643*7c478bd9Sstevel@tonic-gate extern int wvline(WINDOW *, chtype, int); 644*7c478bd9Sstevel@tonic-gate extern int wvline_set(WINDOW *, const cchar_t *, int); 645*7c478bd9Sstevel@tonic-gate 646*7c478bd9Sstevel@tonic-gate extern chtype inch(void); 647*7c478bd9Sstevel@tonic-gate extern int inchnstr(chtype *, int); 648*7c478bd9Sstevel@tonic-gate extern int inchstr(chtype *); 649*7c478bd9Sstevel@tonic-gate extern int in_wch(cchar_t *); 650*7c478bd9Sstevel@tonic-gate extern int in_wchnstr(cchar_t *, int); 651*7c478bd9Sstevel@tonic-gate extern int in_wchstr(cchar_t *); 652*7c478bd9Sstevel@tonic-gate extern chtype mvinch(int, int); 653*7c478bd9Sstevel@tonic-gate extern int mvinchnstr(int, int, chtype *, int); 654*7c478bd9Sstevel@tonic-gate extern int mvinchstr(int, int, chtype *); 655*7c478bd9Sstevel@tonic-gate extern int mvin_wch(int, int, cchar_t *); 656*7c478bd9Sstevel@tonic-gate extern int mvin_wchnstr(int, int, cchar_t *, int); 657*7c478bd9Sstevel@tonic-gate extern int mvin_wchstr(int, int, cchar_t *); 658*7c478bd9Sstevel@tonic-gate extern chtype mvwinch(WINDOW *, int, int); 659*7c478bd9Sstevel@tonic-gate extern int mvwinchnstr(WINDOW *, int, int, chtype *, int); 660*7c478bd9Sstevel@tonic-gate extern int mvwinchstr(WINDOW *, int, int, chtype *); 661*7c478bd9Sstevel@tonic-gate extern int mvwin_wch(WINDOW *, int, int, cchar_t *); 662*7c478bd9Sstevel@tonic-gate extern int mvwin_wchnstr(WINDOW *, int, int, cchar_t *, int); 663*7c478bd9Sstevel@tonic-gate extern int mvwin_wchstr(WINDOW *, int, int, cchar_t *); 664*7c478bd9Sstevel@tonic-gate extern chtype winch(WINDOW *); 665*7c478bd9Sstevel@tonic-gate extern int winchnstr(WINDOW *, chtype *, int); 666*7c478bd9Sstevel@tonic-gate extern int winchstr(WINDOW *, chtype *); 667*7c478bd9Sstevel@tonic-gate extern int win_wch(WINDOW *, cchar_t *); 668*7c478bd9Sstevel@tonic-gate extern int win_wchnstr(WINDOW *, cchar_t *, int); 669*7c478bd9Sstevel@tonic-gate extern int win_wchstr(WINDOW *, cchar_t *); 670*7c478bd9Sstevel@tonic-gate 671*7c478bd9Sstevel@tonic-gate extern int innstr(char *, int); 672*7c478bd9Sstevel@tonic-gate extern int instr(char *); 673*7c478bd9Sstevel@tonic-gate extern int innwstr(wchar_t *, int); 674*7c478bd9Sstevel@tonic-gate extern int inwstr(wchar_t *); 675*7c478bd9Sstevel@tonic-gate extern int mvinnstr(int, int, char *, int); 676*7c478bd9Sstevel@tonic-gate extern int mvinstr(int, int, char *); 677*7c478bd9Sstevel@tonic-gate extern int mvinnwstr(int, int, wchar_t *, int); 678*7c478bd9Sstevel@tonic-gate extern int mvinwstr(int, int, wchar_t *); 679*7c478bd9Sstevel@tonic-gate extern int mvwinnstr(WINDOW *, int, int, char *, int); 680*7c478bd9Sstevel@tonic-gate extern int mvwinstr(WINDOW *, int, int, char *); 681*7c478bd9Sstevel@tonic-gate extern int mvwinnwstr(WINDOW *, int, int, wchar_t *, int); 682*7c478bd9Sstevel@tonic-gate extern int mvwinwstr(WINDOW *, int, int, wchar_t *); 683*7c478bd9Sstevel@tonic-gate extern int winnstr(WINDOW *, char *, int); 684*7c478bd9Sstevel@tonic-gate extern int winstr(WINDOW *, char *); 685*7c478bd9Sstevel@tonic-gate extern int winnwstr(WINDOW *, wchar_t *, int); 686*7c478bd9Sstevel@tonic-gate extern int winwstr(WINDOW *, wchar_t *); 687*7c478bd9Sstevel@tonic-gate 688*7c478bd9Sstevel@tonic-gate extern int insch(chtype); 689*7c478bd9Sstevel@tonic-gate extern int ins_wch(const cchar_t *); 690*7c478bd9Sstevel@tonic-gate extern int mvinsch(int, int, chtype); 691*7c478bd9Sstevel@tonic-gate extern int mvins_wch(int, int, const cchar_t *); 692*7c478bd9Sstevel@tonic-gate extern int mvwinsch(WINDOW *, int, int, chtype); 693*7c478bd9Sstevel@tonic-gate extern int mvwins_wch(WINDOW *, int, int, const cchar_t *); 694*7c478bd9Sstevel@tonic-gate extern int winsch(WINDOW *, chtype); 695*7c478bd9Sstevel@tonic-gate extern int wins_wch(WINDOW *, const cchar_t *); 696*7c478bd9Sstevel@tonic-gate 697*7c478bd9Sstevel@tonic-gate extern int insnstr(const char *, int); 698*7c478bd9Sstevel@tonic-gate extern int insstr(const char *); 699*7c478bd9Sstevel@tonic-gate extern int ins_nwstr(const wchar_t *, int); 700*7c478bd9Sstevel@tonic-gate extern int ins_wstr(const wchar_t *); 701*7c478bd9Sstevel@tonic-gate extern int mvinsnstr(int, int, const char *, int); 702*7c478bd9Sstevel@tonic-gate extern int mvinsstr(int, int, const char *); 703*7c478bd9Sstevel@tonic-gate extern int mvins_nwstr(int, int, const wchar_t *, int); 704*7c478bd9Sstevel@tonic-gate extern int mvins_wstr(int, int, const wchar_t *); 705*7c478bd9Sstevel@tonic-gate extern int mvwinsnstr(WINDOW *, int, int, const char *, int); 706*7c478bd9Sstevel@tonic-gate extern int mvwinsstr(WINDOW *, int, int, const char *); 707*7c478bd9Sstevel@tonic-gate extern int mvwins_nwstr(WINDOW *, int, int, const wchar_t *, int); 708*7c478bd9Sstevel@tonic-gate extern int mvwins_wstr(WINDOW *, int, int, const wchar_t *); 709*7c478bd9Sstevel@tonic-gate extern int winsnstr(WINDOW *, const char *, int); 710*7c478bd9Sstevel@tonic-gate extern int winsstr(WINDOW *, const char *); 711*7c478bd9Sstevel@tonic-gate extern int wins_nwstr(WINDOW *, const wchar_t *, int); 712*7c478bd9Sstevel@tonic-gate extern int wins_wstr(WINDOW *, const wchar_t *); 713*7c478bd9Sstevel@tonic-gate 714*7c478bd9Sstevel@tonic-gate extern bool is_linetouched(WINDOW *, int); 715*7c478bd9Sstevel@tonic-gate extern bool is_wintouched(WINDOW *); 716*7c478bd9Sstevel@tonic-gate extern int touchline(WINDOW *, int, int); 717*7c478bd9Sstevel@tonic-gate extern int touchwin(WINDOW *); 718*7c478bd9Sstevel@tonic-gate extern int wtouchln(WINDOW *, int, int, int); 719*7c478bd9Sstevel@tonic-gate extern int untouchwin(WINDOW *); 720*7c478bd9Sstevel@tonic-gate 721*7c478bd9Sstevel@tonic-gate extern const char *keyname(int); 722*7c478bd9Sstevel@tonic-gate extern const char *key_name(wchar_t); 723*7c478bd9Sstevel@tonic-gate 724*7c478bd9Sstevel@tonic-gate extern char *longname(void); 725*7c478bd9Sstevel@tonic-gate extern char *termname(void); 726*7c478bd9Sstevel@tonic-gate 727*7c478bd9Sstevel@tonic-gate extern int move(int, int); 728*7c478bd9Sstevel@tonic-gate extern int wmove(WINDOW *, int, int); 729*7c478bd9Sstevel@tonic-gate 730*7c478bd9Sstevel@tonic-gate extern int mvcur(int, int, int, int); 731*7c478bd9Sstevel@tonic-gate 732*7c478bd9Sstevel@tonic-gate extern WINDOW *newpad(int, int); 733*7c478bd9Sstevel@tonic-gate extern int pechochar(WINDOW *, chtype); 734*7c478bd9Sstevel@tonic-gate extern int pecho_wchar(WINDOW *, const cchar_t *); 735*7c478bd9Sstevel@tonic-gate extern int pnoutrefresh(WINDOW *, int, int, int, int, int, int); 736*7c478bd9Sstevel@tonic-gate extern int prefresh(WINDOW *, int, int, int, int, int, int); 737*7c478bd9Sstevel@tonic-gate extern WINDOW *subpad(WINDOW *, int, int, int, int); 738*7c478bd9Sstevel@tonic-gate 739*7c478bd9Sstevel@tonic-gate extern int nl(void); 740*7c478bd9Sstevel@tonic-gate extern int nonl(void); 741*7c478bd9Sstevel@tonic-gate 742*7c478bd9Sstevel@tonic-gate extern int printw(const char *, ...); 743*7c478bd9Sstevel@tonic-gate extern int mvprintw(int, int, const char *, ...); 744*7c478bd9Sstevel@tonic-gate extern int mvwprintw(WINDOW *, int, int, const char *, ...); 745*7c478bd9Sstevel@tonic-gate #if defined(sun) 746*7c478bd9Sstevel@tonic-gate extern int vwprintw(WINDOW *, const char *, __va_list); 747*7c478bd9Sstevel@tonic-gate extern int vw_printw(WINDOW *, const char *, __va_list); 748*7c478bd9Sstevel@tonic-gate #else 749*7c478bd9Sstevel@tonic-gate extern int vwprintw(WINDOW *, const char *, void *); 750*7c478bd9Sstevel@tonic-gate extern int vw_printw(WINDOW *, const char *, void *); 751*7c478bd9Sstevel@tonic-gate #endif 752*7c478bd9Sstevel@tonic-gate extern int wprintw(WINDOW *, const char *, ...); 753*7c478bd9Sstevel@tonic-gate 754*7c478bd9Sstevel@tonic-gate extern void qiflush(void); 755*7c478bd9Sstevel@tonic-gate extern void noqiflush(void); 756*7c478bd9Sstevel@tonic-gate 757*7c478bd9Sstevel@tonic-gate extern int resetty(void); 758*7c478bd9Sstevel@tonic-gate extern int savetty(void); 759*7c478bd9Sstevel@tonic-gate 760*7c478bd9Sstevel@tonic-gate extern int scanw(const char *, ...); 761*7c478bd9Sstevel@tonic-gate extern int mvscanw(int, int, const char *, ...); 762*7c478bd9Sstevel@tonic-gate extern int mvwscanw(WINDOW *, int, int, const char *, ...); 763*7c478bd9Sstevel@tonic-gate #if defined(sun) 764*7c478bd9Sstevel@tonic-gate extern int vwscanw(WINDOW *, const char *, __va_list); 765*7c478bd9Sstevel@tonic-gate extern int vw_scanw(WINDOW *, const char *, __va_list); 766*7c478bd9Sstevel@tonic-gate #else 767*7c478bd9Sstevel@tonic-gate extern int vwscanw(WINDOW *, const char *, void *); 768*7c478bd9Sstevel@tonic-gate extern int vw_scanw(WINDOW *, const char *, void *); 769*7c478bd9Sstevel@tonic-gate #endif 770*7c478bd9Sstevel@tonic-gate extern int wscanw(WINDOW *, const char *, ...); 771*7c478bd9Sstevel@tonic-gate 772*7c478bd9Sstevel@tonic-gate extern int scr_dump(const char *); 773*7c478bd9Sstevel@tonic-gate extern int scr_init(const char *); 774*7c478bd9Sstevel@tonic-gate extern int scr_restore(const char *); 775*7c478bd9Sstevel@tonic-gate extern int scr_set(const char *); 776*7c478bd9Sstevel@tonic-gate 777*7c478bd9Sstevel@tonic-gate extern int scrl(int); 778*7c478bd9Sstevel@tonic-gate extern int scroll(WINDOW *); 779*7c478bd9Sstevel@tonic-gate extern int setscrreg(int, int); 780*7c478bd9Sstevel@tonic-gate extern int wscrl(WINDOW *, int); 781*7c478bd9Sstevel@tonic-gate extern int wsetscrreg(WINDOW *, int, int); 782*7c478bd9Sstevel@tonic-gate 783*7c478bd9Sstevel@tonic-gate extern int slk_attroff(const chtype); 784*7c478bd9Sstevel@tonic-gate extern int slk_attron(const chtype); 785*7c478bd9Sstevel@tonic-gate extern int slk_attrset(const chtype); 786*7c478bd9Sstevel@tonic-gate extern int slk_attr_off(const attr_t, void *); 787*7c478bd9Sstevel@tonic-gate extern int slk_attr_on(const attr_t, void *); 788*7c478bd9Sstevel@tonic-gate extern int slk_attr_set(const attr_t, short, void *); 789*7c478bd9Sstevel@tonic-gate extern int slk_color_set(short); 790*7c478bd9Sstevel@tonic-gate extern int slk_clear(void); 791*7c478bd9Sstevel@tonic-gate extern int slk_init(int); 792*7c478bd9Sstevel@tonic-gate extern char *slk_label(int); 793*7c478bd9Sstevel@tonic-gate extern int slk_noutrefresh(void); 794*7c478bd9Sstevel@tonic-gate extern int slk_refresh(void); 795*7c478bd9Sstevel@tonic-gate extern int slk_restore(void); 796*7c478bd9Sstevel@tonic-gate extern int slk_set(int, const char *, int); 797*7c478bd9Sstevel@tonic-gate extern int slk_touch(void); 798*7c478bd9Sstevel@tonic-gate extern int slk_wset(int, const wchar_t *, int); 799*7c478bd9Sstevel@tonic-gate 800*7c478bd9Sstevel@tonic-gate extern int standend(void); 801*7c478bd9Sstevel@tonic-gate extern int wstandend(WINDOW *); 802*7c478bd9Sstevel@tonic-gate extern int standout(void); 803*7c478bd9Sstevel@tonic-gate extern int wstandout(WINDOW *); 804*7c478bd9Sstevel@tonic-gate 805*7c478bd9Sstevel@tonic-gate extern chtype termattrs(void); 806*7c478bd9Sstevel@tonic-gate extern attr_t term_attrs(void); 807*7c478bd9Sstevel@tonic-gate 808*7c478bd9Sstevel@tonic-gate extern void timeout(int); 809*7c478bd9Sstevel@tonic-gate extern void wtimeout(WINDOW *, int); 810*7c478bd9Sstevel@tonic-gate 811*7c478bd9Sstevel@tonic-gate extern int ungetch(int); 812*7c478bd9Sstevel@tonic-gate extern int unget_wch(const wchar_t); 813*7c478bd9Sstevel@tonic-gate 814*7c478bd9Sstevel@tonic-gate extern int vidattr(chtype); 815*7c478bd9Sstevel@tonic-gate extern int vid_attr(attr_t, short, void *); 816*7c478bd9Sstevel@tonic-gate extern int vidputs(chtype, int (*)(int)); 817*7c478bd9Sstevel@tonic-gate extern int vid_puts(attr_t, short, void *, int (*)(int)); 818*7c478bd9Sstevel@tonic-gate 819*7c478bd9Sstevel@tonic-gate extern void wcursyncup(WINDOW *); 820*7c478bd9Sstevel@tonic-gate extern void wsyncdown(WINDOW *); 821*7c478bd9Sstevel@tonic-gate extern void wsyncup(WINDOW *); 822*7c478bd9Sstevel@tonic-gate 823*7c478bd9Sstevel@tonic-gate extern const wchar_t *wunctrl(const cchar_t *); 824*7c478bd9Sstevel@tonic-gate 825*7c478bd9Sstevel@tonic-gate /* 826*7c478bd9Sstevel@tonic-gate * These macros are not suitable for strict XPG4 conformance, 827*7c478bd9Sstevel@tonic-gate * because some of them evaluate their arguments more than once. 828*7c478bd9Sstevel@tonic-gate * However, they can improve speed and size of an application, 829*7c478bd9Sstevel@tonic-gate * provided an application is careful about not using side effects 830*7c478bd9Sstevel@tonic-gate * with function/macro parameters. 831*7c478bd9Sstevel@tonic-gate */ 832*7c478bd9Sstevel@tonic-gate #ifndef _XOPEN_SOURCE_EXTENDED 833*7c478bd9Sstevel@tonic-gate 834*7c478bd9Sstevel@tonic-gate #define addch(ch) waddch(stdscr,ch) 835*7c478bd9Sstevel@tonic-gate #define mvaddch(y,x,ch) (move(y,x)?ERR:addch(ch)) 836*7c478bd9Sstevel@tonic-gate #define mvwaddch(w,y,x,ch) (wmove(w,y,x)?ERR:waddch(w,ch)) 837*7c478bd9Sstevel@tonic-gate 838*7c478bd9Sstevel@tonic-gate #define add_wch(cp) wadd_wch(stdscr,cp) 839*7c478bd9Sstevel@tonic-gate #define mvadd_wch(y,x,cp) (move(y,x)?ERR:add_wch(cp)) 840*7c478bd9Sstevel@tonic-gate #define mvwadd_wch(w,y,x,cp) (wmove(w,y,x)?ERR:wadd_wch(w,cp)) 841*7c478bd9Sstevel@tonic-gate 842*7c478bd9Sstevel@tonic-gate #define addchnstr(chs,n) waddchnstr(stdscr,chs,n) 843*7c478bd9Sstevel@tonic-gate #define addchstr(chs) waddchstr(stdscr,chs) 844*7c478bd9Sstevel@tonic-gate #define mvaddchnstr(y,x,chs,n) (move(y,x)?ERR:addchnstr(chs,n)) 845*7c478bd9Sstevel@tonic-gate #define mvaddchstr(y,x,chs) (move(y,x)?ERR:addchstr(chs)) 846*7c478bd9Sstevel@tonic-gate #define mvwaddchnstr(w,y,x,chs,n) (wmove(w,y,x)?ERR:waddchnstr(w,chs,n)) 847*7c478bd9Sstevel@tonic-gate #define mvwaddchstr(w,y,x,chs) (wmove(w,y,x)?ERR:waddchstr(w,chs)) 848*7c478bd9Sstevel@tonic-gate #define waddchstr(w,chs) waddchnstr(w,chs,-1) 849*7c478bd9Sstevel@tonic-gate 850*7c478bd9Sstevel@tonic-gate #define add_wchnstr(cp,n) wadd_wchnstr(stdscr,cp,n) 851*7c478bd9Sstevel@tonic-gate #define add_wchstr(cp) wadd_wchstr(stdscr,cp) 852*7c478bd9Sstevel@tonic-gate #define mvadd_wchnstr(y,x,cp,n) (move(y,x)?ERR:add_wchnstr(cp,n)) 853*7c478bd9Sstevel@tonic-gate #define mvadd_wchstr(y,x,cp) (move(y,x)?ERR:add_wchstr(cp)) 854*7c478bd9Sstevel@tonic-gate #define mvwadd_wchnstr(w,y,x,cp,n) (wmove(w,y,x)?ERR:wadd_wchnstr(w,cp,n)) 855*7c478bd9Sstevel@tonic-gate #define mvwadd_wchstr(w,y,x,cp) (wmove(w,y,x)?ERR:wadd_wchstr(w,cp)) 856*7c478bd9Sstevel@tonic-gate #define wadd_wchstr(w,cp) wadd_wchnstr(w,cp,-1) 857*7c478bd9Sstevel@tonic-gate 858*7c478bd9Sstevel@tonic-gate #define addnstr(s,n) waddnstr(stdscr,s,n) 859*7c478bd9Sstevel@tonic-gate #define addstr(s) waddstr(stdscr,s) 860*7c478bd9Sstevel@tonic-gate #define mvaddnstr(y,x,s,n) (move(y,x)?ERR:addnstr(s,n)) 861*7c478bd9Sstevel@tonic-gate #define mvaddstr(y,x,s) (move(y,x)?ERR:addstr(s)) 862*7c478bd9Sstevel@tonic-gate #define mvwaddnstr(w,y,x,s,n) (wmove(w,y,x)?ERR:waddnstr(w,s,n)) 863*7c478bd9Sstevel@tonic-gate #define mvwaddstr(w,y,x,s) (wmove(w,y,x)?ERR:waddstr(w,s)) 864*7c478bd9Sstevel@tonic-gate #define waddstr(w,wcs) waddnstr(w,wcs,-1) 865*7c478bd9Sstevel@tonic-gate 866*7c478bd9Sstevel@tonic-gate #define addnwstr(wcs,n) waddnwstr(stdscr,wcs,n) 867*7c478bd9Sstevel@tonic-gate #define addwstr(wcs) waddwstr(stdscr,wcs) 868*7c478bd9Sstevel@tonic-gate #define mvaddnwstr(y,x,wcs,n) (move(y,x)?ERR:addnwstr(wcs,n)) 869*7c478bd9Sstevel@tonic-gate #define mvaddwstr(y,x,wcs) (move(y,x)?ERR:addwstr(wcs)) 870*7c478bd9Sstevel@tonic-gate #define mvwaddnwstr(w,y,x,wcs,n) (wmove(w,y,x)?ERR:waddnwstr(w,wcs,n)) 871*7c478bd9Sstevel@tonic-gate #define mvwaddwstr(w,y,x,wcs) (wmove(w,y,x)?ERR:waddwstr(w,wcs)) 872*7c478bd9Sstevel@tonic-gate #define waddwstr(w,wcs) waddnwstr(w,wcs,-1) 873*7c478bd9Sstevel@tonic-gate 874*7c478bd9Sstevel@tonic-gate #define attr_get(a,c,o) wattr_get(stdscr,a,c,o) 875*7c478bd9Sstevel@tonic-gate #define attr_off(a,o) wattr_off(stdscr,a,o) 876*7c478bd9Sstevel@tonic-gate #define attr_on(a,o) wattr_on(stdscr,a,o) 877*7c478bd9Sstevel@tonic-gate #define attr_set(a,c,o) wattr_set(stdscr,a,c,o) 878*7c478bd9Sstevel@tonic-gate 879*7c478bd9Sstevel@tonic-gate #define COLOR_PAIR(n) ((chtype)(n)<<__COLOR_SHIFT) 880*7c478bd9Sstevel@tonic-gate #define PAIR_NUMBER(a) (((chtype)(a)&A_COLOR)>>__COLOR_SHIFT) 881*7c478bd9Sstevel@tonic-gate 882*7c478bd9Sstevel@tonic-gate #define bkgd(ch) wbkgd(stdscr, ch) 883*7c478bd9Sstevel@tonic-gate #define bkgdset(ch) __m_chtype_cc(ch, &stdscr->_bg) 884*7c478bd9Sstevel@tonic-gate #define getbkgd(w) __m_cc_chtype(&(w)->_bg) 885*7c478bd9Sstevel@tonic-gate #define wbkgdset(w,ch) __m_chtype_cc(ch, &(w)->_bg) 886*7c478bd9Sstevel@tonic-gate 887*7c478bd9Sstevel@tonic-gate #define bkgrnd(b) wbkgrnd(stdscr,b) 888*7c478bd9Sstevel@tonic-gate #define bkgrndset(b) wbkgrndset(stdscr,b) 889*7c478bd9Sstevel@tonic-gate #define getbkgrnd(b) wgetbkgrnd(stdscr,b) 890*7c478bd9Sstevel@tonic-gate #define wbkgrndset(w,b) ((w)->_bg = *(b)) 891*7c478bd9Sstevel@tonic-gate #define wgetbkgrnd(w,b) (*(b) = (w)->_bg, OK) 892*7c478bd9Sstevel@tonic-gate 893*7c478bd9Sstevel@tonic-gate #define border(ls, rs, ts, bs, tl, tr, bl, br) \ 894*7c478bd9Sstevel@tonic-gate wborder(stdscr, ls, rs, ts, bs, tl, tr, bl, br) 895*7c478bd9Sstevel@tonic-gate #define border_set(ls, rs, ts, bs, tl, tr, bl, br) \ 896*7c478bd9Sstevel@tonic-gate wborder_set(stdscr, ls, rs, ts, bs, tl, tr, bl, br) 897*7c478bd9Sstevel@tonic-gate #define box(w,v,h) wborder(w,v,v,h,h,0,0,0,0) 898*7c478bd9Sstevel@tonic-gate #define box_set(w,v,h) wborder_set(w,v,v,h,h,0,0,0,0) 899*7c478bd9Sstevel@tonic-gate 900*7c478bd9Sstevel@tonic-gate #define can_change_color() (2 < max_colors && can_change \ 901*7c478bd9Sstevel@tonic-gate && initialize_color != (char *) 0) 902*7c478bd9Sstevel@tonic-gate #define has_colors() (0 < max_colors) 903*7c478bd9Sstevel@tonic-gate 904*7c478bd9Sstevel@tonic-gate #define chgat(n,a,co,p) wchgat(stdscr,n,a,co,p) 905*7c478bd9Sstevel@tonic-gate #define mvchgat(y,x,n,a,co,p) (move(y,x)?ERR:chgat(n,a,co,p)) 906*7c478bd9Sstevel@tonic-gate #define mvwchgat(w,y,x,n,a,co,p) (wmove(w,y,x)?ERR:wchgat(w,n,a,co,p)) 907*7c478bd9Sstevel@tonic-gate 908*7c478bd9Sstevel@tonic-gate #define clear() wclear(stdscr) 909*7c478bd9Sstevel@tonic-gate #define clrtobot() wclrtobot(stdscr) 910*7c478bd9Sstevel@tonic-gate #define clrtoeol() wclrtoeol(stdscr) 911*7c478bd9Sstevel@tonic-gate #define erase() werase(stdscr) 912*7c478bd9Sstevel@tonic-gate #define wclear(w) (clearok(w,1)?ERR:werase(w)) 913*7c478bd9Sstevel@tonic-gate #define werase(w) (wmove(w,0,0)?ERR:wclrtobot(w)) 914*7c478bd9Sstevel@tonic-gate 915*7c478bd9Sstevel@tonic-gate #define delch() wdelch(stdscr) 916*7c478bd9Sstevel@tonic-gate #define mvdelch(y,x) (move(y,x)?ERR:delch()) 917*7c478bd9Sstevel@tonic-gate #define mvwdelch(w,y,x) (wmove(w,y,x)?ERR:wdelch(w)) 918*7c478bd9Sstevel@tonic-gate 919*7c478bd9Sstevel@tonic-gate #define deleteln() wdeleteln(stdscr) 920*7c478bd9Sstevel@tonic-gate #define insdelln(n) winsdelln(stdscr,n) 921*7c478bd9Sstevel@tonic-gate #define insertln() winsertln(stdscr) 922*7c478bd9Sstevel@tonic-gate #define wdeleteln(w) winsdelln(w, -1) 923*7c478bd9Sstevel@tonic-gate #define winsertln(w) winsdelln(w, 1) 924*7c478bd9Sstevel@tonic-gate 925*7c478bd9Sstevel@tonic-gate #define refresh() wrefresh(stdscr) 926*7c478bd9Sstevel@tonic-gate 927*7c478bd9Sstevel@tonic-gate #define echochar(ch) wechochar(stdscr,ch) 928*7c478bd9Sstevel@tonic-gate #define echo_wchar(cp) wecho_wchar(stdscr,cp) 929*7c478bd9Sstevel@tonic-gate #define wechochar(w,ch) (waddch(w,ch)?ERR:wrefresh(w)) 930*7c478bd9Sstevel@tonic-gate #define wecho_wchar(w,cp) (wadd_wch(w,cp)?ERR:wrefresh(w)) 931*7c478bd9Sstevel@tonic-gate 932*7c478bd9Sstevel@tonic-gate #define erasewchar(wp) __m_tty_wc(VERASE, wp) 933*7c478bd9Sstevel@tonic-gate #define killwchar(wp) __m_tty_wc(VKILL, wp) 934*7c478bd9Sstevel@tonic-gate 935*7c478bd9Sstevel@tonic-gate #define getch() wgetch(stdscr) 936*7c478bd9Sstevel@tonic-gate #define mvgetch(y,x) (move(y,x)?ERR:getch()) 937*7c478bd9Sstevel@tonic-gate #define mvwgetch(w,y,x) (wmove(w,y,x)?ERR:wgetch(w)) 938*7c478bd9Sstevel@tonic-gate 939*7c478bd9Sstevel@tonic-gate #define get_wch(wcp) wget_wch(stdscr,wcp) 940*7c478bd9Sstevel@tonic-gate #define mvget_wch(y,x,wcp) (move(y,x)?ERR:get_wch(wcp)) 941*7c478bd9Sstevel@tonic-gate #define mvwget_wch(w,y,x,wcp) (wmove(w,y,x)?ERR:wget_wch(w,wcp)) 942*7c478bd9Sstevel@tonic-gate 943*7c478bd9Sstevel@tonic-gate #define getnstr(s,n) wgetnstr(stdscr,s,n) 944*7c478bd9Sstevel@tonic-gate #define getstr(s) wgetstr(stdscr,s) 945*7c478bd9Sstevel@tonic-gate #define mvgetnstr(y,x,s,n) (move(y,x)?ERR:getnstr(s,n)) 946*7c478bd9Sstevel@tonic-gate #define mvgetstr(y,x,s) (move(y,x)?ERR:getstr(s)) 947*7c478bd9Sstevel@tonic-gate #define mvwgetnstr(w,y,x,s,n) (wmove(w,y,x)?ERR:wgetnstr(w,s,n)) 948*7c478bd9Sstevel@tonic-gate #define mvwgetstr(w,y,x,s) (wmove(w,y,x)?ERR:wgetstr(w,s)) 949*7c478bd9Sstevel@tonic-gate #define wgetstr(w,s) wgetnstr(w,s,-1) 950*7c478bd9Sstevel@tonic-gate 951*7c478bd9Sstevel@tonic-gate #define getn_wstr(wcs,n) wgetn_wstr(stdscr,wcs,n) 952*7c478bd9Sstevel@tonic-gate #define get_wstr(wcs) wget_wstr(stdscr,wcs) 953*7c478bd9Sstevel@tonic-gate #define mvgetn_wstr(y,x,wcs,n) (move(y,x)?ERR:getn_wstr(wcs,n)) 954*7c478bd9Sstevel@tonic-gate #define mvget_wstr(y,x,wcs) (move(y,x)?ERR:get_wstr(wcs)) 955*7c478bd9Sstevel@tonic-gate #define mvwgetn_wstr(w,y,x,wcs,n) (wmove(w,y,x)?ERR:wgetn_wstr(w,wcs,n)) 956*7c478bd9Sstevel@tonic-gate #define mvwget_wstr(w,y,x,wcs) (wmove(w,y,x)?ERR:wget_wstr(w,wcs)) 957*7c478bd9Sstevel@tonic-gate #define wget_wstr(w,wcs) wgetn_wstr(w,wcs,-1) 958*7c478bd9Sstevel@tonic-gate 959*7c478bd9Sstevel@tonic-gate #define has_ic() (((insert_character != (char *) 0 \ 960*7c478bd9Sstevel@tonic-gate || parm_ich != (char *) 0) \ 961*7c478bd9Sstevel@tonic-gate && (delete_character != (char *) 0 \ 962*7c478bd9Sstevel@tonic-gate || parm_dch != (char *) 0)) \ 963*7c478bd9Sstevel@tonic-gate || (enter_insert_mode != (char *) 0 \ 964*7c478bd9Sstevel@tonic-gate && exit_insert_mode)) 965*7c478bd9Sstevel@tonic-gate 966*7c478bd9Sstevel@tonic-gate #define has_il() (((insert_line != (char *) 0 \ 967*7c478bd9Sstevel@tonic-gate || parm_insert_line != (char *) 0) \ 968*7c478bd9Sstevel@tonic-gate && (delete_line != (char *) 0 \ 969*7c478bd9Sstevel@tonic-gate || parm_delete_line !=(char*)0)) \ 970*7c478bd9Sstevel@tonic-gate || change_scroll_region != (char *) 0) 971*7c478bd9Sstevel@tonic-gate 972*7c478bd9Sstevel@tonic-gate 973*7c478bd9Sstevel@tonic-gate #define hline(ch,n) whline(stdscr,ch,n) 974*7c478bd9Sstevel@tonic-gate #define vline(ch,n) wvline(stdscr,ch,n) 975*7c478bd9Sstevel@tonic-gate #define mvhline(y,x,ch,n) (move(y,x)?ERR:hline(ch,n)) 976*7c478bd9Sstevel@tonic-gate #define mvvline(y,x,ch,n) (move(y,x)?ERR:vline(ch,n)) 977*7c478bd9Sstevel@tonic-gate #define mvwhline(w,y,x,ch,n) (wmove(w,y,x)?ERR:whline(w,ch,n)) 978*7c478bd9Sstevel@tonic-gate #define mvwvline(w,y,x,ch,n) (wmove(w,y,x)?ERR:wvline(w,ch,n)) 979*7c478bd9Sstevel@tonic-gate 980*7c478bd9Sstevel@tonic-gate #define hline_set(cp,n) whline_set(stdscr,cp,n) 981*7c478bd9Sstevel@tonic-gate #define vline_set(cp,n) wvline_set(stdscr,cp,n) 982*7c478bd9Sstevel@tonic-gate #define mvhline_set(y,x,cp,n) (move(y,x)?ERR:hline_set(cp,n)) 983*7c478bd9Sstevel@tonic-gate #define mvvline_set(y,x,cp,n) (move(y,x)?ERR:vline_set(cp,n)) 984*7c478bd9Sstevel@tonic-gate #define mvwhline_set(w,y,x,cp,n) (wmove(w,y,x)?ERR:whline_set(w,cp,n)) 985*7c478bd9Sstevel@tonic-gate #define mvwvline_set(w,y,x,cp,n) (wmove(w,y,x)?ERR:wvline_set(w,cp,n)) 986*7c478bd9Sstevel@tonic-gate 987*7c478bd9Sstevel@tonic-gate #define inch() winch(stdscr) 988*7c478bd9Sstevel@tonic-gate #define mvinch(y,x) (move(y,x)?ERR:inch()) 989*7c478bd9Sstevel@tonic-gate #define mvwinch(w,y,x) (wmove(w,y,x)?ERR:winch(w)) 990*7c478bd9Sstevel@tonic-gate 991*7c478bd9Sstevel@tonic-gate #define in_wch(cp) win_wch(stdscr,cp) 992*7c478bd9Sstevel@tonic-gate #define mvin_wch(y,x,cp) (move(y,x)?ERR:in_wch(cp)) 993*7c478bd9Sstevel@tonic-gate #define mvwin_wch(w,y,x,cp) (wmove(w,y,x)?ERR:win_wch(w,cp)) 994*7c478bd9Sstevel@tonic-gate 995*7c478bd9Sstevel@tonic-gate #define inchnstr(chs,n) winchnstr(stdscr,chs,n) 996*7c478bd9Sstevel@tonic-gate #define inchstr(chs) winchstr(stdscr,chs) 997*7c478bd9Sstevel@tonic-gate #define mvinchnstr(y,x,chs,n) (move(y,x)?ERR:inchnstr(chs,n)) 998*7c478bd9Sstevel@tonic-gate #define mvinchstr(y,x,chs) (move(y,x)?ERR:inchstr(chs)) 999*7c478bd9Sstevel@tonic-gate #define mvwinchnstr(w,y,x,chs,n) (wmove(w,y,x)?ERR:winchnstr(w,chs,n)) 1000*7c478bd9Sstevel@tonic-gate #define mvwinchstr(w,y,x,chs) (wmove(w,y,x)?ERR:winchstr(w,chs)) 1001*7c478bd9Sstevel@tonic-gate #define winchstr(w,chs) winchnstr(w,chs,-1) 1002*7c478bd9Sstevel@tonic-gate 1003*7c478bd9Sstevel@tonic-gate #define in_wchnstr(cp,n) win_wchnstr(stdscr,cp,n) 1004*7c478bd9Sstevel@tonic-gate #define in_wchstr(cp) win_wchstr(stdscr,cp) 1005*7c478bd9Sstevel@tonic-gate #define mvin_wchnstr(y,x,cp,n) (move(y,x)?ERR:in_wchnstr(cp,n)) 1006*7c478bd9Sstevel@tonic-gate #define mvin_wchstr(y,x,cp) (move(y,x)?ERR:in_wchstr(cp)) 1007*7c478bd9Sstevel@tonic-gate #define mvwin_wchnstr(w,y,x,cp,n) (wmove(w,y,x)?ERR:win_wchnstr(w,cp,n)) 1008*7c478bd9Sstevel@tonic-gate #define mvwin_wchstr(w,y,x,cp) (wmove(w,y,x)?ERR:win_wchstr(w,cp)) 1009*7c478bd9Sstevel@tonic-gate #define win_wchstr(w,cp) win_wchnstr(w,cp,-1) 1010*7c478bd9Sstevel@tonic-gate 1011*7c478bd9Sstevel@tonic-gate #define innstr(s,n) winnstr(stdscr,s,n) 1012*7c478bd9Sstevel@tonic-gate #define instr(s) winstr(stdscr,s) 1013*7c478bd9Sstevel@tonic-gate #define mvinnstr(y,x,s,n) (move(y,x)?ERR:innstr(s,n)) 1014*7c478bd9Sstevel@tonic-gate #define mvinstr(y,x,s) (move(y,x)?ERR:instr(s)) 1015*7c478bd9Sstevel@tonic-gate #define mvwinnstr(w,y,x,s,n) (wmove(w,y,x)?ERR:winnstr(w,s,n)) 1016*7c478bd9Sstevel@tonic-gate #define mvwinstr(w,y,x,s) (wmove(w,y,x)?ERR:winstr(w,s)) 1017*7c478bd9Sstevel@tonic-gate #define winstr(w,s) winnstr(w,s,-1) 1018*7c478bd9Sstevel@tonic-gate 1019*7c478bd9Sstevel@tonic-gate #define innwstr(wcs,n) winnwstr(stdscr,wcs,n) 1020*7c478bd9Sstevel@tonic-gate #define inwstr(wcs) winwstr(stdscr,wcs) 1021*7c478bd9Sstevel@tonic-gate #define mvinnwstr(y,x,wcs,n) (move(y,x)?ERR:innwstr(wcs,n)) 1022*7c478bd9Sstevel@tonic-gate #define mvinwstr(y,x,wcs) (move(y,x)?ERR:inwstr(wcs)) 1023*7c478bd9Sstevel@tonic-gate #define mvwinnwstr(w,y,x,wcs,n) (wmove(w,y,x)?ERR:winnwstr(w,wcs,n)) 1024*7c478bd9Sstevel@tonic-gate #define mvwinwstr(w,y,x,wcs) (wmove(w,y,x)?ERR:winwstr(w,wcs)) 1025*7c478bd9Sstevel@tonic-gate #define winwstr(w,wcs) winnwstr(w,wcs,-1) 1026*7c478bd9Sstevel@tonic-gate 1027*7c478bd9Sstevel@tonic-gate #define insch(ch) winsch(stdscr,ch) 1028*7c478bd9Sstevel@tonic-gate #define mvinsch(y,x,ch) (move(y,x)?ERR:insch(ch)) 1029*7c478bd9Sstevel@tonic-gate #define mvwinsch(w,y,x,ch) (wmove(w,y,x)?ERR:winsch(w,ch)) 1030*7c478bd9Sstevel@tonic-gate 1031*7c478bd9Sstevel@tonic-gate #define ins_wch(cp) wins_wch(stdscr,cp) 1032*7c478bd9Sstevel@tonic-gate #define mvins_wch(y,x,cp) (move(y,x)?ERR:ins_wch(cp)) 1033*7c478bd9Sstevel@tonic-gate #define mvwins_wch(w,y,x,cp) (wmove(w,y,x)?ERR:wins_wch(w,cp)) 1034*7c478bd9Sstevel@tonic-gate 1035*7c478bd9Sstevel@tonic-gate #define insnstr(s,n) winsnstr(stdscr,s,n) 1036*7c478bd9Sstevel@tonic-gate #define insstr(s) winsstr(stdscr,s) 1037*7c478bd9Sstevel@tonic-gate #define mvinsnstr(y,x,s,n) (move(y,x)?ERR:insnstr(s,n)) 1038*7c478bd9Sstevel@tonic-gate #define mvinsstr(y,x,s) (move(y,x)?ERR:insstr(s)) 1039*7c478bd9Sstevel@tonic-gate #define mvwinsnstr(w, y, x, s, n) (wmove(w, y, x)?ERR:winsnstr(w, s, n)) 1040*7c478bd9Sstevel@tonic-gate #define mvwinsstr(w, y, x, s) (wmove(w, y, x)?ERR:winsstr(w, s)) 1041*7c478bd9Sstevel@tonic-gate #define winsstr(w, s) winsnstr(w, s, -1) 1042*7c478bd9Sstevel@tonic-gate 1043*7c478bd9Sstevel@tonic-gate #define ins_nwstr(wcs, n) wins_nwstr(stdscr, wcs, n) 1044*7c478bd9Sstevel@tonic-gate #define ins_wstr(wcs) wins_wstr(stdscr, wcs) 1045*7c478bd9Sstevel@tonic-gate #define mvins_nwstr(y, x, wcs, n) (move(y, x)?ERR:ins_nwstr(wcs, n)) 1046*7c478bd9Sstevel@tonic-gate #define mvins_wstr(y, x, wcs) (move(y, x)?ERR:ins_wstr(wcs)) 1047*7c478bd9Sstevel@tonic-gate #define mvwins_nwstr(w, y, x, wcs, n) (wmove(w, y, x)?ERR:wins_nwstr(w,wcs,n)) 1048*7c478bd9Sstevel@tonic-gate #define mvwins_wstr(w, y, x, wcs) (wmove(w, y, x)?ERR:wins_wstr(w,wcs)) 1049*7c478bd9Sstevel@tonic-gate #define wins_wstr(w, wcs) wins_nwstr(w, wcs, -1) 1050*7c478bd9Sstevel@tonic-gate 1051*7c478bd9Sstevel@tonic-gate #define is_linetouched(w, y) (0 <= (w)->_last[y]) 1052*7c478bd9Sstevel@tonic-gate 1053*7c478bd9Sstevel@tonic-gate #define mvcur(or, oc, nr, nc) __m_mvcur(or, oc, nr, nc, __m_outc) 1054*7c478bd9Sstevel@tonic-gate 1055*7c478bd9Sstevel@tonic-gate #define move(y, x) wmove(stdscr, y, x) 1056*7c478bd9Sstevel@tonic-gate 1057*7c478bd9Sstevel@tonic-gate #define overlay(s, t) __m_copywin(s, t, 1) 1058*7c478bd9Sstevel@tonic-gate #define overwrite(s, t) __m_copywin(s, t, 0) 1059*7c478bd9Sstevel@tonic-gate 1060*7c478bd9Sstevel@tonic-gate #define newpad(ny, nx) __m_newwin((WINDOW *) 0, ny, nx, -1, -1) 1061*7c478bd9Sstevel@tonic-gate #define subpad(par, ny, nx, by, bx) subwin(par, ny, nx, by, bx) 1062*7c478bd9Sstevel@tonic-gate 1063*7c478bd9Sstevel@tonic-gate #define nodelay(w, bf) (wtimeout(w, (bf)?0:-1), OK) 1064*7c478bd9Sstevel@tonic-gate #define timeout(n) wtimeout(stdscr, n) 1065*7c478bd9Sstevel@tonic-gate 1066*7c478bd9Sstevel@tonic-gate #define qiflush() ((void) intrflush((WINDOW *) 0, 1)) 1067*7c478bd9Sstevel@tonic-gate #define noqiflush() ((void) intrflush((WINDOW *) 0, 0)) 1068*7c478bd9Sstevel@tonic-gate 1069*7c478bd9Sstevel@tonic-gate #define redrawwin(w) wredrawln(w, 0, (w)->_maxy) 1070*7c478bd9Sstevel@tonic-gate 1071*7c478bd9Sstevel@tonic-gate #define scrl(n) wscrl(stdscr, n) 1072*7c478bd9Sstevel@tonic-gate #define setscrreg(t, b) wsetscrreg(stdscr, t, b) 1073*7c478bd9Sstevel@tonic-gate 1074*7c478bd9Sstevel@tonic-gate #define standend() wstandend(stdscr) 1075*7c478bd9Sstevel@tonic-gate #define standout() wstandout(stdscr) 1076*7c478bd9Sstevel@tonic-gate #define wstandend(w) (wattr_set(w, WA_NORMAL, COLOR_BLACK, \ 1077*7c478bd9Sstevel@tonic-gate (void *)0), 1) 1078*7c478bd9Sstevel@tonic-gate #define wstandout(w) (wattr_on(w, WA_STANDOUT, (void *)0), 1) 1079*7c478bd9Sstevel@tonic-gate 1080*7c478bd9Sstevel@tonic-gate #define touchline(w, y, n) wtouchln(w, y, n, 1) 1081*7c478bd9Sstevel@tonic-gate #define touchwin(w) wtouchln(w, 0, (w)->_maxy, 1) 1082*7c478bd9Sstevel@tonic-gate #define untouchwin(w) wtouchln(w, 0, (w)->_maxy, 0) 1083*7c478bd9Sstevel@tonic-gate 1084*7c478bd9Sstevel@tonic-gate #define termname() (cur_term->_term) 1085*7c478bd9Sstevel@tonic-gate 1086*7c478bd9Sstevel@tonic-gate #ifndef _XOPEN_SOURCE 1087*7c478bd9Sstevel@tonic-gate /* 1088*7c478bd9Sstevel@tonic-gate * Obsolete functions names. 1089*7c478bd9Sstevel@tonic-gate */ 1090*7c478bd9Sstevel@tonic-gate #define crmode cbreak 1091*7c478bd9Sstevel@tonic-gate #define nocrmode nocbreak 1092*7c478bd9Sstevel@tonic-gate #define saveterm def_prog_mode 1093*7c478bd9Sstevel@tonic-gate #define fixterm reset_prog_mode 1094*7c478bd9Sstevel@tonic-gate #define resetterm reset_shell_mode 1095*7c478bd9Sstevel@tonic-gate #endif /* _XOPEN_SOURCE */ 1096*7c478bd9Sstevel@tonic-gate #endif /* _XOPEN_SOURCE_EXTENDED */ 1097*7c478bd9Sstevel@tonic-gate 1098*7c478bd9Sstevel@tonic-gate /* 1099*7c478bd9Sstevel@tonic-gate * Special Keys 1100*7c478bd9Sstevel@tonic-gate * 1101*7c478bd9Sstevel@tonic-gate * Keypad layout 1102*7c478bd9Sstevel@tonic-gate * A1 up A3 1103*7c478bd9Sstevel@tonic-gate * left B2 right 1104*7c478bd9Sstevel@tonic-gate * C1 down C3 1105*7c478bd9Sstevel@tonic-gate * 1106*7c478bd9Sstevel@tonic-gate * Chossing negative values for KEY_ constants means that they can 1107*7c478bd9Sstevel@tonic-gate * be safely returned in either an int or long type. 1108*7c478bd9Sstevel@tonic-gate */ 1109*7c478bd9Sstevel@tonic-gate #define __KEY_BASE (-2) 1110*7c478bd9Sstevel@tonic-gate #define __KEY_MAX __KEY_BASE 1111*7c478bd9Sstevel@tonic-gate 1112*7c478bd9Sstevel@tonic-gate #define KEY_CODE_YES (__KEY_BASE-1) /* Special indicator. */ 1113*7c478bd9Sstevel@tonic-gate 1114*7c478bd9Sstevel@tonic-gate #define KEY_BREAK (__KEY_BASE-2) /* Break key (unreliable) */ 1115*7c478bd9Sstevel@tonic-gate #define KEY_DOWN (__KEY_BASE-3) /* The four arrow keys ... */ 1116*7c478bd9Sstevel@tonic-gate #define KEY_UP (__KEY_BASE-4) 1117*7c478bd9Sstevel@tonic-gate #define KEY_LEFT (__KEY_BASE-5) 1118*7c478bd9Sstevel@tonic-gate #define KEY_RIGHT (__KEY_BASE-6) 1119*7c478bd9Sstevel@tonic-gate #define KEY_HOME (__KEY_BASE-7) /* Move to upper-left corner. */ 1120*7c478bd9Sstevel@tonic-gate #define KEY_BACKSPACE (__KEY_BASE-8) /* Backspace */ 1121*7c478bd9Sstevel@tonic-gate #define KEY_F0 (__KEY_BASE-9) /* Function keys. Space for */ 1122*7c478bd9Sstevel@tonic-gate #define KEY_F(n) (KEY_F0-(n)) /* 64 keys is reserved. */ 1123*7c478bd9Sstevel@tonic-gate #define KEY_DL (__KEY_BASE-73) /* Delete line */ 1124*7c478bd9Sstevel@tonic-gate #define KEY_IL (__KEY_BASE-74) /* Insert line */ 1125*7c478bd9Sstevel@tonic-gate #define KEY_DC (__KEY_BASE-75) /* Delete character */ 1126*7c478bd9Sstevel@tonic-gate #define KEY_IC (__KEY_BASE-76) /* Ins char / enter ins mode */ 1127*7c478bd9Sstevel@tonic-gate #define KEY_EIC (__KEY_BASE-77) /* Exit insert char mode */ 1128*7c478bd9Sstevel@tonic-gate #define KEY_CLEAR (__KEY_BASE-78) /* Clear screen */ 1129*7c478bd9Sstevel@tonic-gate #define KEY_EOS (__KEY_BASE-79) /* Clear to end of screen */ 1130*7c478bd9Sstevel@tonic-gate #define KEY_EOL (__KEY_BASE-80) /* Clear to end of line */ 1131*7c478bd9Sstevel@tonic-gate #define KEY_SF (__KEY_BASE-81) /* Scroll 1 line forward */ 1132*7c478bd9Sstevel@tonic-gate #define KEY_SR (__KEY_BASE-82) /* Scroll 1 line backwards */ 1133*7c478bd9Sstevel@tonic-gate #define KEY_NPAGE (__KEY_BASE-83) /* Next page */ 1134*7c478bd9Sstevel@tonic-gate #define KEY_PPAGE (__KEY_BASE-84) /* Previous page */ 1135*7c478bd9Sstevel@tonic-gate #define KEY_STAB (__KEY_BASE-85) /* Set tab */ 1136*7c478bd9Sstevel@tonic-gate #define KEY_CTAB (__KEY_BASE-86) /* Clear tab */ 1137*7c478bd9Sstevel@tonic-gate #define KEY_CATAB (__KEY_BASE-87) /* Clear all tabs */ 1138*7c478bd9Sstevel@tonic-gate #define KEY_ENTER (__KEY_BASE-88) /* Enter or send */ 1139*7c478bd9Sstevel@tonic-gate #define KEY_SRESET (__KEY_BASE-89) /* Soft (partial) reset */ 1140*7c478bd9Sstevel@tonic-gate #define KEY_RESET (__KEY_BASE-90) /* Hard reset */ 1141*7c478bd9Sstevel@tonic-gate #define KEY_PRINT (__KEY_BASE-91) /* Print or copy */ 1142*7c478bd9Sstevel@tonic-gate #define KEY_LL (__KEY_BASE-92) /* Move to lower left corner. */ 1143*7c478bd9Sstevel@tonic-gate #define KEY_A1 (__KEY_BASE-93) /* Upper left of keypad */ 1144*7c478bd9Sstevel@tonic-gate #define KEY_A3 (__KEY_BASE-94) /* Upper rght of keypad */ 1145*7c478bd9Sstevel@tonic-gate #define KEY_B2 (__KEY_BASE-95) /* Center of keypad */ 1146*7c478bd9Sstevel@tonic-gate #define KEY_C1 (__KEY_BASE-96) /* Lower left of keypad */ 1147*7c478bd9Sstevel@tonic-gate #define KEY_C3 (__KEY_BASE-97) /* Lower right of keypad */ 1148*7c478bd9Sstevel@tonic-gate #define KEY_BTAB (__KEY_BASE-98) /* Back Tab */ 1149*7c478bd9Sstevel@tonic-gate #define KEY_BEG (__KEY_BASE-99) /* Beginning */ 1150*7c478bd9Sstevel@tonic-gate #define KEY_CANCEL (__KEY_BASE-100) 1151*7c478bd9Sstevel@tonic-gate #define KEY_CLOSE (__KEY_BASE-101) 1152*7c478bd9Sstevel@tonic-gate #define KEY_COMMAND (__KEY_BASE-102) 1153*7c478bd9Sstevel@tonic-gate #define KEY_COPY (__KEY_BASE-103) 1154*7c478bd9Sstevel@tonic-gate #define KEY_CREATE (__KEY_BASE-104) 1155*7c478bd9Sstevel@tonic-gate #define KEY_END (__KEY_BASE-105) 1156*7c478bd9Sstevel@tonic-gate #define KEY_EXIT (__KEY_BASE-106) 1157*7c478bd9Sstevel@tonic-gate #define KEY_FIND (__KEY_BASE-107) 1158*7c478bd9Sstevel@tonic-gate #define KEY_HELP (__KEY_BASE-108) 1159*7c478bd9Sstevel@tonic-gate #define KEY_MARK (__KEY_BASE-109) 1160*7c478bd9Sstevel@tonic-gate #define KEY_MESSAGE (__KEY_BASE-110) 1161*7c478bd9Sstevel@tonic-gate #define KEY_MOUSE (__KEY_BASE-111) /* Mouse event occured */ 1162*7c478bd9Sstevel@tonic-gate #define KEY_MOVE (__KEY_BASE-112) 1163*7c478bd9Sstevel@tonic-gate #define KEY_NEXT (__KEY_BASE-113) /* Next object */ 1164*7c478bd9Sstevel@tonic-gate #define KEY_OPEN (__KEY_BASE-114) 1165*7c478bd9Sstevel@tonic-gate #define KEY_OPTIONS (__KEY_BASE-115) 1166*7c478bd9Sstevel@tonic-gate #define KEY_PREVIOUS (__KEY_BASE-116) /* Previous object */ 1167*7c478bd9Sstevel@tonic-gate #define KEY_REDO (__KEY_BASE-117) 1168*7c478bd9Sstevel@tonic-gate #define KEY_REFERENCE (__KEY_BASE-118) 1169*7c478bd9Sstevel@tonic-gate #define KEY_REFRESH (__KEY_BASE-119) 1170*7c478bd9Sstevel@tonic-gate #define KEY_REPLACE (__KEY_BASE-120) 1171*7c478bd9Sstevel@tonic-gate #define KEY_RESTART (__KEY_BASE-121) 1172*7c478bd9Sstevel@tonic-gate #define KEY_RESUME (__KEY_BASE-122) 1173*7c478bd9Sstevel@tonic-gate #define KEY_SAVE (__KEY_BASE-123) 1174*7c478bd9Sstevel@tonic-gate #define KEY_SBEG (__KEY_BASE-124) /* Shifted keys */ 1175*7c478bd9Sstevel@tonic-gate #define KEY_SCANCEL (__KEY_BASE-125) 1176*7c478bd9Sstevel@tonic-gate #define KEY_SCOMMAND (__KEY_BASE-126) 1177*7c478bd9Sstevel@tonic-gate #define KEY_SCOPY (__KEY_BASE-127) 1178*7c478bd9Sstevel@tonic-gate #define KEY_SCREATE (__KEY_BASE-128) 1179*7c478bd9Sstevel@tonic-gate #define KEY_SDC (__KEY_BASE-129) 1180*7c478bd9Sstevel@tonic-gate #define KEY_SDL (__KEY_BASE-130) 1181*7c478bd9Sstevel@tonic-gate #define KEY_SELECT (__KEY_BASE-131) /* Select */ 1182*7c478bd9Sstevel@tonic-gate #define KEY_SEND (__KEY_BASE-132) /* Shifted end key */ 1183*7c478bd9Sstevel@tonic-gate #define KEY_SEOL (__KEY_BASE-133) 1184*7c478bd9Sstevel@tonic-gate #define KEY_SEXIT (__KEY_BASE-134) 1185*7c478bd9Sstevel@tonic-gate #define KEY_SFIND (__KEY_BASE-135) 1186*7c478bd9Sstevel@tonic-gate #define KEY_SHELP (__KEY_BASE-136) 1187*7c478bd9Sstevel@tonic-gate #define KEY_SHOME (__KEY_BASE-137) 1188*7c478bd9Sstevel@tonic-gate #define KEY_SIC (__KEY_BASE-138) 1189*7c478bd9Sstevel@tonic-gate #define KEY_SLEFT (__KEY_BASE-139) 1190*7c478bd9Sstevel@tonic-gate #define KEY_SMESSAGE (__KEY_BASE-140) 1191*7c478bd9Sstevel@tonic-gate #define KEY_SMOVE (__KEY_BASE-141) 1192*7c478bd9Sstevel@tonic-gate #define KEY_SNEXT (__KEY_BASE-142) 1193*7c478bd9Sstevel@tonic-gate #define KEY_SOPTIONS (__KEY_BASE-143) 1194*7c478bd9Sstevel@tonic-gate #define KEY_SPREVIOUS (__KEY_BASE-144) 1195*7c478bd9Sstevel@tonic-gate #define KEY_SPRINT (__KEY_BASE-145) 1196*7c478bd9Sstevel@tonic-gate #define KEY_SREDO (__KEY_BASE-146) 1197*7c478bd9Sstevel@tonic-gate #define KEY_SREPLACE (__KEY_BASE-147) 1198*7c478bd9Sstevel@tonic-gate #define KEY_SRIGHT (__KEY_BASE-148) 1199*7c478bd9Sstevel@tonic-gate #define KEY_SRSUME (__KEY_BASE-149) 1200*7c478bd9Sstevel@tonic-gate #define KEY_SSAVE (__KEY_BASE-150) 1201*7c478bd9Sstevel@tonic-gate #define KEY_SSUSPEND (__KEY_BASE-151) 1202*7c478bd9Sstevel@tonic-gate #define KEY_SUNDO (__KEY_BASE-152) 1203*7c478bd9Sstevel@tonic-gate #define KEY_SUSPEND (__KEY_BASE-153) 1204*7c478bd9Sstevel@tonic-gate #define KEY_UNDO (__KEY_BASE-154) 1205*7c478bd9Sstevel@tonic-gate 1206*7c478bd9Sstevel@tonic-gate #define __KEY_MIN (__KEY_BASE-155) 1207*7c478bd9Sstevel@tonic-gate 1208*7c478bd9Sstevel@tonic-gate #endif /* __M_CURSES_H__ */ 1209