3
* Copyright (c) 2007 Ed Schouten <ed@fxq.nl>
6
* Redistribution and use in source and binary forms, with or without
7
* modification, are permitted provided that the following conditions
9
* 1. Redistributions of source code must retain the above copyright
10
* notice, this list of conditions and the following disclaimer.
11
* 2. Redistributions in binary form must reproduce the above copyright
12
* notice, this list of conditions and the following disclaimer in the
13
* documentation and/or other materials provided with the distribution.
15
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
16
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
19
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30
[CCode (lower_case_cprefix = "", cheader_filename = "curses.h")]
32
public const int COLORS;
33
public const int COLOR_PAIRS;
36
BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE
40
ULCORNER, LLCORNER, URCORNER, LRCORNER, LTEE, RTEE,
41
BTEE, TTEE, HLINE, VLINE, PLUS, S1, S9, DIAMOND,
42
CKBOARD, DEGREE, PLMINUS, BULLET, LARROW, RARROW,
43
DARROW, UARROW, BOARD, LANTERN, BLOCK, S3, S7, LEQUAL,
44
GEQUAL, PI, NEQUAL, STERLING, BSSB, SSBB, BBSS, SBBS,
45
SBSS, SSSB, SSBS, BSSS, BSBS, SBSB, SSSS
48
public const Window stdscr;
49
public const Window curscr;
50
public const Window newscr;
52
public const int LINES;
53
public const int COLS;
54
public const int TABSIZE;
56
public const int ESCDELAY;
58
[CCode (copy_function = "dupwin", free_function = "delwin", cname = "WINDOW", cprefix = "")]
60
public int box(ulong verch, ulong horch);
61
public int clearok(bool bf);
62
public int copywin(Window dstwin, int sminrow, int smincol, int dminrow, int dmincol, int dmaxrow, int dmaxcol, int overlay);
63
public Window derwin(int nlines, int ncols, int begin_y, int begin_x);
64
[CCode (cname = "dupwin")]
66
public ulong getbkgd();
67
public static Window getwin(FileStream filep);
68
public void idcok(bool bf);
69
public int idlok(bool bf);
70
public void immedok(bool bf);
71
public int intrflush(bool bf);
72
public bool is_linetouched(int line);
73
public bool is_wintouched();
74
public int keypad(bool bf);
75
public int leaveok(bool bf);
76
public int meta(bool bf);
77
public int mvderwin(int par_y, int par_x);
78
[CCode (cname = "mvwaddch")]
79
public int mvaddch(int y, int x, ulong ch);
80
[CCode (cname = "mvwaddchnstr")]
82
public int mvaddchnstr(int y, int x, ulong[] chstr, int n);
83
[CCode (cname = "mvwaddchstr")]
85
public int mvaddchstr(int y, int x, ulong[] chstr);
86
[CCode (cname = "mvwaddnstr")]
87
public int mvaddnstr(int y, int x, string str, int n);
88
[CCode (cname = "mvwaddstr")]
89
public int mvaddstr(int y, int x, string str);
90
[CCode (cname = "mvwchgat")]
91
public int mvchgat(int y, int x, int n, ulong attr, short color);
92
[CCode (cname = "mvwdelch")]
93
public int mvdelch(int y, int x);
94
[CCode (cname = "mvwgetch")]
95
public int mvgetch(int y, int x);
96
[CCode (cname = "mvwgetnstr")]
97
public int mvgetnstr(int y, int x, string str, int n);
98
[CCode (cname = "mvwgetstr")]
99
public int mvgetstr(int y, int x, string str);
100
[CCode (cname = "mvwhline")]
101
public int mvhline(int y, int x, ulong ch, int n);
102
public int mvwin(int y, int x);
103
[CCode (cname = "mvwinch")]
104
public ulong mvinch(int y, int x);
105
[CCode (cname = "mvwinchnstr")]
107
public int mvinchnstr(int y, int x, ulong[] chstr, int n);
108
[CCode (cname = "mvwinchstr")]
110
public int mvinchstr(int y, int x, ulong[] chstr);
111
[CCode (cname = "mvwinnstr")]
112
public int mvinnstr(int y, int x, string str, int n);
113
[CCode (cname = "mvwinsch")]
114
public int mvinsch(int y, int x, ulong ch);
115
[CCode (cname = "mvwinsnstr")]
116
public int mvinsnstr(int y, int x, string str, int n);
117
[CCode (cname = "mvwinsstr")]
118
public int mvinsstr(int y, int x, string str);
119
[CCode (cname = "mvwinstr")]
120
public int mvinstr(int y, int x, string str);
121
[CCode (cname = "mvwprintw")]
123
public int mvprintw(int y, int x, string str, ...);
124
[CCode (cname = "mvwscanw")]
126
public int mvscanw(int y, int x, string str, ...);
127
[CCode (cname = "mvwvline")]
128
public int mvvline(int y, int x, ulong ch, int n);
129
[CCode (cname = "newwin")]
130
public Window(int nlines, int ncols, int begin_y, int begin_x);
131
public int nodelay(bool bf);
132
public int notimeout(bool bf);
133
public int overlay(Window win);
134
public int overwrite(Window win);
135
public int putwin(FileStream filep);
136
public int redrawwin();
138
public int scrollok(bool bf);
139
public Window subpad(int nlines, int ncols, int begin_y, int begin_x);
140
public Window subwin(int nlines, int ncols, int begin_y, int begin_x);
141
public int syncok(bool bf);
142
public int touchline(int start, int count);
143
public int touchwin();
144
public int untouchwin();
145
[CCode (cname = "waddch")]
146
public int addch(ulong ch);
148
public int waddchnstr(ulong[] chstr, int n);
150
public int waddchstr(ulong[] chstr);
151
public int waddnstr(string str, int n);
152
[CCode (cname = "waddstr")]
153
public int addstr(string str);
154
[CCode (cname = "wattron")]
155
public int attron(ulong attrs);
156
[CCode (cname = "wattroff")]
157
public int attroff(ulong attrs);
158
[CCode (cname = "wattrset")]
159
public int attrset(ulong attrs);
160
[CCode (cname = "wattr_get")]
161
public int attr_get(ref ulong attrs, ref ulong pair);
162
[CCode (cname = "wattr_on")]
163
public int attr_on(ulong attrs);
164
[CCode (cname = "wattr_off")]
165
public int attr_off(ulong attrs);
166
[CCode (cname = "wattr_set")]
167
public int attr_set(ulong attrs, short pair);
168
[CCode (cname = "wbkgd")]
169
public int bkgd(ulong ch);
170
[CCode (cname = "wbkgdset")]
171
public void bkgdset(ulong ch);
172
[CCode (cname = "wborder")]
173
public int border(ulong ls, ulong rs, ulong ts, ulong bs, ulong tl, ulong tr, ulong bl, ulong br);
174
[CCode (cname = "wchgat")]
175
public int chgat(int n, ulong attr, short color);
176
[CCode (cname = "wclear")]
178
[CCode (cname = "wclrtobot")]
179
public int clrtobot();
180
[CCode (cname = "wclrtoeol")]
181
public int clrtoeol();
182
[CCode (cname = "wcolor_set")]
183
public int color_set(short color_pair_number);
184
[CCode (cname = "wcursyncup")]
185
public void cursyncup();
186
[CCode (cname = "wdelch")]
188
[CCode (cname = "wdeleteln")]
189
public int deleteln();
190
[CCode (cname = "wechochar")]
191
public int echochar(ulong ch);
192
[CCode (cname = "werase")]
194
[CCode (cname = "wgetch")]
196
[CCode (cname = "wgetnstr")]
197
public int getnstr(string str, int n);
198
[CCode (cname = "wgetstr")]
199
public int getstr(string str);
200
[CCode (cname = "whline")]
201
public int hline(ulong ch, int n);
202
[CCode (cname = "winch")]
204
[CCode (cname = "winchnstr")]
206
public int inchnstr(ulong[] chstr, int n);
207
[CCode (cname = "winchstr")]
209
public int inchstr(ulong[] chstr);
210
[CCode (cname = "winnstr")]
211
public int innstr(string str, int n);
212
[CCode (cname = "winsch")]
213
public int insch(ulong ch);
214
[CCode (cname = "winsdelln")]
215
public int insdelln(int n);
216
[CCode (cname = "winsertln")]
217
public int insertln();
218
[CCode (cname = "winsnstr")]
219
public int insnstr(string str, int n);
220
[CCode (cname = "winsstr")]
221
public int insstr(string str);
222
[CCode (cname = "winstr")]
223
public int instr(string str);
224
[CCode (cname = "wmove")]
225
public int move(int y, int x);
226
[CCode (cname = "wnoutrefresh")]
227
public int noutrefresh();
228
[CCode (cname = "wprintw")]
230
public int printw(string str, ...);
231
[CCode (cname = "wredrawln")]
232
public int redrawln(int beg_line, int num_lines);
233
[CCode (cname = "wrefresh")]
234
public int refresh();
235
[CCode (cname = "wscanw")]
237
public int scanw(string str, ...);
238
[CCode (cname = "wscrl")]
239
public int scrl(int n);
240
[CCode (cname = "wsetscrreg")]
241
public int setscrreg(int top, int bot);
242
[CCode (cname = "wstandout")]
243
public int standout();
244
[CCode (cname = "wstandend")]
245
public int standend();
246
[CCode (cname = "wsyncdown")]
247
public void syncdown();
248
[CCode (cname = "wsyncup")]
249
public void syncup();
250
[CCode (cname = "wtimeout")]
251
public void timeout(int delay);
252
[CCode (cname = "wtouchln")]
253
public int touchln(int y, int n, int changed);
254
[CCode (cname = "wvline")]
255
public int vline(ulong ch, int n);
258
[CCode (copy_function = "dupwin", free_function = "delwin", cname = "WINDOW", cprefix = "")]
259
public class Pad : Window {
260
[CCode (cname = "newpad")]
261
public Pad(int nlines, int ncols);
262
[CCode (cname = "pechochar")]
263
public int echochar(ulong ch);
264
[CCode (cname = "pnoutrefresh")]
265
public int noutrefresh(int pminrow, int pmincol, int sminrow, int smincol, int smaxrow, int smaxcol);
266
[CCode (cname = "prefresh")]
267
public int refresh(int pminrow, int pmincol, int sminrow, int smincol, int smaxrow, int smaxcol);
270
[CCode (free_function = "delscreen", cname = "SCREEN", cprefix = "")]
271
public class Screen {
272
[CCode (cname = "newterm")]
273
public Screen(string str, FileStream outfd, FileStream infd);
274
public weak Screen set_term();
277
public int addch(ulong ch);
279
public int addchnstr(ulong[] chstr, int n);
281
public int addchstr(ulong[] chstr);
282
public int addnstr(string str, int n);
283
public int addstr(string str);
284
public int attroff(ulong attr);
285
public int attron(ulong attr);
286
public int attrset(ulong attr);
287
public int attr_get(ref ulong attrs, ref short pair);
288
public int attr_off(ulong attrs);
289
public int attr_on(ulong attrs);
290
public int attr_set(ulong attrs, short pair);
291
public int baudrate();
293
public int bkgd(ulong ch);
294
public void bkgdset(ulong ch);
295
public int border(ulong ls, ulong rs, ulong ts, ulong bs, ulong tl, ulong tr, ulong bl, ulong br);
296
public bool can_change_color();
298
public int chgat(int n, ulong attr, short color);
300
public int clrtobot();
301
public int clrtoeol();
302
public int color_content(short color, ref short r, ref short g, ref short b);
303
public int color_set(short color_pair_number);
304
public int COLOR_PAIR(int n);
305
public int curs_set(int visibility);
306
public int def_prog_mode();
307
public int def_shell_mode();
308
public int delay_output(int ms);
310
public int deleteln();
311
public int doupdate();
313
public int echochar(ulong ch);
316
public char erasechar();
317
public void filter();
319
public int flushinp();
321
public int getnstr(string str, int n);
322
public int getstr(string str);
323
public int halfdelay(int tenths);
324
public bool has_colors();
325
public bool has_ic();
326
public bool has_il();
327
public int hline(ulong ch, int n);
330
public int inchnstr(ulong[] chstr, int n);
332
public int inchstr(ulong[] chstr);
333
public weak Window initscr();
334
public int init_color(short color, short r, short g, short b);
335
public int init_pair(short pair, Color f, Color b);
336
public int innstr(string str, int n);
337
public int insch(ulong ch);
338
public int insdelln(int n);
339
public int insertln();
340
public int insnstr(string str, int n);
341
public int insstr(string str);
342
public int instr(string str);
343
public bool isendwin();
344
public string keyname(int c);
345
public char killchar();
346
public string ulongname();
347
public int move(int y, int x);
348
public int mvaddch(int y, int x, ulong ch);
350
public int mvaddchnstr(int y, int x, ulong[] chstr, int n);
352
public int mvaddchstr(int y, int x, ulong[] chstr);
353
public int mvaddnstr(int y, int x, string str, int n);
354
public int mvaddstr(int y, int x, string str);
355
public int mvchgat(int y, int x, int n, ulong attr, short color);
356
public int mvcur(int oldrow, int oldcol, int newrow, int newcol);
357
public int mvdelch(int y, int x);
358
public int mvgetch(int y, int x);
359
public int mvgetnstr(int y, int x, string str, int n);
360
public int mvgetstr(int y, int x, string str);
361
public int mvhline(int y, int x, ulong ch, int n);
362
public ulong mvinch(int y, int x);
364
public int mvinchnstr(int y, int x, ulong[] chstr, int n);
366
public int mvinchstr(int y, int x, ulong[] chstr);
367
public int mvinnstr(int y, int x, string str, int n);
368
public int mvinsch(int y, int x, ulong ch);
369
public int mvinsnstr(int y, int x, string str, int n);
370
public int mvinsstr(int y, int x, string str);
371
public int mvinstr(int y, int x, string str);
373
public int mvprintw(int y, int x, string str, ...);
375
public int mvscanw(int y, int x, string str, ...);
376
public int mvvline(int y, int x, ulong ch, int n);
377
public int napms(int ms);
379
public int nocbreak();
382
public void noqiflush();
384
public int pair_content(short pair, ref Color f, ref Color b);
385
public int PAIR_NUMBER(int attrs);
387
public int printw(string str, ...);
388
public void qiflush();
390
public int refresh();
391
public int resetty();
392
public int reset_prog_mode();
393
public int reset_shell_mode();
394
public delegate int RipofflineInitFunc(Window win, int n);
395
public int ripoffline(int line, RipofflineInitFunc init);
396
public int savetty();
398
public int scanw(string str, ...);
399
public int scr_dump(string str);
400
public int scr_init(string str);
401
public int scrl(int n);
402
public int scr_restore(string str);
403
public int scr_set(string str);
404
public int setscrreg(int top, int bot);
405
public int slk_attroff(ulong attrs);
406
public int slk_attr_off(ulong attrs);
407
public int slk_attron(ulong attrs);
408
public int slk_attr_on(ulong attrs);
409
public int slk_attrset(ulong attrs);
410
public ulong slk_attr();
411
public int slk_attr_set(ulong attrs, short pair);
412
public int slk_clear();
413
public int slk_color(short color_pair_number);
414
public int slk_init(int fmt);
415
public string slk_label(int labnum);
416
public int slk_noutrefresh();
417
public int slk_refresh();
418
public int slk_restore();
419
public int slk_set(int labnum, string label, int fmt);
420
public int slk_touch();
421
public int standout();
422
public int standend();
423
public int start_color();
424
public ulong termattrs();
425
public string termname();
426
public void timeout(int delay);
427
public int typeahead(int fd);
428
public int ungetch(int ch);
429
public void use_env(bool bf);
430
public int vidattr(ulong attrs);
431
public delegate int VidputsPutcFunc(char ch);
432
public int vidputs(ulong attrs, VidputsPutcFunc putc);
433
public int vline(ulong ch, int n);
434
/* no vwprintw, vw_printw, vwscanw, vw_scanw - va_list */
436
[CCode (cprefix = "A_")]
437
public enum Attribute {
438
NORMAL, ATTRIBUTES, CHARTEXT, COLOR, STANDOUT,
439
UNDERLINE, REVERSE, BLINK, DIM, BOLD, ALTCHARSET, INVIS,
440
PROTECT, HORIZONTAL, LEFT, LOW, RIGHT, TOP, VERTICAL
444
CODE_YES, MIN, BREAK, SRESET, RESET, DOWN, UP, LEFT,
445
RIGHT, HOME, BACKSPACE, F0, /* XXX F(n), */ DL, IL, DC,
446
IC, EIC, CLEAR, EOS, EOL, SF, SR, NPAGE, PPAGE, STAB,
447
CTAB, CATAB, ENTER, PRINT, LL, A1, A3, B2, C1, C3, BTAB,
448
BEG, CANCEL, CLOSE, COMMAND, COPY, CREATE, END, EXIT,
449
FIND, HELP, MARK, MESSAGE, MOVE, NEXT, OPEN, OPTIONS,
450
PREVIOUS, REDO, REFERENCE, REFRESH, REPLACE, RESTART,
451
RESUME, SAVE, SBEG, SCANCEL, SCOMMAND, SCOPY, SCREATE,
452
SDC, SDL, SELECT, SEND, SEOL, SEXIT, SFIND, SHELP,
453
SHOME, SIC, SLEFT, SMESSAGE, SMOVE, SNEXT, SOPTIONS,
454
SPREVIOUS, SPRINT, SREDO, SREPLACE, SRIGHT, SRSUME,
455
SSAVE, SSUSPEND, SUNDO, SUSPEND, UNDO, MOUSE, RESIZE,
459
/* TODO: mouse + wide char support */