root / lab4 / .minix-src / include / curses.h @ 14
History | View | Annotate | Download (33.9 KB)
1 |
/* $NetBSD: curses.h,v 1.107 2015/06/08 12:38:57 joerg Exp $ */
|
---|---|
2 |
|
3 |
/*
|
4 |
* Copyright (c) 1981, 1993, 1994
|
5 |
* The Regents of the University of California. All rights reserved.
|
6 |
*
|
7 |
* Redistribution and use in source and binary forms, with or without
|
8 |
* modification, are permitted provided that the following conditions
|
9 |
* are met:
|
10 |
* 1. Redistributions of source code must retain the above copyright
|
11 |
* notice, this list of conditions and the following disclaimer.
|
12 |
* 2. Redistributions in binary form must reproduce the above copyright
|
13 |
* notice, this list of conditions and the following disclaimer in the
|
14 |
* documentation and/or other materials provided with the distribution.
|
15 |
* 3. Neither the name of the University nor the names of its contributors
|
16 |
* may be used to endorse or promote products derived from this software
|
17 |
* without specific prior written permission.
|
18 |
*
|
19 |
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
20 |
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
21 |
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
22 |
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
23 |
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
24 |
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
25 |
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
26 |
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
27 |
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
28 |
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
29 |
* SUCH DAMAGE.
|
30 |
*
|
31 |
* @(#)curses.h 8.5 (Berkeley) 4/29/95
|
32 |
*
|
33 |
* Modified by Ruibiao Qiu <ruibiao@arl.wustl.edu,ruibiao@gmail.com> 2005
|
34 |
* to add wide-character support
|
35 |
* - Add complex character structure (cchar_t)
|
36 |
* - Add definitions of wide-character routines
|
37 |
* - Add KEY_CODE_YES
|
38 |
*/
|
39 |
|
40 |
#ifndef _CURSES_H_
|
41 |
#define _CURSES_H_
|
42 |
|
43 |
#include <sys/types.h> |
44 |
#include <sys/cdefs.h> |
45 |
#include <wchar.h> |
46 |
|
47 |
#include <stdio.h> |
48 |
#include <stdbool.h> |
49 |
|
50 |
/*
|
51 |
* attr_t must be the same size as wchar_t (see <wchar.h>) to avoid padding
|
52 |
* in __LDATA.
|
53 |
*/
|
54 |
typedef wchar_t chtype;
|
55 |
typedef wchar_t attr_t;
|
56 |
|
57 |
#if !defined(HAVE_WCHAR) && !defined(DISABLE_WCHAR)
|
58 |
#define HAVE_WCHAR 1 |
59 |
#endif
|
60 |
|
61 |
#ifdef HAVE_WCHAR
|
62 |
/*
|
63 |
* The complex character structure required by the X/Open reference and used
|
64 |
* in * functions such as in_wchstr(). It includes a string of up to 8 wide
|
65 |
* characters and its length, an attribute, and a color-pair.
|
66 |
*/
|
67 |
#define CURSES_CCHAR_MAX 8 |
68 |
#define CCHARW_MAX 5 |
69 |
typedef struct { |
70 |
attr_t attributes; /* character attributes */
|
71 |
unsigned elements; /* number of wide char in |
72 |
vals[] */
|
73 |
wchar_t vals[CURSES_CCHAR_MAX]; /* wide chars including
|
74 |
non-spacing */
|
75 |
} cchar_t; |
76 |
#else
|
77 |
typedef chtype cchar_t;
|
78 |
#endif /* HAVE_WCHAR */ |
79 |
|
80 |
#ifndef TRUE
|
81 |
#define TRUE (/*CONSTCOND*/1) |
82 |
#endif
|
83 |
#ifndef FALSE
|
84 |
#define FALSE (/*CONSTCOND*/0) |
85 |
#endif
|
86 |
|
87 |
#ifndef _CURSES_PRIVATE
|
88 |
|
89 |
#define _puts(s) tputs(s, 0, __cputchar) |
90 |
#define _putchar(c) __cputchar(c)
|
91 |
|
92 |
/* Old-style terminal modes access. */
|
93 |
#define crmode() cbreak()
|
94 |
#define nocrmode() nocbreak()
|
95 |
#endif /* _CURSES_PRIVATE */ |
96 |
|
97 |
|
98 |
/* symbols for values returned by getch in keypad mode */
|
99 |
#define KEY_MIN 0x101 /* minimum extended key value */ |
100 |
#define KEY_BREAK 0x101 /* break key */ |
101 |
#define KEY_DOWN 0x102 /* down arrow */ |
102 |
#define KEY_UP 0x103 /* up arrow */ |
103 |
#define KEY_LEFT 0x104 /* left arrow */ |
104 |
#define KEY_RIGHT 0x105 /* right arrow*/ |
105 |
#define KEY_HOME 0x106 /* home key */ |
106 |
#define KEY_BACKSPACE 0x107 /* Backspace */ |
107 |
|
108 |
/* First function key (block of 64 follow) */
|
109 |
#define KEY_F0 0x108 |
110 |
/* Function defining other function key values*/
|
111 |
#define KEY_F(n) (KEY_F0+(n))
|
112 |
|
113 |
#define KEY_DL 0x148 /* Delete Line */ |
114 |
#define KEY_IL 0x149 /* Insert Line*/ |
115 |
#define KEY_DC 0x14A /* Delete Character */ |
116 |
#define KEY_IC 0x14B /* Insert Character */ |
117 |
#define KEY_EIC 0x14C /* Exit Insert Char mode */ |
118 |
#define KEY_CLEAR 0x14D /* Clear screen */ |
119 |
#define KEY_EOS 0x14E /* Clear to end of screen */ |
120 |
#define KEY_EOL 0x14F /* Clear to end of line */ |
121 |
#define KEY_SF 0x150 /* Scroll one line forward */ |
122 |
#define KEY_SR 0x151 /* Scroll one line back */ |
123 |
#define KEY_NPAGE 0x152 /* Next Page */ |
124 |
#define KEY_PPAGE 0x153 /* Prev Page */ |
125 |
#define KEY_STAB 0x154 /* Set Tab */ |
126 |
#define KEY_CTAB 0x155 /* Clear Tab */ |
127 |
#define KEY_CATAB 0x156 /* Clear All Tabs */ |
128 |
#define KEY_ENTER 0x157 /* Enter or Send */ |
129 |
#define KEY_SRESET 0x158 /* Soft Reset */ |
130 |
#define KEY_RESET 0x159 /* Hard Reset */ |
131 |
#define KEY_PRINT 0x15A /* Print */ |
132 |
#define KEY_LL 0x15B /* Home Down */ |
133 |
|
134 |
/*
|
135 |
* "Keypad" keys arranged like this:
|
136 |
*
|
137 |
* A1 up A3
|
138 |
* left B2 right
|
139 |
* C1 down C3
|
140 |
*
|
141 |
*/
|
142 |
#define KEY_A1 0x15C /* Keypad upper left */ |
143 |
#define KEY_A3 0x15D /* Keypad upper right */ |
144 |
#define KEY_B2 0x15E /* Keypad centre key */ |
145 |
#define KEY_C1 0x15F /* Keypad lower left */ |
146 |
#define KEY_C3 0x160 /* Keypad lower right */ |
147 |
|
148 |
#define KEY_BTAB 0x161 /* Back Tab */ |
149 |
#define KEY_BEG 0x162 /* Begin key */ |
150 |
#define KEY_CANCEL 0x163 /* Cancel key */ |
151 |
#define KEY_CLOSE 0x164 /* Close Key */ |
152 |
#define KEY_COMMAND 0x165 /* Command Key */ |
153 |
#define KEY_COPY 0x166 /* Copy key */ |
154 |
#define KEY_CREATE 0x167 /* Create key */ |
155 |
#define KEY_END 0x168 /* End key */ |
156 |
#define KEY_EXIT 0x169 /* Exit key */ |
157 |
#define KEY_FIND 0x16A /* Find key */ |
158 |
#define KEY_HELP 0x16B /* Help key */ |
159 |
#define KEY_MARK 0x16C /* Mark key */ |
160 |
#define KEY_MESSAGE 0x16D /* Message key */ |
161 |
#define KEY_MOVE 0x16E /* Move key */ |
162 |
#define KEY_NEXT 0x16F /* Next Object key */ |
163 |
#define KEY_OPEN 0x170 /* Open key */ |
164 |
#define KEY_OPTIONS 0x171 /* Options key */ |
165 |
#define KEY_PREVIOUS 0x172 /* Previous Object key */ |
166 |
#define KEY_REDO 0x173 /* Redo key */ |
167 |
#define KEY_REFERENCE 0x174 /* Ref Key */ |
168 |
#define KEY_REFRESH 0x175 /* Refresh key */ |
169 |
#define KEY_REPLACE 0x176 /* Replace key */ |
170 |
#define KEY_RESTART 0x177 /* Restart key */ |
171 |
#define KEY_RESUME 0x178 /* Resume key */ |
172 |
#define KEY_SAVE 0x179 /* Save key */ |
173 |
#define KEY_SBEG 0x17A /* Shift begin key */ |
174 |
#define KEY_SCANCEL 0x17B /* Shift Cancel key */ |
175 |
#define KEY_SCOMMAND 0x17C /* Shift Command key */ |
176 |
#define KEY_SCOPY 0x17D /* Shift Copy key */ |
177 |
#define KEY_SCREATE 0x17E /* Shift Create key */ |
178 |
#define KEY_SDC 0x17F /* Shift Delete Character */ |
179 |
#define KEY_SDL 0x180 /* Shift Delete Line */ |
180 |
#define KEY_SELECT 0x181 /* Select key */ |
181 |
#define KEY_SEND 0x182 /* Send key */ |
182 |
#define KEY_SEOL 0x183 /* Shift Clear Line key */ |
183 |
#define KEY_SEXIT 0x184 /* Shift Exit key */ |
184 |
#define KEY_SFIND 0x185 /* Shift Find key */ |
185 |
#define KEY_SHELP 0x186 /* Shift Help key */ |
186 |
#define KEY_SHOME 0x187 /* Shift Home key */ |
187 |
#define KEY_SIC 0x188 /* Shift Input key */ |
188 |
#define KEY_SLEFT 0x189 /* Shift Left Arrow key */ |
189 |
#define KEY_SMESSAGE 0x18A /* Shift Message key */ |
190 |
#define KEY_SMOVE 0x18B /* Shift Move key */ |
191 |
#define KEY_SNEXT 0x18C /* Shift Next key */ |
192 |
#define KEY_SOPTIONS 0x18D /* Shift Options key */ |
193 |
#define KEY_SPREVIOUS 0x18E /* Shift Previous key */ |
194 |
#define KEY_SPRINT 0x18F /* Shift Print key */ |
195 |
#define KEY_SREDO 0x190 /* Shift Redo key */ |
196 |
#define KEY_SREPLACE 0x191 /* Shift Replace key */ |
197 |
#define KEY_SRIGHT 0x192 /* Shift Right Arrow key */ |
198 |
#define KEY_SRSUME 0x193 /* Shift Resume key */ |
199 |
#define KEY_SSAVE 0x194 /* Shift Save key */ |
200 |
#define KEY_SSUSPEND 0x195 /* Shift Suspend key */ |
201 |
#define KEY_SUNDO 0x196 /* Shift Undo key */ |
202 |
#define KEY_SUSPEND 0x197 /* Suspend key */ |
203 |
#define KEY_UNDO 0x198 /* Undo key */ |
204 |
#define KEY_MOUSE 0x199 /* Mouse event has occurred */ |
205 |
#define KEY_RESIZE 0x200 /* Resize event has occurred */ |
206 |
#define KEY_MAX 0x240 /* maximum extended key value */ |
207 |
#define KEY_CODE_YES 0x241 /* A function key pressed */ |
208 |
|
209 |
#include <unctrl.h> |
210 |
|
211 |
/*
|
212 |
* A window an array of __LINE structures pointed to by the 'lines' pointer.
|
213 |
* A line is an array of __LDATA structures pointed to by the 'line' pointer.
|
214 |
*/
|
215 |
|
216 |
/*
|
217 |
* Definitions for characters and attributes in __LDATA
|
218 |
*/
|
219 |
#define __CHARTEXT 0x000000ff /* bits for 8-bit characters */ |
220 |
#define __NORMAL 0x00000000 /* Added characters are normal. */ |
221 |
#define __STANDOUT 0x00000100 /* Added characters are standout. */ |
222 |
#define __UNDERSCORE 0x00000200 /* Added characters are underscored. */ |
223 |
#define __REVERSE 0x00000400 /* Added characters are reverse |
224 |
video. */
|
225 |
#define __BLINK 0x00000800 /* Added characters are blinking. */ |
226 |
#define __DIM 0x00001000 /* Added characters are dim. */ |
227 |
#define __BOLD 0x00002000 /* Added characters are bold. */ |
228 |
#define __BLANK 0x00004000 /* Added characters are blanked. */ |
229 |
#define __PROTECT 0x00008000 /* Added characters are protected. */ |
230 |
#define __ALTCHARSET 0x00010000 /* Added characters are ACS */ |
231 |
#define __COLOR 0x03fe0000 /* Color bits */ |
232 |
#define __ATTRIBUTES 0x03ffff00 /* All 8-bit attribute bits */ |
233 |
#ifdef HAVE_WCHAR
|
234 |
#define __ACS_IS_WACS 0x04000000 /* internal: use wacs table for ACS char */ |
235 |
#endif
|
236 |
|
237 |
typedef struct __ldata __LDATA; |
238 |
typedef struct __line __LINE; |
239 |
typedef struct __window WINDOW; |
240 |
typedef struct __screen SCREEN; |
241 |
|
242 |
/*
|
243 |
* Attribute definitions
|
244 |
*/
|
245 |
#define A_NORMAL __NORMAL
|
246 |
#define A_STANDOUT __STANDOUT
|
247 |
#define A_UNDERLINE __UNDERSCORE
|
248 |
#define A_REVERSE __REVERSE
|
249 |
#define A_BLINK __BLINK
|
250 |
#define A_DIM __DIM
|
251 |
#define A_BOLD __BOLD
|
252 |
#define A_BLANK __BLANK
|
253 |
#define A_INVIS __BLANK
|
254 |
#define A_PROTECT __PROTECT
|
255 |
#define A_ALTCHARSET __ALTCHARSET
|
256 |
#define A_ATTRIBUTES __ATTRIBUTES
|
257 |
#define A_CHARTEXT __CHARTEXT
|
258 |
#define A_COLOR __COLOR
|
259 |
|
260 |
#ifdef HAVE_WCHAR
|
261 |
#define WA_ATTRIBUTES 0x03ffffff /* Wide character attributes mask */ |
262 |
#define WA_NORMAL __NORMAL
|
263 |
#define WA_STANDOUT __STANDOUT /* Best highlighting mode */ |
264 |
#define WA_UNDERLINE __UNDERSCORE /* Underlining */ |
265 |
#define WA_REVERSE __REVERSE /* Reverse video */ |
266 |
#define WA_BLINK __BLINK /* Blinking */ |
267 |
#define WA_DIM __DIM /* Half bright */ |
268 |
#define WA_BOLD __BOLD /* Extra bright or bold */ |
269 |
#define WA_INVIS __BLANK /* Invisible */ |
270 |
#define WA_PROTECT __PROTECT /* Protected */ |
271 |
#define WA_ALTCHARSET __ALTCHARSET /* Alternate character set */ |
272 |
#define WA_LOW 0x00000002 /* Low highlight */ |
273 |
#define WA_TOP 0x00000004 /* Top highlight */ |
274 |
#define WA_HORIZONTAL 0x00000008 /* Horizontal highlight */ |
275 |
#define WA_VERTICAL 0x00000010 /* Vertical highlight */ |
276 |
#define WA_LEFT 0x00000020 /* Left highlight */ |
277 |
#define WA_RIGHT 0x00000040 /* Right highlight */ |
278 |
#endif /* HAVE_WCHAR */ |
279 |
|
280 |
/*
|
281 |
* Alternate character set definitions
|
282 |
*/
|
283 |
|
284 |
#define NUM_ACS 128 |
285 |
|
286 |
extern chtype _acs_char[NUM_ACS];
|
287 |
#ifdef __cplusplus
|
288 |
#define __UC_CAST(a) static_cast<unsigned char>(a) |
289 |
#else
|
290 |
#define __UC_CAST(a) (unsigned char)(a) |
291 |
#endif
|
292 |
|
293 |
/* Standard definitions */
|
294 |
#define ACS_RARROW _acs_char[__UC_CAST('+')] |
295 |
#define ACS_LARROW _acs_char[__UC_CAST(',')] |
296 |
#define ACS_UARROW _acs_char[__UC_CAST('-')] |
297 |
#define ACS_DARROW _acs_char[__UC_CAST('.')] |
298 |
#define ACS_BLOCK _acs_char[__UC_CAST('0')] |
299 |
#define ACS_DIAMOND _acs_char[__UC_CAST('`')] |
300 |
#define ACS_CKBOARD _acs_char[__UC_CAST('a')] |
301 |
#define ACS_DEGREE _acs_char[__UC_CAST('f')] |
302 |
#define ACS_PLMINUS _acs_char[__UC_CAST('g')] |
303 |
#define ACS_BOARD _acs_char[__UC_CAST('h')] |
304 |
#define ACS_LANTERN _acs_char[__UC_CAST('i')] |
305 |
#define ACS_LRCORNER _acs_char[__UC_CAST('j')] |
306 |
#define ACS_URCORNER _acs_char[__UC_CAST('k')] |
307 |
#define ACS_ULCORNER _acs_char[__UC_CAST('l')] |
308 |
#define ACS_LLCORNER _acs_char[__UC_CAST('m')] |
309 |
#define ACS_PLUS _acs_char[__UC_CAST('n')] |
310 |
#define ACS_HLINE _acs_char[__UC_CAST('q')] |
311 |
#define ACS_S1 _acs_char[__UC_CAST('o')] |
312 |
#define ACS_S9 _acs_char[__UC_CAST('s')] |
313 |
#define ACS_LTEE _acs_char[__UC_CAST('t')] |
314 |
#define ACS_RTEE _acs_char[__UC_CAST('u')] |
315 |
#define ACS_BTEE _acs_char[__UC_CAST('v')] |
316 |
#define ACS_TTEE _acs_char[__UC_CAST('w')] |
317 |
#define ACS_VLINE _acs_char[__UC_CAST('x')] |
318 |
#define ACS_BULLET _acs_char[__UC_CAST('~')] |
319 |
|
320 |
/* Extensions */
|
321 |
#define ACS_S3 _acs_char[__UC_CAST('p')] |
322 |
#define ACS_S7 _acs_char[__UC_CAST('r')] |
323 |
#define ACS_LEQUAL _acs_char[__UC_CAST('y')] |
324 |
#define ACS_GEQUAL _acs_char[__UC_CAST('z')] |
325 |
#define ACS_PI _acs_char[__UC_CAST('{')] |
326 |
#define ACS_NEQUAL _acs_char[__UC_CAST('|')] |
327 |
#define ACS_STERLING _acs_char[__UC_CAST('}')] |
328 |
|
329 |
#ifdef HAVE_WCHAR
|
330 |
extern cchar_t _wacs_char[NUM_ACS];
|
331 |
|
332 |
#define WACS_RARROW (&_wacs_char[(unsigned char)'+']) |
333 |
#define WACS_LARROW (&_wacs_char[(unsigned char)',']) |
334 |
#define WACS_UARROW (&_wacs_char[(unsigned char)'-']) |
335 |
#define WACS_DARROW (&_wacs_char[(unsigned char)'.']) |
336 |
#define WACS_BLOCK (&_wacs_char[(unsigned char)'0']) |
337 |
#define WACS_DIAMOND (&_wacs_char[(unsigned char)'`']) |
338 |
#define WACS_CKBOARD (&_wacs_char[(unsigned char)'a']) |
339 |
#define WACS_DEGREE (&_wacs_char[(unsigned char)'f']) |
340 |
#define WACS_PLMINUS (&_wacs_char[(unsigned char)'g']) |
341 |
#define WACS_BOARD (&_wacs_char[(unsigned char)'h']) |
342 |
#define WACS_LANTERN (&_wacs_char[(unsigned char)'i']) |
343 |
#define WACS_LRCORNER (&_wacs_char[(unsigned char)'j']) |
344 |
#define WACS_URCORNER (&_wacs_char[(unsigned char)'k']) |
345 |
#define WACS_ULCORNER (&_wacs_char[(unsigned char)'l']) |
346 |
#define WACS_LLCORNER (&_wacs_char[(unsigned char)'m']) |
347 |
#define WACS_PLUS (&_wacs_char[(unsigned char)'n']) |
348 |
#define WACS_HLINE (&_wacs_char[(unsigned char)'q']) |
349 |
#define WACS_S1 (&_wacs_char[(unsigned char)'o']) |
350 |
#define WACS_S9 (&_wacs_char[(unsigned char)'s']) |
351 |
#define WACS_LTEE (&_wacs_char[(unsigned char)'t']) |
352 |
#define WACS_RTEE (&_wacs_char[(unsigned char)'u']) |
353 |
#define WACS_BTEE (&_wacs_char[(unsigned char)'v']) |
354 |
#define WACS_TTEE (&_wacs_char[(unsigned char)'w']) |
355 |
#define WACS_VLINE (&_wacs_char[(unsigned char)'x']) |
356 |
#define WACS_BULLET (&_wacs_char[(unsigned char)'~']) |
357 |
#define WACS_S3 (&_wacs_char[(unsigned char)'p']) |
358 |
#define WACS_S7 (&_wacs_char[(unsigned char)'r']) |
359 |
#define WACS_LEQUAL (&_wacs_char[(unsigned char)'y']) |
360 |
#define WACS_GEQUAL (&_wacs_char[(unsigned char)'z']) |
361 |
#define WACS_PI (&_wacs_char[(unsigned char)'{']) |
362 |
#define WACS_NEQUAL (&_wacs_char[(unsigned char)'|']) |
363 |
#define WACS_STERLING (&_wacs_char[(unsigned char)'}']) |
364 |
#endif /* HAVE_WCHAR */ |
365 |
|
366 |
/* System V compatibility */
|
367 |
#define ACS_SBBS ACS_LRCORNER
|
368 |
#define ACS_BBSS ACS_URCORNER
|
369 |
#define ACS_BSSB ACS_ULCORNER
|
370 |
#define ACS_SSBB ACS_LLCORNER
|
371 |
#define ACS_SSSS ACS_PLUS
|
372 |
#define ACS_BSBS ACS_HLINE
|
373 |
#define ACS_SSSB ACS_LTEE
|
374 |
#define ACS_SBSS ACS_RTEE
|
375 |
#define ACS_SSBS ACS_BTEE
|
376 |
#define ACS_BSSS ACS_TTEE
|
377 |
#define ACS_SBSB ACS_VLINE
|
378 |
#define _acs_map _acs_char
|
379 |
|
380 |
/*
|
381 |
* Color definitions (ANSI color numbers)
|
382 |
*/
|
383 |
|
384 |
#define COLOR_BLACK 0x00 |
385 |
#define COLOR_RED 0x01 |
386 |
#define COLOR_GREEN 0x02 |
387 |
#define COLOR_YELLOW 0x03 |
388 |
#define COLOR_BLUE 0x04 |
389 |
#define COLOR_MAGENTA 0x05 |
390 |
#define COLOR_CYAN 0x06 |
391 |
#define COLOR_WHITE 0x07 |
392 |
|
393 |
#ifdef __cplusplus
|
394 |
#define __UINT32_CAST(a) static_cast<u_int32_t>(a)
|
395 |
#else
|
396 |
#define __UINT32_CAST(a) (u_int32_t)(a)
|
397 |
#endif
|
398 |
#define COLOR_PAIR(n) (((__UINT32_CAST(n)) << 17) & A_COLOR) |
399 |
#define PAIR_NUMBER(n) (((__UINT32_CAST(n)) & A_COLOR) >> 17) |
400 |
|
401 |
/* Curses external declarations. */
|
402 |
extern WINDOW *curscr; /* Current screen. */ |
403 |
extern WINDOW *stdscr; /* Standard screen. */ |
404 |
|
405 |
extern int __tcaction; /* If terminal hardware set. */ |
406 |
|
407 |
extern int COLS; /* Columns on the screen. */ |
408 |
extern int LINES; /* Lines on the screen. */ |
409 |
extern int COLORS; /* Max colors on the screen. */ |
410 |
extern int COLOR_PAIRS; /* Max color pairs on the screen. */ |
411 |
|
412 |
extern int ESCDELAY; /* Delay between keys in esc seq's. */ |
413 |
extern int TABSIZE; /* Size of a tab. */ |
414 |
|
415 |
#ifndef OK
|
416 |
#define ERR (-1) /* Error return. */ |
417 |
#define OK (0) /* Success return. */ |
418 |
#endif
|
419 |
|
420 |
/*
|
421 |
* The following have, traditionally, been macros but X/Open say they
|
422 |
* need to be functions. Keep the old macros for debugging.
|
423 |
*/
|
424 |
#ifdef _CURSES_USE_MACROS
|
425 |
/* Standard screen pseudo functions. */
|
426 |
#define addbytes(s, n) __waddbytes(stdscr, s, n, 0) |
427 |
#define addch(ch) waddch(stdscr, ch)
|
428 |
#define addchnstr(s) waddchnstr(stdscr, s, n)
|
429 |
#define addchstr(s) waddchnstr(stdscr, s, -1) |
430 |
#define addnstr(s, n) waddnstr(stdscr, s, n)
|
431 |
#define addstr(s) waddnstr(stdscr, s, -1) |
432 |
#define attr_get(a, p, o) wattr_get(stdscr, a, p, o)
|
433 |
#define attr_off(a, o) wattr_off(stdscr, a, o)
|
434 |
#define attr_on(a, o) wattr_on(stdscr, a, o)
|
435 |
#define attr_set(a, p, o) wattr_set(stdscr, a, p, o)
|
436 |
#define attroff(attr) wattroff(stdscr, attr)
|
437 |
#define attron(attr) wattron(stdscr, attr)
|
438 |
#define attrset(attr) wattrset(stdscr, attr)
|
439 |
#define bkgd(ch) wbkgd(stdscr, ch)
|
440 |
#define bkgdset(ch) wbkgdset(stdscr, ch)
|
441 |
#define border(l, r, t, b, tl, tr, bl, br) \
|
442 |
wborder(stdscr, l, r, t, b, tl, tr, bl, br) |
443 |
#define clear() wclear(stdscr)
|
444 |
#define clrtobot() wclrtobot(stdscr)
|
445 |
#define clrtoeol() wclrtoeol(stdscr)
|
446 |
#define color_set(c, o) wcolor_set(stdscr, c, o)
|
447 |
#define delch() wdelch(stdscr)
|
448 |
#define deleteln() wdeleteln(stdscr)
|
449 |
#define echochar(c) wechochar(stdscr, c)
|
450 |
#define erase() werase(stdscr)
|
451 |
#define getch() wgetch(stdscr)
|
452 |
#define getnstr(s, n) wgetnstr(stdscr, s, n)
|
453 |
#define getstr(s) wgetstr(stdscr, s)
|
454 |
#define inch() winch(stdscr)
|
455 |
#define inchnstr(c) winchnstr(stdscr, c)
|
456 |
#define inchstr(c) winchstr(stdscr, c)
|
457 |
#define innstr(s, n) winnstr(stdscr, s, n)
|
458 |
#define insch(ch) winsch(stdscr, ch)
|
459 |
#define insdelln(n) winsdelln(stdscr, n)
|
460 |
#define insertln() winsertln(stdscr)
|
461 |
#define instr(s) winstr(stdscr, s)
|
462 |
#define move(y, x) wmove(stdscr, y, x)
|
463 |
#define refresh() wrefresh(stdscr)
|
464 |
#define scrl(n) wscrl(stdscr, n)
|
465 |
#define setscrreg(t, b) wsetscrreg(stdscr, t, b)
|
466 |
#define standend() wstandend(stdscr)
|
467 |
#define standout() wstandout(stdscr)
|
468 |
#define timeout(delay) wtimeout(stdscr, delay)
|
469 |
#define underscore() wunderscore(stdscr)
|
470 |
#define underend() wunderend(stdscr)
|
471 |
#define waddbytes(w, s, n) __waddbytes(w, s, n, 0) |
472 |
#define waddstr(w, s) waddnstr(w, s, -1) |
473 |
|
474 |
/* Standard screen plus movement pseudo functions. */
|
475 |
#define mvaddbytes(y, x, s, n) mvwaddbytes(stdscr, y, x, s, n)
|
476 |
#define mvaddch(y, x, ch) mvwaddch(stdscr, y, x, ch)
|
477 |
#define mvaddchnstr(y, x, s, n) mvwaddchnstr(stdscr, y, x, s, n)
|
478 |
#define mvaddchstr(y, x, s) mvwaddchstr(stdscr, y, x, s)
|
479 |
#define mvaddnstr(y, x, s, n) mvwaddnstr(stdscr, y, x, s, n)
|
480 |
#define mvaddstr(y, x, s) mvwaddstr(stdscr, y, x, s)
|
481 |
#define mvdelch(y, x) mvwdelch(stdscr, y, x)
|
482 |
#define mvgetch(y, x) mvwgetch(stdscr, y, x)
|
483 |
#define mvgetnstr(y, x, s, n) mvwgetnstr(stdscr, y, x, s, n)
|
484 |
#define mvgetstr(y, x, s) mvwgetstr(stdscr, y, x, s)
|
485 |
#define mvinch(y, x) mvwinch(stdscr, y, x)
|
486 |
#define mvinchnstr(y, x, c, n) mvwinchnstr(stdscr, y, x, c, n)
|
487 |
#define mvinchstr(y, x, c) mvwinchstr(stdscr, y, x, c)
|
488 |
#define mvinnstr(y, x, s, n) mvwinnstr(stdscr, y, x, s, n)
|
489 |
#define mvinsch(y, x, c) mvwinsch(stdscr, y, x, c)
|
490 |
#define mvinstr(y, x, s) mvwinstr(stdscr, y, x, s)
|
491 |
#define mvwaddbytes(w, y, x, s, n) \
|
492 |
(wmove(w, y, x) == ERR ? ERR : __waddbytes(w, s, n, 0))
|
493 |
#define mvwaddch(w, y, x, ch) \
|
494 |
(wmove(w, y, x) == ERR ? ERR : waddch(w, ch)) |
495 |
#define mvwaddchnstr(w, y, x, s, n) \
|
496 |
(wmove(w, y, x) == ERR ? ERR : waddchnstr(w, s, n)) |
497 |
#define mvwaddchstr(w, y, x, s) \
|
498 |
(wmove(w, y, x) == ERR ? ERR : waddchnstr(w, s, -1))
|
499 |
#define mvwaddnstr(w, y, x, s, n) \
|
500 |
(wmove(w, y, x) == ERR ? ERR : waddnstr(w, s, n)) |
501 |
#define mvwaddstr(w, y, x, s) \
|
502 |
(wmove(w, y, x) == ERR ? ERR : waddnstr(w, s, -1))
|
503 |
#define mvwdelch(w, y, x) \
|
504 |
(wmove(w, y, x) == ERR ? ERR : wdelch(w)) |
505 |
#define mvwgetch(w, y, x) \
|
506 |
(wmove(w, y, x) == ERR ? ERR : wgetch(w)) |
507 |
#define mvwgetnstr(w, y, x, s, n) \
|
508 |
(wmove(w, y, x) == ERR ? ERR : wgetnstr(w, s, n)) |
509 |
#define mvwgetstr(w, y, x, s) \
|
510 |
(wmove(w, y, x) == ERR ? ERR : wgetstr(w, s)) |
511 |
#define mvwinch(w, y, x) \
|
512 |
(wmove(w, y, x) == ERR ? ERR : winch(w)) |
513 |
#define mvwinchnstr(w, y, x, c, n) \
|
514 |
(wmove(w, y, x) == ERR ? ERR : winchnstr(w, c, n)) |
515 |
#define mvwinchstr(w, y, x, s) \
|
516 |
(wmove(w, y, x) == ERR ? ERR : winchstr(w, c)) |
517 |
#define mvwinnstr(w, y, x, s, n) \
|
518 |
(wmove(w, y, x) == ERR ? ERR : winnstr(w, s, n)) |
519 |
#define mvwinsch(w, y, x, c) \
|
520 |
(wmove(w, y, x) == ERR ? ERR : winsch(w, c)) |
521 |
#define mvwinstr(w, y, x, s) \
|
522 |
(wmove(w, y, x) == ERR ? ERR : winstr(w, s)) |
523 |
|
524 |
/* Miscellaneous. */
|
525 |
#define noqiflush() intrflush(stdscr, FALSE)
|
526 |
#define qiflush() intrflush(stdscr, TRUE)
|
527 |
|
528 |
#else
|
529 |
/* Use functions not macros... */
|
530 |
__BEGIN_DECLS |
531 |
int addbytes(const char *, int); |
532 |
int addch(chtype);
|
533 |
int addchnstr(const chtype *, int); |
534 |
int addchstr(const chtype *); |
535 |
int addnstr(const char *, int); |
536 |
int addstr(const char *); |
537 |
int attr_get(attr_t *, short *, void *); |
538 |
int attr_off(attr_t, void *); |
539 |
int attr_on(attr_t, void *); |
540 |
int attr_set(attr_t, short, void *); |
541 |
int attroff(int); |
542 |
int attron(int); |
543 |
int attrset(int); |
544 |
int bkgd(chtype);
|
545 |
void bkgdset(chtype);
|
546 |
int border(chtype, chtype, chtype, chtype,
|
547 |
chtype, chtype, chtype, chtype); |
548 |
int clear(void); |
549 |
int clrtobot(void); |
550 |
int clrtoeol(void); |
551 |
int color_set(short, void *); |
552 |
int delch(void); |
553 |
int deleteln(void); |
554 |
int echochar(const chtype); |
555 |
int erase(void); |
556 |
int getch(void); |
557 |
int getnstr(char *, int); |
558 |
int getstr(char *); |
559 |
chtype inch(void);
|
560 |
int inchnstr(chtype *, int); |
561 |
int inchstr(chtype *);
|
562 |
int innstr(char *, int); |
563 |
int insch(chtype);
|
564 |
int insdelln(int); |
565 |
int insertln(void); |
566 |
int instr(char *); |
567 |
int move(int, int); |
568 |
int refresh(void); |
569 |
int scrl(int); |
570 |
int setscrreg(int, int); |
571 |
int standend(void); |
572 |
int standout(void); |
573 |
void timeout(int); |
574 |
int underscore(void); |
575 |
int underend(void); |
576 |
int waddbytes(WINDOW *, const char *, int); |
577 |
int waddstr(WINDOW *, const char *); |
578 |
|
579 |
/* Standard screen plus movement functions. */
|
580 |
int mvaddbytes(int, int, const char *, int); |
581 |
int mvaddch(int, int, chtype); |
582 |
int mvaddchnstr(int, int, const chtype *, int); |
583 |
int mvaddchstr(int, int, const chtype *); |
584 |
int mvaddnstr(int, int, const char *, int); |
585 |
int mvaddstr(int, int, const char *); |
586 |
int mvdelch(int, int); |
587 |
int mvgetch(int, int); |
588 |
int mvgetnstr(int, int, char *, int); |
589 |
int mvgetstr(int, int, char *); |
590 |
chtype mvinch(int, int); |
591 |
int mvinchnstr(int, int, chtype *, int); |
592 |
int mvinchstr(int, int, chtype *); |
593 |
int mvinnstr(int, int, char *, int); |
594 |
int mvinsch(int, int, chtype); |
595 |
int mvinstr(int, int, char *); |
596 |
|
597 |
int mvwaddbytes(WINDOW *, int, int, const char *, int); |
598 |
int mvwaddch(WINDOW *, int, int, chtype); |
599 |
int mvwaddchnstr(WINDOW *, int, int, const chtype *, int); |
600 |
int mvwaddchstr(WINDOW *, int, int, const chtype *); |
601 |
int mvwaddnstr(WINDOW *, int, int, const char *, int); |
602 |
int mvwaddstr(WINDOW *, int, int, const char *); |
603 |
int mvwdelch(WINDOW *, int, int); |
604 |
int mvwgetch(WINDOW *, int, int); |
605 |
int mvwgetnstr(WINDOW *, int, int, char *, int); |
606 |
int mvwgetstr(WINDOW *, int, int, char *); |
607 |
chtype mvwinch(WINDOW *, int, int); |
608 |
int mvwinsch(WINDOW *, int, int, chtype); |
609 |
__END_DECLS |
610 |
#endif /* _CURSES_USE_MACROS */ |
611 |
|
612 |
#define getyx(w, y, x) (y) = getcury(w), (x) = getcurx(w)
|
613 |
#define getbegyx(w, y, x) (y) = getbegy(w), (x) = getbegx(w)
|
614 |
#define getmaxyx(w, y, x) (y) = getmaxy(w), (x) = getmaxx(w)
|
615 |
#define getparyx(w, y, x) (y) = getpary(w), (x) = getparx(w)
|
616 |
|
617 |
/* Public function prototypes. */
|
618 |
__BEGIN_DECLS |
619 |
int assume_default_colors(short, short); |
620 |
int baudrate(void); |
621 |
int beep(void); |
622 |
int box(WINDOW *, chtype, chtype);
|
623 |
bool can_change_color(void); |
624 |
int cbreak(void); |
625 |
int clearok(WINDOW *, bool); |
626 |
int color_content(short, short *, short *, short *); |
627 |
int copywin(const WINDOW *, WINDOW *, int, int, int, int, int, int, int); |
628 |
int curs_set(int); |
629 |
int def_prog_mode(void); |
630 |
int def_shell_mode(void); |
631 |
int define_key(char *, int); |
632 |
int delay_output(int); |
633 |
void delscreen(SCREEN *);
|
634 |
int delwin(WINDOW *);
|
635 |
WINDOW *derwin(WINDOW *, int, int, int, int); |
636 |
WINDOW *dupwin(WINDOW *); |
637 |
int doupdate(void); |
638 |
int echo(void); |
639 |
int endwin(void); |
640 |
char erasechar(void); |
641 |
int flash(void); |
642 |
int flushinp(void); |
643 |
int flushok(WINDOW *, bool); |
644 |
char *fullname(const char *, char *); |
645 |
chtype getattrs(WINDOW *); |
646 |
chtype getbkgd(WINDOW *); |
647 |
int getcury(WINDOW *);
|
648 |
int getcurx(WINDOW *);
|
649 |
int getbegy(WINDOW *);
|
650 |
int getbegx(WINDOW *);
|
651 |
int getmaxy(WINDOW *);
|
652 |
int getmaxx(WINDOW *);
|
653 |
int getpary(WINDOW *);
|
654 |
int getparx(WINDOW *);
|
655 |
int gettmode(void); |
656 |
WINDOW *getwin(FILE *); |
657 |
int halfdelay(int); |
658 |
bool has_colors(void); |
659 |
bool has_ic(void); |
660 |
bool has_il(void); |
661 |
int hline(chtype, int); |
662 |
int idcok(WINDOW *, bool); |
663 |
int idlok(WINDOW *, bool); |
664 |
int init_color(short, short, short, short); |
665 |
int init_pair(short, short, short); |
666 |
WINDOW *initscr(void);
|
667 |
int intrflush(WINDOW *, bool); |
668 |
bool isendwin(void); |
669 |
bool is_linetouched(WINDOW *, int); |
670 |
bool is_wintouched(WINDOW *);
|
671 |
int keyok(int, bool); |
672 |
int keypad(WINDOW *, bool); |
673 |
char *keyname(int); |
674 |
char killchar(void); |
675 |
int leaveok(WINDOW *, bool); |
676 |
int meta(WINDOW *, bool); |
677 |
int mvcur(int, int, int, int); |
678 |
int mvderwin(WINDOW *, int, int); |
679 |
int mvhline(int, int, chtype, int); |
680 |
int mvprintw(int, int, const char *, ...) __printflike(3, 4); |
681 |
int mvscanw(int, int, const char *, ...) __scanflike(3, 4); |
682 |
int mvvline(int, int, chtype, int); |
683 |
int mvwhline(WINDOW *, int, int, chtype, int); |
684 |
int mvwvline(WINDOW *, int, int, chtype, int); |
685 |
int mvwin(WINDOW *, int, int); |
686 |
int mvwinchnstr(WINDOW *, int, int, chtype *, int); |
687 |
int mvwinchstr(WINDOW *, int, int, chtype *); |
688 |
int mvwinnstr(WINDOW *, int, int, char *, int); |
689 |
int mvwinstr(WINDOW *, int, int, char *); |
690 |
int mvwprintw(WINDOW *, int, int, const char *, ...) __printflike(4, 5); |
691 |
int mvwscanw(WINDOW *, int, int, const char *, ...) __scanflike(4, 5); |
692 |
int napms(int); |
693 |
WINDOW *newpad(int, int); |
694 |
SCREEN *newterm(char *, FILE *, FILE *);
|
695 |
WINDOW *newwin(int, int, int, int); |
696 |
int nl(void); |
697 |
attr_t no_color_attributes(void);
|
698 |
int nocbreak(void); |
699 |
int nodelay(WINDOW *, bool); |
700 |
int noecho(void); |
701 |
int nonl(void); |
702 |
void noqiflush(void); |
703 |
int noraw(void); |
704 |
int notimeout(WINDOW *, bool); |
705 |
int overlay(const WINDOW *, WINDOW *); |
706 |
int overwrite(const WINDOW *, WINDOW *); |
707 |
int pair_content(short, short *, short *); |
708 |
int pechochar(WINDOW *, const chtype); |
709 |
int pnoutrefresh(WINDOW *, int, int, int, int, int, int); |
710 |
int prefresh(WINDOW *, int, int, int, int, int, int); |
711 |
int printw(const char *, ...) __printflike(1, 2); |
712 |
int putwin(WINDOW *, FILE *);
|
713 |
void qiflush(void); |
714 |
int raw(void); |
715 |
int redrawwin(WINDOW *);
|
716 |
int reset_prog_mode(void); |
717 |
int reset_shell_mode(void); |
718 |
int resetty(void); |
719 |
int resizeterm(int, int); |
720 |
int savetty(void); |
721 |
int scanw(const char *, ...) __scanflike(1, 2); |
722 |
int scroll(WINDOW *);
|
723 |
int scrollok(WINDOW *, bool); |
724 |
int setterm(char *); |
725 |
SCREEN *set_term(SCREEN *); |
726 |
int start_color(void); |
727 |
WINDOW *subpad(WINDOW *, int, int, int, int); |
728 |
WINDOW *subwin(WINDOW *, int, int, int, int); |
729 |
chtype termattrs(void);
|
730 |
attr_t term_attrs(void);
|
731 |
int touchline(WINDOW *, int, int); |
732 |
int touchoverlap(WINDOW *, WINDOW *);
|
733 |
int touchwin(WINDOW *);
|
734 |
int ungetch(int); |
735 |
int untouchwin(WINDOW *);
|
736 |
int use_default_colors(void); |
737 |
int vline(chtype, int); |
738 |
int vw_printw(WINDOW *, const char *, __va_list) __printflike(2, 0); |
739 |
int vw_scanw(WINDOW *, const char *, __va_list) __scanflike(2, 0); |
740 |
int vwprintw(WINDOW *, const char *, __va_list) __printflike(2, 0); |
741 |
int vwscanw(WINDOW *, const char *, __va_list) __scanflike(2, 0); |
742 |
int waddch(WINDOW *, chtype);
|
743 |
int waddchnstr(WINDOW *, const chtype *, int); |
744 |
int waddchstr(WINDOW *, const chtype *); |
745 |
int waddnstr(WINDOW *, const char *, int); |
746 |
int wattr_get(WINDOW *, attr_t *, short *, void *); |
747 |
int wattr_off(WINDOW *, attr_t, void *); |
748 |
int wattr_on(WINDOW *, attr_t, void *); |
749 |
int wattr_set(WINDOW *, attr_t, short, void *); |
750 |
int wattroff(WINDOW *, int); |
751 |
int wattron(WINDOW *, int); |
752 |
int wattrset(WINDOW *, int); |
753 |
int wbkgd(WINDOW *, chtype);
|
754 |
void wbkgdset(WINDOW *, chtype);
|
755 |
int wborder(WINDOW *, chtype, chtype, chtype, chtype, chtype, chtype,
|
756 |
chtype, chtype); |
757 |
int wclear(WINDOW *);
|
758 |
int wclrtobot(WINDOW *);
|
759 |
int wclrtoeol(WINDOW *);
|
760 |
int wcolor_set(WINDOW *, short, void *); |
761 |
void wcursyncup(WINDOW *);
|
762 |
int wdelch(WINDOW *);
|
763 |
int wdeleteln(WINDOW *);
|
764 |
int wechochar(WINDOW *, const chtype); |
765 |
int werase(WINDOW *);
|
766 |
int wgetch(WINDOW *);
|
767 |
int wgetnstr(WINDOW *, char *, int); |
768 |
int wgetstr(WINDOW *, char *); |
769 |
int whline(WINDOW *, chtype, int); |
770 |
chtype winch(WINDOW *); |
771 |
int winchnstr(WINDOW *, chtype *, int); |
772 |
int winchstr(WINDOW *, chtype *);
|
773 |
int winnstr(WINDOW *, char *, int); |
774 |
int winsch(WINDOW *, chtype);
|
775 |
int winsdelln(WINDOW *, int); |
776 |
int winsertln(WINDOW *);
|
777 |
int winstr(WINDOW *, char *); |
778 |
int wmove(WINDOW *, int, int); |
779 |
int wnoutrefresh(WINDOW *);
|
780 |
int wprintw(WINDOW *, const char *, ...) __printflike(2, 3); |
781 |
int wredrawln(WINDOW *, int, int); |
782 |
int wrefresh(WINDOW *);
|
783 |
int wresize(WINDOW *, int, int); |
784 |
int wscanw(WINDOW *, const char *, ...) __scanflike(2, 3); |
785 |
int wscrl(WINDOW *, int); |
786 |
int wsetscrreg(WINDOW *, int, int); |
787 |
int wstandend(WINDOW *);
|
788 |
int wstandout(WINDOW *);
|
789 |
void wsyncdown(WINDOW *);
|
790 |
void wsyncup(WINDOW *);
|
791 |
void wtimeout(WINDOW *, int); |
792 |
int wtouchln(WINDOW *, int, int, int); |
793 |
int wunderend(WINDOW *);
|
794 |
int wunderscore(WINDOW *);
|
795 |
int wvline(WINDOW *, chtype, int); |
796 |
|
797 |
int insnstr(const char *, int); |
798 |
int insstr(const char *); |
799 |
int mvinsnstr(int, int, const char *, int); |
800 |
int mvinsstr(int, int, const char *); |
801 |
int mvwinsnstr(WINDOW *, int, int, const char *, int); |
802 |
int mvwinsstr(WINDOW *, int, int, const char *); |
803 |
int winsnstr(WINDOW *, const char *, int); |
804 |
int winsstr(WINDOW *, const char *); |
805 |
|
806 |
int chgat(int, attr_t, short, const void *); |
807 |
int wchgat(WINDOW *, int, attr_t, short, const void *); |
808 |
int mvchgat(int, int, int, attr_t, short, const void *); |
809 |
int mvwchgat(WINDOW *, int, int, int, attr_t, short, const void *); |
810 |
|
811 |
/* wide-character support routines */
|
812 |
/* return ERR when HAVE_WCHAR is not defined */
|
813 |
/* add */
|
814 |
int add_wch(const cchar_t *); |
815 |
int wadd_wch(WINDOW *, const cchar_t *); |
816 |
int mvadd_wch(int, int, const cchar_t *); |
817 |
int mvwadd_wch(WINDOW *, int, int, const cchar_t *); |
818 |
|
819 |
int add_wchnstr(const cchar_t *, int); |
820 |
int add_wchstr(const cchar_t *); |
821 |
int wadd_wchnstr(WINDOW *, const cchar_t *, int); |
822 |
int wadd_wchstr(WINDOW *, const cchar_t *); |
823 |
int mvadd_wchnstr(int, int, const cchar_t *, int); |
824 |
int mvadd_wchstr(int, int, const cchar_t *); |
825 |
int mvwadd_wchnstr(WINDOW *, int, int, const cchar_t *, int); |
826 |
int mvwadd_wchstr(WINDOW *, int, int, const cchar_t *); |
827 |
|
828 |
int addnwstr(const wchar_t *, int); |
829 |
int addwstr(const wchar_t *); |
830 |
int mvaddnwstr(int, int x, const wchar_t *, int); |
831 |
int mvaddwstr(int, int x, const wchar_t *); |
832 |
int mvwaddnwstr(WINDOW *, int, int, const wchar_t *, int); |
833 |
int mvwaddwstr(WINDOW *, int, int, const wchar_t *); |
834 |
int waddnwstr(WINDOW *, const wchar_t *, int); |
835 |
int waddwstr(WINDOW *, const wchar_t *); |
836 |
|
837 |
int echo_wchar(const cchar_t *); |
838 |
int wecho_wchar(WINDOW *, const cchar_t *); |
839 |
int pecho_wchar(WINDOW *, const cchar_t *); |
840 |
|
841 |
/* insert */
|
842 |
int ins_wch(const cchar_t *); |
843 |
int wins_wch(WINDOW *, const cchar_t *); |
844 |
int mvins_wch(int, int, const cchar_t *); |
845 |
int mvwins_wch(WINDOW *, int, int, const cchar_t *); |
846 |
|
847 |
int ins_nwstr(const wchar_t *, int); |
848 |
int ins_wstr(const wchar_t *); |
849 |
int mvins_nwstr(int, int, const wchar_t *, int); |
850 |
int mvins_wstr(int, int, const wchar_t *); |
851 |
int mvwins_nwstr(WINDOW *, int, int, const wchar_t *, int); |
852 |
int mvwins_wstr(WINDOW *, int, int, const wchar_t *); |
853 |
int wins_nwstr(WINDOW *, const wchar_t *, int); |
854 |
int wins_wstr(WINDOW *, const wchar_t *); |
855 |
|
856 |
/* input */
|
857 |
int get_wch(wint_t *);
|
858 |
int unget_wch(const wchar_t); |
859 |
int mvget_wch(int, int, wint_t *); |
860 |
int mvwget_wch(WINDOW *, int, int, wint_t *); |
861 |
int wget_wch(WINDOW *, wint_t *);
|
862 |
|
863 |
int getn_wstr(wchar_t *, int); |
864 |
int get_wstr(wchar_t *);
|
865 |
int mvgetn_wstr(int, int, wchar_t *, int); |
866 |
int mvget_wstr(int, int, wchar_t *); |
867 |
int mvwgetn_wstr(WINDOW *, int, int, wchar_t *, int); |
868 |
int mvwget_wstr(WINDOW *, int, int, wchar_t *); |
869 |
int wgetn_wstr(WINDOW *, wchar_t *, int); |
870 |
int wget_wstr(WINDOW *, wchar_t *);
|
871 |
|
872 |
int in_wch(cchar_t *);
|
873 |
int mvin_wch(int, int, cchar_t *); |
874 |
int mvwin_wch(WINDOW *, int, int, cchar_t *); |
875 |
int win_wch(WINDOW *, cchar_t *);
|
876 |
|
877 |
int in_wchnstr(cchar_t *, int); |
878 |
int in_wchstr(cchar_t *);
|
879 |
int mvin_wchnstr(int, int, cchar_t *, int); |
880 |
int mvin_wchstr(int, int, cchar_t *); |
881 |
int mvwin_wchnstr(WINDOW *, int, int, cchar_t *, int); |
882 |
int mvwin_wchstr(WINDOW *, int, int, cchar_t *); |
883 |
int win_wchnstr(WINDOW *, cchar_t *, int); |
884 |
int win_wchstr(WINDOW *, cchar_t *);
|
885 |
|
886 |
int innwstr(wchar_t *, int); |
887 |
int inwstr(wchar_t *);
|
888 |
int mvinnwstr(int, int, wchar_t *, int); |
889 |
int mvinwstr(int, int, wchar_t *); |
890 |
int mvwinnwstr(WINDOW *, int, int, wchar_t *, int); |
891 |
int mvwinwstr(WINDOW *, int, int, wchar_t *); |
892 |
int winnwstr(WINDOW *, wchar_t *, int); |
893 |
int winwstr(WINDOW *, wchar_t *);
|
894 |
|
895 |
/* cchar handlgin */
|
896 |
int setcchar(cchar_t *, const wchar_t *, const attr_t, short, const void *); |
897 |
int getcchar(const cchar_t *, wchar_t *, attr_t *, short *, void *); |
898 |
|
899 |
/* misc */
|
900 |
char *key_name( wchar_t );
|
901 |
int border_set(const cchar_t *, const cchar_t *, const cchar_t *, |
902 |
const cchar_t *, const cchar_t *, const cchar_t *, |
903 |
const cchar_t *, const cchar_t *); |
904 |
int wborder_set(WINDOW *, const cchar_t *, const cchar_t *, |
905 |
const cchar_t *, const cchar_t *, const cchar_t *, |
906 |
const cchar_t *, const cchar_t *, const cchar_t *); |
907 |
int box_set(WINDOW *, const cchar_t *, const cchar_t *); |
908 |
int erasewchar(wchar_t *);
|
909 |
int killwchar(wchar_t *);
|
910 |
int hline_set(const cchar_t *, int); |
911 |
int mvhline_set(int, int, const cchar_t *, int); |
912 |
int mvvline_set(int, int, const cchar_t *, int); |
913 |
int mvwhline_set(WINDOW *, int, int, const cchar_t *, int); |
914 |
int mvwvline_set(WINDOW *, int, int, const cchar_t *, int); |
915 |
int vline_set(const cchar_t *, int); |
916 |
int whline_set(WINDOW *, const cchar_t *, int); |
917 |
int wvline_set(WINDOW *, const cchar_t *, int); |
918 |
int bkgrnd(const cchar_t *); |
919 |
void bkgrndset(const cchar_t *); |
920 |
int getbkgrnd(cchar_t *);
|
921 |
int wbkgrnd(WINDOW *, const cchar_t *); |
922 |
void wbkgrndset(WINDOW *, const cchar_t *); |
923 |
int wgetbkgrnd(WINDOW *, cchar_t *);
|
924 |
|
925 |
/* Private functions that are needed for user programs prototypes. */
|
926 |
int __cputchar(int); |
927 |
int __waddbytes(WINDOW *, const char *, int, attr_t); |
928 |
#ifdef HAVE_WCHAR
|
929 |
int __cputwchar( wchar_t );
|
930 |
#endif /* HAVE_WCHAR */ |
931 |
__END_DECLS |
932 |
|
933 |
#endif /* !_CURSES_H_ */ |