00001
00002 #ifndef __CURSES_H
00003 #define __CURSES_H
00004
00005 #include "video.h"
00006 #include "display.h"
00007
00016 #ifndef max
00017 #define max(a,b) (((a) > (b)) ? (a) : (b))
00018 #endif
00019 #ifndef min
00020 #define min(a,b) (((a) < (b)) ? (a) : (b))
00021 #endif
00022
00026 typedef struct _window_ WINDOW;
00027
00032 struct _window_
00033 {
00034 int dvRow;
00035 int dvCol;
00036 int x_org;
00037 int y_org;
00038 int x_size;
00039 int y_size;
00040 int row;
00041 int col;
00042 void *IO;
00043 void *image;
00045 unsigned wrap_ok :1 ;
00046 unsigned scroll_ok :1 ;
00047 unsigned hidden :1 ;
00048 unsigned boxed :1 ;
00049 unsigned Echo :1 ;
00050 unsigned Crmode :1 ;
00051 unsigned Nl :1 ;
00052 unsigned Save :1 ;
00053 unsigned attrib :8 ;
00055 };
00056
00057
00058 #define bool unsigned int
00059 #define reg register
00060 #ifndef FALSE
00061 #define TRUE (1)
00062 #define FALSE (0)
00063 #endif
00064 #define ERR (0)
00065 #define OK (1)
00066
00067 #define WIN_BOXED 1
00068 #define WIN_UNBOXED 0
00069
00070
00071
00072
00073
00074 #define getyx( win, y, x ) \
00075 ((x) = ((WINDOW*)(win))->col, (y) = ((WINDOW*)(win))->row)
00076
00077 #define refresh()
00078 #define scrollok(win,flag) ((win)->scroll_ok = (flag))
00079 #define wrapok(win,flag) ((win)->wrap_ok = (flag))
00080 #define wrefresh(win)
00081
00082
00083
00084
00085
00086
00087
00088
00089 #define mvwinr(w,dy,dx) mvwin((w),((w)->y_org - (w)->boxed) + (dy), \
00090 ((w)->x_org - (w)->boxed) + (dx) )
00091
00092 #define ground(win,f,b) ( win->attrib = ((f) & 0x7f) | ((b) & 0x7f) << 4)
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102 extern WINDOW *stdscr;
00103 extern void endwin (void);
00104 extern void initscr (void);
00105 extern int waddch (WINDOW *, int);
00106
00107 #define addch(c) waddch(stdscr, c)
00108
00109 extern void waddstr (WINDOW *, char *);
00110 #define addstr(s) waddstr(stdscr,s)
00111
00112 extern void wclrtoeol (WINDOW * );
00113 #define clrtoeol() wclrtoeol(stdscr)
00114
00115 extern void werase (WINDOW * );
00116 #define erase werase(stdscr)
00117
00118 #define wclear(w) werase(w)
00119 #define clear() werase(stdscr)
00120
00121 extern int wgetch (WINDOW *);
00122 #define getch() wgetch( stdscr )
00123
00124 extern void wmove (WINDOW *, int, int );
00125 #define move(y,x) wmove( stdscr,(y),(x) )
00126 #define mvcur(oy,ox,y,x) move((y),(x))
00127
00128 extern int wprintw (WINDOW *, char *, ...);
00129 extern int printw ( char *, ...);
00130
00131 extern int wscroll (WINDOW *, int );
00132 #define scroll(win) wscroll(win,1)
00133
00134 extern int winch (WINDOW *);
00135 #define inch() winch(stdscr)
00136 #define mvinch(y,x) ( wmove(stdscr,y,x), winch(stdscr) )
00137 #define mvwinch(w,y,x) ( wmove(w, y,x), winch(w) )
00138
00139 extern WINDOW *newwin (int ,int ,int ,int, void *, int atrib, int nBoxed);
00140 #define subwin(w,a,b,c,d) newwin(a,b,c,d)
00141
00142 extern void WinSetTitle(WINDOW *w, char *title);
00143
00144
00145
00146
00147
00148 extern void box ( WINDOW *,int ,int );
00149 extern void crmode ( WINDOW *);
00150 extern void delwin ( WINDOW * );
00151 extern void echo ( WINDOW *);
00152 extern int mvwin ( WINDOW *win, int y, int x );
00153 extern void nl ( WINDOW * );
00154 extern void nocrmode ( WINDOW * );
00155 extern void noecho ( WINDOW * );
00156 extern void nonl ( WINDOW * );
00157 extern void boxed ( WINDOW * );
00158 extern void unboxed ( WINDOW * );
00159 extern void save ( WINDOW * );
00160 extern void nosave ( WINDOW * );
00161 extern void def_ground (WINDOW *, int, int );
00162
00165 #endif