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