/* ----------------------------------------------------------------------------
 * tw_term.h (c) 92 Michael Kraehe
 */

#ifndef TWTERM
#define TWTERM

#ifdef __cplusplus
extern "C" {                                    /* for C++ V2.0 */
#endif

/* ----------------------------------------------------------------------------
 * Terminal-Stuff
 */

extern void tw_term_getsize();
extern void tw_term_open();
extern void tw_term_close();
extern void tw_term_on();
extern void tw_term_off();
extern void tw_term_name(char *name);

extern void tw_term_cursor(int x,int y);
extern void tw_term_puts(int x,int y,char attr,char *str);
extern void tw_term_set(int x,int y,char attr,int l);

extern void tw_term_dirty();
extern void tw_term_refresh();
extern int  tw_term_getch();
extern void tw_term_error(int pos,char *s1,char *s2);

#define MAX_X	128
#define MAX_Y	128

struct TW_term {
	int y,x;
	char **c;
	char **a;
	};

extern char *tw_title;
extern int max_x,max_y;
extern struct TW_term *stdterm,*curterm;
extern int tw_sig_size;
extern int tw_term_cleanexit;

#define TW_NORMAL 0
#define TW_BOLD   1
#define TW_UNDER  2
#define TW_INVERS 4

#define TERM_BS         8
#define TERM_TAB	9
#define TERM_CR         13
#define TERM_ESC        27

#define TERM_UP         261
#define TERM_DN         262
#define TERM_LE         263
#define TERM_RE         264
#define TERM_DEL        265
#define TERM_MAUS1	266
#define TERM_MAUS2	267
#define TERM_MAUS3	268
#define TERM_REL	269

#define TERM_F1         271
#define TERM_F2         272
#define TERM_F3         273
#define TERM_F4         274
#define TERM_F5         275
#define TERM_F6         276
#define TERM_F7         277
#define TERM_F8         278
#define TERM_F9         279
#define TERM_F10        280
#define TERM_SHOW       281
#define TERM_PRINT      282

#define TERM_PGUP	291
#define TERM_PGDN	292
#define TERM_PGBEG	293
#define TERM_PGEND	294

#ifdef __cplusplus
}                                    /* for C++ V2.0 */
#endif

#endif
