1 /* curses.h - defines macros and prototypes for curses */
19 #define ERR (-1) /* general error flag */
22 #define OK 0 /* general OK flag */
26 #define box(win,vc,hc) wbox(win,0,0,0,0,vc,hc)
27 #define addch(ch) waddch(stdscr,ch)
28 #define mvaddch(y,x,ch) (wmove(stdscr,y,x)==ERR?ERR:waddch(stdscr,ch))
29 #define mvwaddch(win,y,x,ch) (wmove(win,y,x)==ERR?ERR:waddch(win,ch))
30 #define getch() wgetch(stdscr)
31 #define mvgetch(y,x) (wmove(stdscr,y,x)==ERR?ERR:wgetch(stdscr))
32 #define mvwgetch(win,y,x) (wmove(win,y,x)==ERR?ERR:wgetch(win))
33 #define addstr(str) waddstr(stdscr,str)
34 #define mvaddstr(y,x,str) (wmove(stdscr,y,x)==ERR?ERR:waddstr(stdscr,str))
35 #define mvwaddstr(win,y,x,str) (wmove(win,y,x)==ERR?ERR:waddstr(win,str))
36 #define getstr(str) wgetstr(stdscr,str)
37 #define mvgetstr(y,x,str) (wmove(stdscr,y,x)==ERR?ERR:wgetstr(stdscr,str))
38 #define mvwgetstr(win,y,x,str) (wmove(win,y,x)==ERR?ERR:wgetstr(win,str))
39 #define move(y,x) wmove(stdscr,y,x)
40 #define clear() wclear(stdscr)
41 #define erase() werase(stdscr)
42 #define clrtobot() wclrtobot(stdscr)
43 #define mvclrtobot(y,x) (wmove(stdscr,y,x)==ERR?ERR:wclrtobot(stdscr))
44 #define mvwclrtobot(win,y,x) (wmove(win,y,x)==ERR?ERR:wclrtobot(win))
45 #define clrtoeol() wclrtoeol(stdscr)
46 #define mvclrtoeol(y,x) (wmove(stdscr,y,x)==ERR?ERR:wclrtoeol(stdscr))
47 #define mvwclrtoeol(win,y,x) (wmove(win,y,x)==ERR?ERR:wclrtoeol(win))
48 #define insertln() winsertln(stdscr)
49 #define mvinsertln(y,x) (wmove(stdscr,y,x)==ERR?ERR:winsertln(stdscr))
50 #define mvwinsertln(win,y,x) (wmove(win,y,x)==ERR?ERR:winsertln(win))
51 #define deleteln() wdeleteln(stdscr)
52 #define mvdeleteln(y,x) (wmove(stdscr,y,x)==ERR?ERR:wdeleteln(stdscr))
53 #define mvwdeleteln(win,y,x) (wmove(win,y,x)==ERR?ERR:wdeleteln(win))
54 #define refresh() wrefresh(stdscr)
55 #define inch() winch(stdscr)
56 #define insch(ch) winsch(stdscr,ch)
57 #define mvinsch(y,x,ch) (wmove(stdscr,y,x)==ERR?ERR:winsch(stdscr,ch))
58 #define mvwinsch(win,y,x,ch) (wmove(win,y,x)==ERR?ERR:winsch(win,ch))
59 #define delch() wdelch(stdscr)
60 #define mvdelch(y,x) (wmove(stdscr,y,x)==ERR?ERR:wdelch(stdscr))
61 #define mvwdelch(win,y,x) (wmove(win,y,x)==ERR?ERR:wdelch(win))
62 #define standout() wstandout(stdscr)
63 #define wstandout(win) ((win)->_attrs |= A_STANDOUT)
64 #define standend() wstandend(stdscr)
65 #define wstandend(win) ((win)->_attrs &= ~A_STANDOUT)
66 #define attrset(attrs) wattrset(stdscr, attrs)
67 #define wattrset(win, attrs) ((win)->_attrs = (attrs))
68 #define attron(attrs) wattron(stdscr, attrs)
69 #define wattron(win, attrs) ((win)->_attrs |= (attrs))
70 #define attroff(attrs) wattroff(stdscr,attrs)
71 #define wattroff(win, attrs) ((win)->_attrs &= ~(attrs))
72 #define resetty() tcsetattr(1, TCSANOW, &_orig_tty)
73 #define getyx(win,y,x) (y = (win)->_cury, x = (win)->_curx)
75 /* Video attribute definitions. */
76 #define A_BLINK 0x0100
81 #define A_REVERSE 0x0400
82 #define A_STANDOUT 0x0800
83 #define A_UNDERLINE 0x1000
84 #define A_ALTCHARSET 0x2000
86 /* Type declarations. */
88 int _cury
; /* current pseudo-cursor */
90 int _maxy
; /* max coordinates */
92 int _begy
; /* origin on screen */
94 int _flags
; /* window properties */
95 int _attrs
; /* attributes of written characters */
96 int _tabsize
; /* tab character size */
97 bool _clear
; /* causes clear at next refresh */
98 bool _leave
; /* leaves cursor as it happens */
99 bool _scroll
; /* allows window scrolling */
100 bool _nodelay
; /* input character wait flag */
101 bool _keypad
; /* flags keypad key mode active */
102 int **_line
; /* pointer to line pointer array */
103 int *_minchng
; /* First changed character in line */
104 int *_maxchng
; /* Last changed character in line */
105 int _regtop
; /* Top/bottom of scrolling region */
109 /* External variables */
110 extern int LINES
; /* terminal height */
111 extern int COLS
; /* terminal width */
112 extern bool NONL
; /* \n causes CR too ? */
113 extern WINDOW
*curscr
; /* the current screen image */
114 extern WINDOW
*stdscr
; /* the default screen window */
115 extern struct termios _orig_tty
, _tty
;
117 extern unsigned int ACS_ULCORNER
; /* terminal dependent block grafic */
118 extern unsigned int ACS_LLCORNER
; /* charcters. Forget IBM, we are */
119 extern unsigned int ACS_URCORNER
; /* independent of their charset. :-) */
120 extern unsigned int ACS_LRCORNER
;
121 extern unsigned int ACS_RTEE
;
122 extern unsigned int ACS_LTEE
;
123 extern unsigned int ACS_BTEE
;
124 extern unsigned int ACS_TTEE
;
125 extern unsigned int ACS_HLINE
;
126 extern unsigned int ACS_VLINE
;
127 extern unsigned int ACS_PLUS
;
128 extern unsigned int ACS_S1
;
129 extern unsigned int ACS_S9
;
130 extern unsigned int ACS_DIAMOND
;
131 extern unsigned int ACS_CKBOARD
;
132 extern unsigned int ACS_DEGREE
;
133 extern unsigned int ACS_PLMINUS
;
134 extern unsigned int ACS_BULLET
;
135 extern unsigned int ACS_LARROW
;
136 extern unsigned int ACS_RARROW
;
137 extern unsigned int ACS_DARROW
;
138 extern unsigned int ACS_UARROW
;
139 extern unsigned int ACS_BOARD
;
140 extern unsigned int ACS_LANTERN
;
141 extern unsigned int ACS_BLOCK
;
143 _PROTOTYPE( char *unctrl
, (int _c
) );
144 _PROTOTYPE( int baudrate
, (void));
145 _PROTOTYPE( void beep
, (void));
146 _PROTOTYPE( void cbreak
, (void));
147 _PROTOTYPE( void clearok
, (WINDOW
*_win
, bool _flag
) );
148 _PROTOTYPE( void clrscr
, (void));
149 _PROTOTYPE( void curs_set
, (int _visibility
) );
150 _PROTOTYPE( void delwin
, (WINDOW
*_win
) );
151 _PROTOTYPE( void doupdate
, (void));
152 _PROTOTYPE( void echo
, (void));
153 _PROTOTYPE( int endwin
, (void));
154 _PROTOTYPE( int erasechar
, (void));
155 _PROTOTYPE( void fatal
, (char *_s
) );
156 _PROTOTYPE( int fixterm
, (void));
157 _PROTOTYPE( void flash
, (void));
158 _PROTOTYPE( void gettmode
, (void));
159 _PROTOTYPE( void idlok
, (WINDOW
*_win
, bool _flag
) );
160 _PROTOTYPE( WINDOW
*initscr
, (void));
161 _PROTOTYPE( void keypad
, (WINDOW
*_win
, bool _flag
) );
162 _PROTOTYPE( int killchar
, (void));
163 _PROTOTYPE( void leaveok
, (WINDOW
*_win
, bool _flag
) );
164 _PROTOTYPE( char *longname
, (void));
165 _PROTOTYPE( void meta
, (WINDOW
*_win
, bool _flag
) );
166 _PROTOTYPE( int mvcur
, (int _oldy
, int _oldx
, int _newy
, int _newx
) );
167 _PROTOTYPE( int mvinch
, (int _y
, int _x
) );
168 _PROTOTYPE( int mvprintw
, (int _y
, int _x
, const char *_fmt
, ...) );
169 _PROTOTYPE( int mvscanw
, (int _y
, int _x
, const char *_fmt
, ...) );
170 _PROTOTYPE( int mvwin
, (WINDOW
*_win
, int _begy
, int _begx
) );
171 _PROTOTYPE( int mvwinch
, (WINDOW
*_win
, int _y
, int _x
) );
172 _PROTOTYPE( int mvwprintw
, (WINDOW
*_win
, int _y
, int _x
, const char *_fmt
,
174 _PROTOTYPE( int mvwscanw
, (WINDOW
*_win
, int _y
, int _x
, const char *_fmt
,
176 _PROTOTYPE( WINDOW
*newwin
, (int _num_lines
, int _num_cols
, int _y
, int _x
));
177 _PROTOTYPE( void nl
, (void));
178 _PROTOTYPE( void nocbreak
, (void));
179 _PROTOTYPE( void nodelay
, (WINDOW
*_win
, bool _flag
) );
180 _PROTOTYPE( void noecho
, (void));
181 _PROTOTYPE( void nonl
, (void));
182 _PROTOTYPE( void noraw
, (void));
183 _PROTOTYPE( void outc
, (int _c
) );
184 _PROTOTYPE( void overlay
, (WINDOW
*_win1
, WINDOW
*_win2
) );
185 _PROTOTYPE( void overwrite
, (WINDOW
*_win1
, WINDOW
*_win2
) );
186 _PROTOTYPE( void poscur
, (int _r
, int _c
) );
187 _PROTOTYPE( int printw
, (const char *_fmt
, ...) );
188 _PROTOTYPE( void raw
, (void));
189 _PROTOTYPE( int resetterm
, (void));
190 _PROTOTYPE( int saveoldterm
, (void));
191 _PROTOTYPE( int saveterm
, (void));
192 _PROTOTYPE( int savetty
, (void));
193 _PROTOTYPE( int scanw
, (const char *_fmt
, ...) );
194 _PROTOTYPE( void scroll
, (WINDOW
*_win
) );
195 _PROTOTYPE( void scrollok
, (WINDOW
*_win
, bool _flag
) );
196 _PROTOTYPE( int setscrreg
, (int _top
, int _bottom
) );
197 _PROTOTYPE( int setterm
, (char *_type
) );
198 _PROTOTYPE( int setupterm
, (void));
199 _PROTOTYPE( WINDOW
*subwin
, (WINDOW
*_orig
, int _nlines
, int _ncols
, int _y
,
201 _PROTOTYPE( int tabsize
, (int _ts
) );
202 _PROTOTYPE( void touchwin
, (WINDOW
*_win
) );
203 _PROTOTYPE( int waddch
, (WINDOW
*_win
, int _c
) );
204 _PROTOTYPE( int waddstr
, (WINDOW
*_win
, char *_str
) );
205 _PROTOTYPE( int wbox
, (WINDOW
*_win
, int _ymin
, int _xmin
, int _ymax
,
206 int _xmax
, unsigned int _v
, unsigned int _h
) );
207 _PROTOTYPE( void wclear
, (WINDOW
*_win
) );
208 _PROTOTYPE( int wclrtobot
, (WINDOW
*_win
) );
209 _PROTOTYPE( int wclrtoeol
, (WINDOW
*_win
) );
210 _PROTOTYPE( int wdelch
, (WINDOW
*_win
) );
211 _PROTOTYPE( int wdeleteln
, (WINDOW
*_win
) );
212 _PROTOTYPE( void werase
, (WINDOW
*_win
) );
213 _PROTOTYPE( int wgetch
, (WINDOW
*_win
) );
214 _PROTOTYPE( int wgetstr
, (WINDOW
*_win
, char *_str
) );
215 _PROTOTYPE( int winch
, (WINDOW
*_win
) );
216 _PROTOTYPE( int winsch
, (WINDOW
*_win
, int _c
) );
217 _PROTOTYPE( int winsertln
, (WINDOW
*_win
) );
218 _PROTOTYPE( int wmove
, (WINDOW
*_win
, int _y
, int _x
) );
219 _PROTOTYPE( void wnoutrefresh
, (WINDOW
*_win
) );
220 _PROTOTYPE( int wprintw
, (WINDOW
*_win
, const char *_fmt
, ...));
221 _PROTOTYPE( void wrefresh
, (WINDOW
*_win
) );
222 _PROTOTYPE( int wscanw
, (WINDOW
*_win
, const char *_fmt
, ...));
223 _PROTOTYPE( int wsetscrreg
, (WINDOW
*_win
, int _top
, int _bottom
) );
224 _PROTOTYPE( int wtabsize
, (WINDOW
*_win
, int _ts
) );
226 #endif /* _CURSES_H */