/* ------------ window.h ------------ */
/* From DDJ, September 1988 */

void establish_window(int,int,int,int,int,int,int);
void window_title(char *);
void clear_window(void);
void delete_window(void);
void scroll_window(int);
void text_window(char **, int);
int select_window(int,int,int,int (*func)(int,int));
int get_key(void);
void hidecursor(void);
void set_cursor_type(unsigned);
void clear_screen(void);
void writeline(int,int,char *);
void current_window(void);
void error_message(char *);

#define MAX_WINDOWS 10

#define TRUE 1
#define FALSE 0
#define ERROR -1

#define  BELL 7
#define  ESC 27
#define  SHIFT_HT 143
#define  CTRL_T 20
#define  CTRL_B 2
#define  CTRL_D 4
#define  ALT_D 160
#define  ALT_E 146
#define  ALT_F 161
#define  ALT_O 152
#define  ALT_S 159

#define  F1 187
#define  F2 188
#define  F3 189
#define  F4 190
#define  F5 191
#define  F6 192
#define  F7 193
#define  F8 194
#define  F9 195
#define  F10 196
#define  ALT_F7 238

#define HOME 199
#define Up 200
#define PGUP 201
#define BS 203
#define FWD 205
#define End 207
#define Dn 208
#define PGDN 209
#define INS 210
#define DEL 211

#define CTRL_HOME 247
#define CTRL_BS 243
#define CTRL_FWD 244
#define CTRL_END 245

/* ------------ window definition structure --------------- */
struct wn {
           int lf,tp,rt,bt;       /* window position */
           int ht,wd;             /* window dimensions */
           int wx,wy;             /* window cursor */
           int wtop;              /* top text line */
           int wlines;            /* total text lines */
           int fg,bg;             /* window colors */
           char *wsave;           /* video memory save buffer */
           char **wtext;          /* pointer to text */
          };

/* ------------- internal Turbo C stuff ------------------- */
void far * pascal __vptr(int,int);
void pascal __vram(void far *, void far *, int);
extern struct {
               char filler1[4];
               char attribute;
               char filler2[5];
               char snow;
              } _video;

/* -------------- window colors ----------------- */
#define TEXTFG  WHITE
#define TEXTBG  BLUE
#define BLOCKFG BLACK
#define BLOCKBG WHITE
#define HELPFG  BLACK
#define HELPBG  WHITE
#define MENUFG  BLACK
#define MENUBG  WHITE
#define SELECTFG WHITE
#define SELECTBG BLACK
#define ENTRYFG WHITE
#define ENTRYBG BLACK
#define FIELDFG BLACK
#define FIELDBG WHITE
#define ERRORFG BLACK
#define ERRORBG WHITE

