File: mycurses.h

package info (click to toggle)
pluto-find-orb 0.0~git20180227-2
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 2,668 kB
  • sloc: cpp: 30,743; makefile: 263
file content (286 lines) | stat: -rw-r--r-- 10,331 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
#include <stdio.h>      /* Required for scr_dump() & scr_restore() below   */

#define attr_t       unsigned long

typedef struct _win      /* definition of a window.      */
{
   int xsize, ysize, xoffset, yoffset;
   int curr_x, curr_y, use_keypad, wrap_on;
   attr_t attr;
   attr_t data[1];
} WINDOW;

#ifndef STDSCR_DEFINED
extern WINDOW *stdscr, *curscr;
#endif

/* Shamelessly lifted from (PD)Curses.h: */
#ifndef FALSE
# define FALSE 0
#endif
#ifndef TRUE
# define TRUE 1
#endif
#ifndef NULL
# define NULL (void *)0
#endif
#ifndef ERR
# define ERR (-1)
#endif
#ifndef OK
# define OK 0
#endif

typedef unsigned short chtype;

#ifdef __cplusplus
extern "C" {
#endif
int wmove( WINDOW *w, const int y, const int x);
int waddch( WINDOW*w, const char c);
int wrefresh( const WINDOW *w);
int refresh( void);
int start_color( void );
int init_pair( const short idx, const short foreground, const short background);
int wattrset( WINDOW *w, const attr_t attr);
int wattroff( WINDOW*, const attr_t attr);
int wattron( WINDOW*, const attr_t attr);
int endwin( void );
WINDOW *initscr( void );
int noecho( void );
int echo( void );
int wgetnstr( WINDOW *w, char *str, int max_len);
int wclear( WINDOW *w);
int flushinp( void );
int waddnstr( WINDOW* w, const char *str, int len);
int resize_term( const int ysize, const int xsize);
int PDC_set_scrn_mode( const int new_mode);
WINDOW *resize_window( WINDOW *old, const int ysize, const int xsize);
int set_text_mode( const unsigned mode);
int get_text_mode_sizes( const int mode, int *ysize, int *xsize);
int wset_rect_attr( WINDOW *w, int xmin, int ymin, int xmax, int ymax);
int putwin( WINDOW *win, FILE *filep);
WINDOW *getwin( FILE *filep);
int scr_dump( const char *filename);
int scr_restore( const char *filename);
char *longname( void);
int curs_set( const int visibility);
chtype inch(void);
chtype mvinch(int, int);
chtype mvwinch(WINDOW *, int, int);
chtype winch(WINDOW *);
int waddchnstr(WINDOW *, const chtype *, int);
bool can_change_color( void);

#define keypad(w,flag)          (w->use_keypad = flag)
#define attroff(attr)           wattroff( stdscr, attr )
#define attron(attr)            wattron( stdscr, attr )
#define attrset(attr)           wattrset( stdscr, attr )
#define clear()                 wclear( stdscr )
#define getnstr(str,num)        wgetnstr( stdscr, str, num )
#define getmaxx(w)              (w)->xsize
#define getmaxy(w)              (w)->ysize
#define getmaxyx(w,y,x)         ( y = (w)->ysize, x = (w)->xsize )
#define move(y,x)               wmove( stdscr, y, x )
#define addch( c )              waddch( stdscr, c )
#define mvaddch(y,x,c)          (move( y, x )==ERR?ERR:addch( c ))
#define mvwaddch(w,y,x,c)       (wmove( w, y, x )==ERR?ERR:waddch( w, c ))
#define mvaddchstr(y,x,c)       (move( y, x )==ERR?ERR:addchnstr( c, -1 ))
#define mvaddchnstr(y,x,c,n)    (move( y, x )==ERR?ERR:addchnstr( c, n ))
#define mvaddnstr(y,x,str,n)    (move( y, x )==ERR?ERR:addnstr( str, n ))
#define addnstr(str, n)         waddnstr( stdscr, str, n )
#define addstr(str)             addnstr( str, -1)
#define mvaddstr(y,x,str)       mvaddnstr(y,x,str,-1)
#define waddstr(w, str)         waddnstr( w, str, -1)
#define cbreak()
#define addchnstr( str, n)      waddchnstr( stdscr, str, n)
int     napms(int);

#ifndef STDSCR_DEFINED
extern attr_t curses_attrs[];
#endif

#define COLOR_PAIRS        256
#define COLOR_PAIR( X)          (curses_attrs[X])
#define A_BLINK          0x8000
#define A_STANDOUT       0x0800
#define A_BOLD           0x0800
#define A_CHARTEXT       0x00ff

#define KEY_DOWN       ( 80 + 256)
#define KEY_UP         ( 72 + 256)
#define KEY_LEFT       ( 75 + 256)
#define KEY_RIGHT      ( 77 + 256)
#define KEY_C3         ( 81 + 512)
#define KEY_NPAGE      ( 81 + 256)
#define KEY_A3         ( 73 + 512)
#define KEY_PPAGE      ( 73 + 256)
#define KEY_C1         ( 79 + 512)
#define KEY_END        ( 79 + 256)
#define KEY_A1         ( 71 + 512)
#define KEY_HOME       ( 71 + 256)
#define KEY_IC         ( 82 + 256)
      /* KEY_F( 1...12) = F1...12    */
      /* KEY_F(13...24) = Shift-F1...12    */
      /* KEY_F(25...36) = Ctrl-F1...12    */
      /* KEY_F(37...48) = Alt-F1...12    */

#define KEY_F1_TO_10(n)  (( 58 + 256)+(n)-(((n)-1)/12)*2+((n)>12 ? 15 : 0))
#define KEY_F11_OR_12(n) ((122 + 256)+(n)-(((n)-1)/12)*10)
#define KEY_F(n)     (((n)-1) % 12 >= 10 ? KEY_F11_OR_12(n) : KEY_F1_TO_10(n))
#define ALT_A     ( 30 + 256)
#define ALT_B     ( 48 + 256)
#define ALT_C     ( 46 + 256)
#define ALT_D     ( 32 + 256)
#define ALT_E     ( 18 + 256)
#define ALT_F     ( 33 + 256)
#define ALT_G     ( 34 + 256)
#define ALT_H     ( 35 + 256)
#define ALT_I     ( 23 + 256)
#define ALT_J     ( 36 + 256)
#define ALT_K     ( 37 + 256)
#define ALT_L     ( 38 + 256)
#define ALT_M     ( 50 + 256)
#define ALT_N     ( 49 + 256)
#define ALT_O     ( 24 + 256)
#define ALT_P     ( 25 + 256)
#define ALT_Q     ( 16 + 256)
#define ALT_R     ( 19 + 256)
#define ALT_S     ( 31 + 256)
#define ALT_T     ( 20 + 256)
#define ALT_U     ( 22 + 256)
#define ALT_V     ( 47 + 256)
#define ALT_W     ( 17 + 256)
#define ALT_X     ( 45 + 256)
#define ALT_Y     ( 21 + 256)
#define ALT_Z     ( 44 + 256)
#define ALT_1     (120 + 256)
#define ALT_2     (121 + 256)
#define ALT_3     (122 + 256)
#define ALT_4     (123 + 256)
#define ALT_5     (124 + 256)
#define ALT_6     (125 + 256)
#define ALT_7     (126 + 256)
#define ALT_8     (127 + 256)
#define ALT_9     (128 + 256)
#define ALT_0     (129 + 256)

#define CTL_PAD0        (146 + 256)          /* ctl-keypad 0 */
#define CTL_PAD1        (117 + 256)          /* ctl-keypad 1 */
#define CTL_PAD2        (145 + 256)          /* ctl-keypad 2 */
#define CTL_PAD3        (118 + 256)          /* ctl-keypad 3 */
#define CTL_PAD4        (115 + 256)          /* ctl-keypad 4 */
#define CTL_PAD5        (143 + 256)          /* ctl-keypad 5 */
#define CTL_PAD6        (116 + 256)          /* ctl-keypad 6 */
#define CTL_PAD7        (119 + 256)          /* ctl-keypad 7 */
#define CTL_PAD8        (141 + 256)          /* ctl-keypad 8 */
#define CTL_PAD9        (132 + 256)          /* ctl-keypad 9 */

#define CTL_LEFT        (115 + 256)   /* Control-Left-Arrow   PC only  */
#define CTL_RIGHT       (116 + 256)   /* Control-Right-Arrow  PC only  */
#define CTL_UP          401     /* ctl-up arrow                  */
#define CTL_DOWN        397     /* ctl-down arrow                */
#define CTL_INS         402     /* ctl-insert                    */
#define ALT_DEL         419     /* alt-delete                    */
#define ALT_INS         418     /* alt-insert                    */
#define CTL_PGUP        (132 + 256)   /* Control-PgUp         PC only  */
#define CTL_PGDN        (118 + 256)   /* Control-PgDn         PC only  */
#define CTL_HOME        (119 + 256)   /* Control-Home         PC only  */
#define CTL_END         (117 + 256)   /* Control-End          PC only  */
#define CTL_PADCENTER   399     /* ctl-enter on keypad           */
#define CTL_PADPLUS     400     /* ctl-plus on keypad            */
#define CTL_PADMINUS    398     /* ctl-minus on keypad           */
#define CTL_PADSLASH    26      /* ctl-slash on keypad... but also Ctrl-Z */
#define CTL_PADSTAR     406     /* ctl-star on keypad            */
#define ALT_PADPLUS     334     /* alt-plus on keypad            */
#define ALT_PADMINUS    330     /* alt-minus on keypad           */
#define ALT_PADSLASH    300     /* alt-slash on keypad           */
#define ALT_PADENTER    422     /* alt-enter on keypad           */
#define ALT_LBRACKET    282     /* alt-left bracket              */
#define ALT_RBRACKET    283     /* alt-right bracket             */
#define ALT_MINUS       386     /* alt-minus                     */
#define ALT_EQUAL       387     /* alt-equal                     */
#define ALT_HOME        407     /* alt-home                      */
#define ALT_PGUP        409     /* alt-pgup                      */
#define ALT_PGDN        417     /* alt-pgdn                      */
#define ALT_END         415     /* alt-end                       */
#define ALT_UP          408     /* alt-up arrow                  */
#define ALT_DOWN        416     /* alt-down arrow                */
#define ALT_RIGHT       411     /* alt-right arrow               */
#define ALT_LEFT        413     /* alt-left arrow                */

#define ZKEY_CTRL_A     1
#define ZKEY_CTRL_B     2
#define ZKEY_CTRL_C     3
#define ZKEY_CTRL_D     4
#define ZKEY_CTRL_E     5
#define ZKEY_CTRL_F     6
#define ZKEY_CTRL_G     7
#define ZKEY_CTRL_H     8
#define ZKEY_CTRL_I     9
#define ZKEY_CTRL_J    10
#define ZKEY_CTRL_K    11
#define ZKEY_CTRL_L    12
#define ZKEY_CTRL_M    13
#define ZKEY_CTRL_N    14
#define ZKEY_CTRL_O    15
#define ZKEY_CTRL_P    16
#define ZKEY_CTRL_Q    17
#define ZKEY_CTRL_R    18
#define ZKEY_CTRL_S    19
#define ZKEY_CTRL_T    20
#define ZKEY_CTRL_U    21
#define ZKEY_CTRL_V    22
#define ZKEY_CTRL_W    23
#define ZKEY_CTRL_X    24
#define ZKEY_CTRL_Y    25
#define ZKEY_CTRL_Z    26
#define KEY_BTAB        ( 15 + 256)
#define ALT_COMMA       ( 51 + 256)
#define ALT_STOP        ( 52 + 256)
#define CTL_DEL         (147 + 256)
#define KEY_DC          ( 83 + 256)
#define PADENTER    13

#define KEY_MOUSE       (255 + 256)

#define KEY_RESIZE      (256 + 256)

#define COLOR_BLACK      0
#define COLOR_BLUE       1
#define COLOR_GREEN      2
#define COLOR_CYAN       3
#define COLOR_RED        4
#define COLOR_MAGENTA    5
#define COLOR_YELLOW     6
#define COLOR_WHITE      7

#define COLORS 16

#define TEXT_MODE_80x25          0
#define TEXT_MODE_80x28          1
#define TEXT_MODE_80x50          2
#define TEXT_MODE_100x37         3
#define TEXT_MODE_80x60          4
#define TEXT_MODE_132x44         5
#define TEXT_MODE_132x50         6
#define TEXT_MODE_132x25         7
#define TEXT_MODE_132x28         8

/* with my current video card,  only the first three are supported: */
#define N_TEXT_MODES             3


   /* None of the following work;  they're all dummy functions */
   /* and macros supplied to avoid compiler warnings/errors.   */
typedef unsigned long mmask_t;

int init_color(short, short, short, short);
mmask_t mousemask(mmask_t, mmask_t *);

#define BUTTON_CONTROL      0x0010  /* PDCurses */
#define ALL_MOUSE_EVENTS        0x1fffffffL

#ifdef __cplusplus
}
#endif