/* IBM_PROLOG_BEGIN_TAG */ /* This is an automatically generated prolog. */ /* */ /* bos72Q src/bos/usr/include/cur01.h 1.19.1.1 */ /* */ /* Licensed Materials - Property of IBM */ /* */ /* COPYRIGHT International Business Machines Corp. 1985,2019 */ /* All Rights Reserved */ /* */ /* US Government Users Restricted Rights - Use, duplication or */ /* disclosure restricted by GSA ADP Schedule Contract with IBM Corp. */ /* */ /* IBM_PROLOG_END_TAG */ /* @(#)20 1.19.1.1 src/bos/usr/include/cur01.h, libcurses, bos72Q, q2019_13A4 2/5/19 03:06:40 */ #ifndef _H_CUR01 #define _H_CUR01 /* * COMPONENT_NAME: (LIBCUR) Extended Curses Library * * FUNCTIONS: cur01.h * * ORIGINS: 10, 27 * * (C) COPYRIGHT International Business Machines Corp. 1985, 1988 * All Rights Reserved * Licensed Materials - Property of IBM * US Government Users Restricted Rights - Use, duplication or * disclosure restricted by GSA ADP Schedule Contract with IBM Corp. */ /* * NAME: cur01.h * * FUNCTION: This file contains the defines and * declarations needed by most application programs. It is normally * included by cur00.h for other Ecurses routines. * * DATA STRUCTURES = WINDOW (struct _win_st), SGTTY * * Changes: * 1. 8/27/90 add wrefresh function to mvwgetch to move cursor * to location in the window where input was expected. */ #include #if (IS1|IS2|V7) #include #else #include #endif #include #ifdef __cplusplus extern "C" { #endif #ifndef TRUE #define TRUE (1) #endif #ifndef FALSE #define FALSE (0) #endif #define ERR (0) #define OK (1) /* see cur05.h */ #define NLSCHAR wchar_t #define NLSBLANK (NLSCHAR) ' ' #define NLSNL (NLSCHAR) '\n' #define ATTR unsigned short #define WINDOW struct _win_st struct _win_st { short _cury, _curx; /* current (y,x) window coordinates */ short _maxy, _maxx; /* number of rows and columns */ short _begy, _begx; /* starting (y,x) coordinates on glass */ short _winy, _winx; /* for a view: starting (y,x) in original */ short _flags; /* for various #define state flags */ short *_firstch; /* optimization arrays: first and last */ short *_lastch; /* position changed on a row by row basis */ char _clear; /* clear flag */ char _leave; /* cursor leave ok flag */ char _scroll; /* window scroll ok flag */ ATTR _csbp; /* current standout(attribute) bit pattern */ NLSCHAR **_y; /* window character array */ ATTR **_a; /* window attribute array */ struct _win_st *_view; /* for a view: pointer to original window */ short _tmarg, _bmarg; /* top and bottom of scrolling region */ }; /* The following #defines are the flags defined within the _flags */ /* field in the WINDOW structure above */ #define _SUBWIN 01 #define _ENDLINE 02 #define _FULLWIN 04 #define _SCROLLWIN 010 #define _FLUSH 020 #define _ISVIEW 040 #define _HASVIEW 0100 #define _STANDOUT 0200 #define _NOCHANGE -1 extern int LINES, COLS; extern WINDOW *stdscr, *curscr; /* The following external definitions are used by the box drawing */ /* functions to specify the normal characters to be used in the boxes */ extern char *BX, *BY; /* The following integers are used to specify the display attribute */ /* mask to the colorout function. */ extern int NORMAL, STANDOUT, REVERSE, BOLD, UNDERSCORE, TOPLINE, BOTTOMLINE, RIGHTLINE, LEFTLINE, DIM, INVISIBLE, PROTECTED, BLINK, F_WHITE, F_RED, F_BLUE, F_GREEN, F_BROWN, F_MAGENTA, F_CYAN, F_BLACK, B_BLACK, B_RED, B_BLUE, B_GREEN, B_BROWN, B_MAGENTA, B_CYAN, B_WHITE, FONT0, FONT1, FONT2, FONT3, FONT4, FONT5, FONT6, FONT7; extern char ESCSTR[]; /* * Define VOID to stop lint from generating "null effect" comments. */ #ifdef lint int __void__; #define VOID(x) (__void__ = (int) (x)) #else #define VOID(x) (x) #endif /* * psuedo functions for standard screen */ #define chgat(num, mod) VOID(wchgat(stdscr, num, mod)) #define addch(ch) VOID(waddch(stdscr, ch)) #define getch() VOID(wgetch(stdscr)) #define addstr(str) VOID(waddstr(stdscr, str)) #define getstr(str) VOID(wgetstr(stdscr, str)) #define move(y, x) VOID(wmove(stdscr, y, x)) #define clear() VOID(wclear(stdscr)) #define erase() VOID(werase(stdscr)) #define clrtobot() VOID(wclrtobot(stdscr)) #define clrtoeol() VOID(wclrtoeol(stdscr)) #define insertln() VOID(winsertln(stdscr)) #define deleteln() VOID(wdeleteln(stdscr)) #define refresh() VOID(wrefresh(stdscr)) #define inch() VOID(winch(stdscr)) #define insch(c) VOID(winsch(stdscr, c)) #define delch() VOID(wdelch(stdscr)) #define standout() VOID(xstandout(stdscr, 1 )) #define standend() VOID(xstandend(stdscr)) #define colorout(a) VOID(xstandout(stdscr, a)) #define colorend() VOID(xstandend(stdscr)) #define overwrite(a,b) VOID(overput(a, b, TRUE)) #define overlay(a, b) VOID(overput(a, b, FALSE)) #define wcolorout(w,a) VOID(xstandout(w, a)) #define wstandout(win) VOID(xstandout(win, 1 )) #define wstandend(win) VOID(xstandend(win)) #define wcolorend(win) VOID(xstandend(win)) #define setscrreg(t,b) VOID(wsetscrreg(stdscr, t, b)) #define wsetscrreg(win,t,b) VOID((win->_tmarg=(t),win->_bmarg=(b))) /* * mv functions */ #define mvwchgat(win,y,x,n,m) VOID(wmove(win,y,x)==ERR?ERR:wchgat(win,n,m)) #define mvwaddch(win,y,x,ch) VOID(wmove(win,y,x)==ERR?ERR:waddch(win,ch)) #define mvwgetch(win,y,x) VOID(wmove(win,y,x)==ERR?ERR:(wrefresh(win),wgetch(win))) #define mvwaddstr(win,y,x,str) VOID(wmove(win,y,x)==ERR?ERR:waddstr(win,str)) #define mvwgetstr(win,y,x,s) VOID(wmove(win,y,x)==ERR?ERR:wgetstr(win,s)) #define mvwinch(win,y,x) VOID(wmove(win,y,x)==ERR?ERR:winch(win)) #define mvwdelch(win,y,x) VOID(wmove(win,y,x)==ERR?ERR:wdelch(win)) #define mvwinsch(win,y,x,c) VOID(wmove(win,y,x)==ERR?ERR:winsch(win,c)) #define mvchgat(y,x,n,m) mvwchgat(stdscr,y,x,n,m) #define mvaddch(y,x,ch) mvwaddch(stdscr,y,x,ch) #define mvgetch(y,x) mvwgetch(stdscr,y,x) #define mvaddstr(y,x,str) mvwaddstr(stdscr,y,x,str) #define mvgetstr(y,x,str) mvwgetstr(stdscr,y,x,str) #define mvinch(y,x) mvwinch(stdscr,y,x) #define mvdelch(y,x) mvwdelch(stdscr,y,x) #define mvinsch(y,x,c) mvwinsch(stdscr,y,x,c) /* * psuedo functions */ #define box(w,b,c) \ superbox1(w,0,0,(w)->_maxy,(w)->_maxx,b,c,c,c,c,c,0) #define fullbox(w,b,c,d,e,f,g) \ superbox1(w,0,0,(w)->_maxy,(w)->_maxx,b,c,d,e,f,g,0) #define cbox(w) \ superbox1(w,0,0,(w)->_maxy,(w)->_maxx,BX[3],BX[1],BX[0],BX[2],BX[5], \ BX[4],Bxa) #define drawbox(w,y,x,l,c) \ superbox1(w,(y),(x),(l),(c),BX[3],BX[1],BX[0],BX[2],BX[5],BX[4],Bxa) #define flash() bell(2) #define beep() bell(1) #define werase(win) ((win)->_curx = (win)->_cury = 0, wclrtobot(win)) #define wclear(win) ((win)->_curx = (win)->_cury = 0, wclrtobot(win), (win)->_clear = TRUE) #define clearok(win,bf) ((win)->_clear = bf) #define leaveok(win,bf) ((win)->_leave = bf) #define scrollok(win,bf) ((win)->_scroll = bf) #define flushok(win,bf) \ (bf ? ((win)->_flags |= _FLUSH):((win)->_flags &= ~_FLUSH)) #define getyx(win,y,x) y = (win)->_cury, x = (win)->_curx /* psuedo function to draw Box Character */ #define cboxalt(w) \ superbox1(w,0,0,(w)->_maxy,(w)->_maxx,BY[3],BY[1],BY[0],BY[2],BY[5],BY[4],Bya) #define drawboxalt(w,y,x,l,c) \ superbox1(w,(y),(x),(l),(c),BY[3],BY[1],BY[0],BY[2],BY[5],BY[4],Bya) #if (IS1|IS2|V7) #define raw() \ (_tty.sg_flags|=RAW, _pfast=_rawmode=TRUE, stty(_tty_ch,&_tty)) #define noraw() \ (_tty.sg_flags&=~RAW,_rawmode=FALSE,_pfast=!(_tty.sg_flags&CRMOD), \ stty(_tty_ch,&_tty)) #define crmode() \ (_tty.sg_flags |= CBREAK, _rawmode = TRUE, stty(_tty_ch,&_tty)) #define nocrmode() \ (_tty.sg_flags &= ~CBREAK,_rawmode=FALSE,stty(_tty_ch,&_tty)) #define echo() \ (_tty.sg_flags |= ECHO, _echoit = TRUE, stty(_tty_ch, &_tty)) #define noecho() \ (_tty.sg_flags &= ~ECHO, _echoit = FALSE, stty(_tty_ch, &_tty)) #define nl() \ (_tty.sg_flags |= CRMOD,_pfast = _rawmode,stty(_tty_ch, &_tty)) #define nonl() \ (_tty.sg_flags &= ~CRMOD, _pfast = TRUE, stty(_tty_ch, &_tty)) #define savetty() \ (gtty(_tty_ch, &_tty), _res_flg = _tty.sg_flags) #define resetty() \ (_tty.sg_flags = _res_flg, stty(_tty_ch, &_tty)) #else #define Stty(chan, data) ioctl(chan, TCSETAW, data) #define Gtty(chan, data) ioctl(chan, TCGETA, data) extern raw (), noraw (), crmode (), nocrmode (); extern nl (), nonl (), echo (), noecho (); extern savetty (); extern resetty (); #endif WINDOW *newview(), *initscr(), *newwin(), *subwin(); char *longname (), *getcap (); extern char do_colors; /* If true before calling initscr(), the screen foreground and background will be saved and restored during endwin() */ extern char do_cursor; /* If false before calling initscr(), the cursor shape will not be set to normal (i.e. underscore shap). */ #ifdef __cplusplus } #endif #endif /* _H_CUR01 */