curses.h

Go to the documentation of this file.
00001 /* curses.h - defines macros and prototypes for curses */
00002 
00003 #ifndef _CURSES_H
00004 #define _CURSES_H
00005 
00006 #include <termios.h>
00007 #include <stdarg.h>
00008 #include <stdio.h>
00009 
00010 typedef int bool;
00011 
00012 #ifndef TRUE
00013 #define TRUE 1
00014 #endif
00015 #ifndef FALSE
00016 #define FALSE 0
00017 #endif
00018 #ifndef ERR
00019 #define ERR (-1)        /* general error flag */
00020 #endif
00021 #ifndef OK
00022 #define OK 0            /* general OK flag */
00023 #endif
00024 
00025 /* Macros. */
00026 #define box(win,vc,hc) wbox(win,0,0,0,0,vc,hc)
00027 #define addch(ch) waddch(stdscr,ch)
00028 #define mvaddch(y,x,ch) (wmove(stdscr,y,x)==ERR?ERR:waddch(stdscr,ch))
00029 #define mvwaddch(win,y,x,ch) (wmove(win,y,x)==ERR?ERR:waddch(win,ch))
00030 #define getch() wgetch(stdscr)
00031 #define mvgetch(y,x) (wmove(stdscr,y,x)==ERR?ERR:wgetch(stdscr))
00032 #define mvwgetch(win,y,x) (wmove(win,y,x)==ERR?ERR:wgetch(win))
00033 #define addstr(str) waddstr(stdscr,str)
00034 #define mvaddstr(y,x,str) (wmove(stdscr,y,x)==ERR?ERR:waddstr(stdscr,str))
00035 #define mvwaddstr(win,y,x,str) (wmove(win,y,x)==ERR?ERR:waddstr(win,str))
00036 #define getstr(str) wgetstr(stdscr,str)
00037 #define mvgetstr(y,x,str) (wmove(stdscr,y,x)==ERR?ERR:wgetstr(stdscr,str))
00038 #define mvwgetstr(win,y,x,str) (wmove(win,y,x)==ERR?ERR:wgetstr(win,str))
00039 #define move(y,x) wmove(stdscr,y,x)
00040 #define clear() wclear(stdscr)
00041 #define erase() werase(stdscr)
00042 #define clrtobot() wclrtobot(stdscr)
00043 #define mvclrtobot(y,x) (wmove(stdscr,y,x)==ERR?ERR:wclrtobot(stdscr))
00044 #define mvwclrtobot(win,y,x) (wmove(win,y,x)==ERR?ERR:wclrtobot(win))
00045 #define clrtoeol() wclrtoeol(stdscr)
00046 #define mvclrtoeol(y,x) (wmove(stdscr,y,x)==ERR?ERR:wclrtoeol(stdscr))
00047 #define mvwclrtoeol(win,y,x) (wmove(win,y,x)==ERR?ERR:wclrtoeol(win))
00048 #define insertln() winsertln(stdscr)
00049 #define mvinsertln(y,x) (wmove(stdscr,y,x)==ERR?ERR:winsertln(stdscr))
00050 #define mvwinsertln(win,y,x) (wmove(win,y,x)==ERR?ERR:winsertln(win))
00051 #define deleteln() wdeleteln(stdscr)
00052 #define mvdeleteln(y,x) (wmove(stdscr,y,x)==ERR?ERR:wdeleteln(stdscr))
00053 #define mvwdeleteln(win,y,x) (wmove(win,y,x)==ERR?ERR:wdeleteln(win))
00054 #define refresh() wrefresh(stdscr)
00055 #define inch() winch(stdscr)
00056 #define insch(ch) winsch(stdscr,ch)
00057 #define mvinsch(y,x,ch) (wmove(stdscr,y,x)==ERR?ERR:winsch(stdscr,ch))
00058 #define mvwinsch(win,y,x,ch) (wmove(win,y,x)==ERR?ERR:winsch(win,ch))
00059 #define delch() wdelch(stdscr)
00060 #define mvdelch(y,x) (wmove(stdscr,y,x)==ERR?ERR:wdelch(stdscr))
00061 #define mvwdelch(win,y,x) (wmove(win,y,x)==ERR?ERR:wdelch(win))
00062 #define standout() wstandout(stdscr)
00063 #define wstandout(win) ((win)->_attrs |= A_STANDOUT)
00064 #define standend() wstandend(stdscr)
00065 #define wstandend(win) ((win)->_attrs &= ~A_STANDOUT)
00066 #define attrset(attrs) wattrset(stdscr, attrs)
00067 #define wattrset(win, attrs) ((win)->_attrs = (attrs))
00068 #define attron(attrs) wattron(stdscr, attrs)
00069 #define wattron(win, attrs) ((win)->_attrs |= (attrs))
00070 #define attroff(attrs) wattroff(stdscr,attrs)
00071 #define wattroff(win, attrs) ((win)->_attrs &= ~(attrs))
00072 #define resetty() tcsetattr(1, TCSANOW, &_orig_tty)
00073 #define getyx(win,y,x) (y = (win)->_cury, x = (win)->_curx)
00074 
00075 /* Video attribute definitions. */
00076 #define A_BLINK        0x0100
00077 #define A_BLANK        0
00078 #define A_BOLD         0x0200
00079 #define A_DIM          0
00080 #define A_PROTECT      0
00081 #define A_REVERSE      0x0400
00082 #define A_STANDOUT     0x0800
00083 #define A_UNDERLINE    0x1000
00084 #define A_ALTCHARSET   0x2000
00085 
00086 /* Type declarations. */
00087 typedef struct {
00088   int      _cury;                       /* current pseudo-cursor */
00089   int      _curx;
00090   int      _maxy;                       /* max coordinates */
00091   int      _maxx;
00092   int      _begy;                       /* origin on screen */
00093   int      _begx;
00094   int      _flags;                      /* window properties */
00095   int      _attrs;                      /* attributes of written characters */
00096   int      _tabsize;                    /* tab character size */
00097   bool     _clear;                      /* causes clear at next refresh */
00098   bool     _leave;                      /* leaves cursor as it happens */
00099   bool     _scroll;                     /* allows window scrolling */
00100   bool     _nodelay;                    /* input character wait flag */
00101   bool     _keypad;                     /* flags keypad key mode active */
00102   int    **_line;                       /* pointer to line pointer array */
00103   int     *_minchng;                    /* First changed character in line */
00104   int     *_maxchng;                    /* Last changed character in line */
00105   int      _regtop;                     /* Top/bottom of scrolling region */
00106   int      _regbottom;
00107 } WINDOW;
00108 
00109 /* External variables */
00110 extern int LINES;                       /* terminal height */
00111 extern int COLS;                        /* terminal width */
00112 extern bool NONL;                       /* \n causes CR too ? */
00113 extern WINDOW *curscr;                  /* the current screen image */
00114 extern WINDOW *stdscr;                  /* the default screen window */
00115 extern struct termios _orig_tty, _tty;
00116 
00117 extern unsigned int ACS_ULCORNER;       /* terminal dependent block grafic */
00118 extern unsigned int ACS_LLCORNER;       /* charcters.  Forget IBM, we are */
00119 extern unsigned int ACS_URCORNER;       /* independent of their charset. :-) */
00120 extern unsigned int ACS_LRCORNER;
00121 extern unsigned int ACS_RTEE;
00122 extern unsigned int ACS_LTEE;
00123 extern unsigned int ACS_BTEE;
00124 extern unsigned int ACS_TTEE;
00125 extern unsigned int ACS_HLINE;
00126 extern unsigned int ACS_VLINE;
00127 extern unsigned int ACS_PLUS;
00128 extern unsigned int ACS_S1;
00129 extern unsigned int ACS_S9;
00130 extern unsigned int ACS_DIAMOND;
00131 extern unsigned int ACS_CKBOARD;
00132 extern unsigned int ACS_DEGREE;
00133 extern unsigned int ACS_PLMINUS;
00134 extern unsigned int ACS_BULLET;
00135 extern unsigned int ACS_LARROW;
00136 extern unsigned int ACS_RARROW;
00137 extern unsigned int ACS_DARROW;
00138 extern unsigned int ACS_UARROW;
00139 extern unsigned int ACS_BOARD;
00140 extern unsigned int ACS_LANTERN;
00141 extern unsigned int ACS_BLOCK;
00142 
00143 _PROTOTYPE( char *unctrl, (int _c) );
00144 _PROTOTYPE( int baudrate, (void));
00145 _PROTOTYPE( void beep, (void));
00146 _PROTOTYPE( void cbreak, (void));
00147 _PROTOTYPE( void clearok, (WINDOW *_win, bool _flag) );
00148 _PROTOTYPE( void clrscr, (void));
00149 _PROTOTYPE( void curs_set, (int _visibility) );
00150 _PROTOTYPE( void delwin, (WINDOW *_win) );
00151 _PROTOTYPE( void doupdate, (void));
00152 _PROTOTYPE( void echo, (void));
00153 _PROTOTYPE( int endwin, (void));
00154 _PROTOTYPE( int erasechar, (void));
00155 _PROTOTYPE( void fatal, (char *_s) );
00156 _PROTOTYPE( int fixterm, (void));
00157 _PROTOTYPE( void flash, (void));
00158 _PROTOTYPE( void gettmode, (void));
00159 _PROTOTYPE( void idlok, (WINDOW *_win, bool _flag) );
00160 _PROTOTYPE( WINDOW *initscr, (void));
00161 _PROTOTYPE( void keypad, (WINDOW *_win, bool _flag) );
00162 _PROTOTYPE( int killchar, (void));
00163 _PROTOTYPE( void leaveok, (WINDOW *_win, bool _flag) );
00164 _PROTOTYPE( char *longname, (void));
00165 _PROTOTYPE( void meta, (WINDOW *_win, bool _flag) );
00166 _PROTOTYPE( int mvcur, (int _oldy, int _oldx, int _newy, int _newx) );
00167 _PROTOTYPE( int mvinch, (int _y, int _x) );
00168 _PROTOTYPE( int mvprintw, (int _y, int _x, const char *_fmt, ...) );
00169 _PROTOTYPE( int mvscanw, (int _y, int _x, const char *_fmt, ...) );
00170 _PROTOTYPE( int mvwin, (WINDOW *_win, int _begy, int _begx) );
00171 _PROTOTYPE( int mvwinch, (WINDOW *_win, int _y, int _x) );
00172 _PROTOTYPE( int mvwprintw, (WINDOW *_win, int _y, int _x, const char *_fmt,
00173                                                                         ...) );
00174 _PROTOTYPE( int mvwscanw, (WINDOW *_win, int _y, int _x, const char *_fmt,
00175                                                                         ...) );
00176 _PROTOTYPE( WINDOW *newwin, (int _num_lines, int _num_cols, int _y, int _x));
00177 _PROTOTYPE( void nl, (void));
00178 _PROTOTYPE( void nocbreak, (void));
00179 _PROTOTYPE( void nodelay, (WINDOW *_win, bool _flag) );
00180 _PROTOTYPE( void noecho, (void));
00181 _PROTOTYPE( void nonl, (void));
00182 _PROTOTYPE( void noraw, (void));
00183 _PROTOTYPE( void outc, (int _c) );
00184 _PROTOTYPE( void  overlay, (WINDOW *_win1, WINDOW *_win2) );
00185 _PROTOTYPE( void  overwrite, (WINDOW *_win1, WINDOW *_win2) );
00186 _PROTOTYPE( void poscur, (int _r, int _c) );
00187 _PROTOTYPE( int printw, (const char *_fmt, ...) );
00188 _PROTOTYPE( void raw, (void));
00189 _PROTOTYPE( int resetterm, (void));
00190 _PROTOTYPE( int saveoldterm, (void));
00191 _PROTOTYPE( int saveterm, (void));
00192 _PROTOTYPE( int savetty, (void));
00193 _PROTOTYPE( int scanw, (const char *_fmt, ...) );
00194 _PROTOTYPE( void scroll, (WINDOW *_win) );
00195 _PROTOTYPE( void scrollok, (WINDOW *_win, bool _flag) );
00196 _PROTOTYPE( int setscrreg, (int _top, int _bottom) );
00197 _PROTOTYPE( int setterm, (char *_type) );
00198 _PROTOTYPE( int setupterm, (void));
00199 _PROTOTYPE( WINDOW *subwin, (WINDOW *_orig, int _nlines, int _ncols, int _y,
00200                                         int _x));
00201 _PROTOTYPE( int tabsize, (int _ts) );
00202 _PROTOTYPE( void touchwin, (WINDOW *_win) );
00203 _PROTOTYPE( int waddch, (WINDOW *_win, int _c) );
00204 _PROTOTYPE( int waddstr, (WINDOW *_win, char *_str) );
00205 _PROTOTYPE( int wbox, (WINDOW *_win, int _ymin, int _xmin, int _ymax,
00206                                 int _xmax, unsigned int _v, unsigned int _h) );
00207 _PROTOTYPE( void wclear, (WINDOW *_win) );
00208 _PROTOTYPE( int wclrtobot, (WINDOW *_win) );
00209 _PROTOTYPE( int wclrtoeol, (WINDOW *_win) );
00210 _PROTOTYPE( int wdelch, (WINDOW *_win) );
00211 _PROTOTYPE( int wdeleteln, (WINDOW *_win) );
00212 _PROTOTYPE( void werase, (WINDOW *_win) );
00213 _PROTOTYPE( int wgetch, (WINDOW *_win) );
00214 _PROTOTYPE( int wgetstr, (WINDOW *_win, char *_str) );
00215 _PROTOTYPE( int winch, (WINDOW *_win) );
00216 _PROTOTYPE( int winsch, (WINDOW *_win, int _c) );
00217 _PROTOTYPE( int winsertln, (WINDOW *_win) );
00218 _PROTOTYPE( int wmove, (WINDOW *_win, int _y, int _x) );
00219 _PROTOTYPE( void wnoutrefresh, (WINDOW *_win) );
00220 _PROTOTYPE( int wprintw, (WINDOW *_win, const char *_fmt, ...));
00221 _PROTOTYPE( void wrefresh, (WINDOW *_win) );
00222 _PROTOTYPE( int wscanw, (WINDOW *_win, const char *_fmt, ...));
00223 _PROTOTYPE( int wsetscrreg, (WINDOW *_win, int _top, int _bottom) );
00224 _PROTOTYPE( int wtabsize, (WINDOW *_win, int _ts) );
00225 
00226 #endif /* _CURSES_H */

Generated on Fri Apr 14 22:56:52 2006 for minix by  doxygen 1.4.6