/*->h.wos */


#define MAXI 50


#define INFO       1   
#define SAVEFILE0  2
#define CONF       3
#define VTERM      4
#define VTVERT     5
#define STATUS     6
#define REPLAY     7
#define TEK        8
#define VDATA      9
#define FILER     10
#define TRANBOX   11
#define KEYPAD    12
#define BTOOLS    13
#define CED       14
#define VXPRINT   15
#define SENDFRAME 16
#define TSETUP    17
#define TDIALOPTIONS 18
#define PSTAT     19
#define ZOOM      20
#define MACROS    21
#define PASSWORD  22
#define NINFO     23
#define SELINFO   24
#define FINFO     25
#define ENTRY     26
#define TDIR      27
#define TEKPRINT  28
#define KERMIT    29
#define ASCII     30
#define VTSET     31
#define COMMSFN   32
#define TCET      33
#define TXMODEM   34
#define TXMODEM1K 35
#define TYMODEM   36
#define TZMODEM   37
#define TKEYVX    38
#define TKEYVT    39
#define TBATCONFIG 40
#define TCHOICES   41
#define TLINKLEVEL 42
#define TDISPLAYVT 43
#define TDISPLAYVX 44
#define TDISPLAYTEK 45
#define TLINEMODE 46
#define TMISCVT   47
#define TMISCVX   48
#define TMISCTEK  49


#define CONYN  0
#define CONDC  1
#define CONSDC 2





#define FSMAXLEAF 256
#define FSMAXPATH 1024



typedef struct
{
  int  object;
  int  length;
  int  load;
  int  exec;
  int  acc;
  int  type;
} fstat;




typedef struct fxstat
{
 fstat f;
 char  name[FSMAXLEAF];
} fxstat;





typedef struct
{
 int mul;
 int div;
 int var;
} zoomer;





extern wimp_eventstr wimpevent,wimpfirst;
extern int           icon;
extern int           ewindow;
extern int           buttons;
extern int           mousex,mousey,mhandle,micon;
extern int           x0,x1,y0,y1,bx,by,bhandle,scx,scy,wflags;
extern int           ix0,ix1,iy0,iy1;
extern int           chandle,cicon;
extern int           ox0,ox1,oy0,oy1;

extern int           draghandle;
extern int           dragtype;


extern int osver(void);
extern int os3;
extern int os35;
extern void setosversions(void);




extern void seti(int,int,int,int);
extern void select(int,int);
extern void deselect(int,int);
extern void selectst(int handle,int icon,int state);
extern void shadeicon(int window,int icon);
extern void shadeiconst2(int window,int icon,int state);
extern void unshadeicon(int window,int icon);
extern void shadeicon2(int window,int icon);
extern void unshadeicon2(int window,int icon);
extern void shadeiconst(int window,int icon,int state);
extern void makemenust(int window,int icon,int state);
extern void makemenuicon(int window,int icon);
extern void unmakemenuicon(int window,int icon);
extern void writeableicon(int window,int icon);
extern void unwriteableicon(int window,int icon);
extern void setspa(int window,int icon,int len,char * name);
extern void setindirect(int window,int icon,int len,char * string);

extern void getpointer(void);
extern void getw(int);
extern void geti(int,int);
extern void dragicon(int mx,int my,int w,int i);
extern void dragasprite(int w,int i);
extern void dragaspritestop(void);
extern void geto(int);
extern char * iconaddr(int,int);

extern void caret(int,int,int,int,int,int);
extern void iecarrot(int,int);
extern void incarrot(int,int);
extern void setfocus(int handle);
extern void findcaret(void);
extern void writeicon(int,int,char *);
extern void writeiconf(int window,int icon,char * format, ...);
extern int  geticonint(int handle,int icon,int * val);
extern void radioon(int,int);
extern void radiooff(int,int);
extern void radiost(int window,int icon,int state);
extern void opton(int,int);
extern void optoff(int,int);
extern void optst(int window,int icon,int state);

extern int  confirm(int mode,char * string, ...);
extern int  doconfirm;

extern void conficon(void);
extern void confkey(int * key);

extern void centerwindow(wimp_wstate * wst,int handle,int i);
extern void popup(int handle,int i);
extern void popupc(int tag);
extern void menuwindow(int handle);
extern void openatscroll(int handle,int scx,int scy);
extern void clipwindow(wimp_openstr * wopen,int andscroll);

extern int  getcolnumber(int pal);
extern void seteorcol(int back,int front);
extern void seteorcolpal(int back,int front);
extern int  setgcol(int pal);
extern int  setoppgcol(int pal);
extern os_error *selecttable(int sourcemode, int *sourcepal, int destmode,
                      int *destpal, char *transtab);

extern void errorbox(char *);
extern void fatalerror(char *);
extern void report(os_error * e);

extern void closedown(int handle);
extern void closedownt(int tag);
extern int  createwindowsub(int tag,char * title);
extern int  createwindow(int tag);
extern int  whandle[MAXI];
extern wimp_wind * windpoi[MAXI];
extern void reopenw(int handle);
extern void open(int handle,int x0,int y0,int x1,int y1,int scx,int scy,
                                                                 int behind);
extern void extent(int handle,int x0,int y0,int x1,int y1);

extern void getdeltas(int mode,int * dx,int * dy);
extern void getcurdeltas(int * dx,int * dy);
extern void vdumodevars(void);
extern void vdupalvars(void);
extern void starttask(void);
extern void seticonbar(void);
extern void sethearsayicon(int which);
extern void sethearsayicontext(char * text);
extern void loadsprites(void);
extern void loadtemps(void);
extern void writetitle(int tag,char * title);


extern wimp_palettestr vdupal;

extern int  screenx;
extern int  screeny;
extern int  deltax;
extern int  deltay;
extern int  maskx;
extern int  masky;
extern int  lndeltax;
extern int  lndeltay;
extern int  ncolours;
extern int  gcharsizex;
extern int  gcharsizey;
extern int  gcharspacex;
extern int  gcharspacey;
extern int  ln2bpp;

extern int  taskhandle;
extern int  iconbaricon;

extern void zapmenu(void);
extern char sprites[];

extern os_error * oscli(char * string);
extern void fx(int a,int x,int y);


extern int cstrcmp(char * first,char * second);
extern void setftype(char * filename,int type);
extern char * leaf(char *);


extern int        filetype(int load);
extern os_error * stat(char * name,fstat * f);
extern os_error * stamp(char * name,fstat * f);
extern int        fexists(char * name);
extern os_error * createfile(char * name,int length,int type);
extern int filelength(char * filename);
extern char * kerror(void);

extern void startscan(void);
extern int  nextitem(char * dirname,fxstat * f,char * wild);

extern void setmouse(int x,int y);
extern void refreshwindowtitle(int handle);
extern void refreshwindow(int handle);
extern void forward(int handle);

extern int hscrlbar;
extern int vscrlbar;

extern int  timeout;

extern int wimp_version;

extern void hourglassoff(void);
extern void hourglasson(void);

extern void savesignals(void);
extern void dprintf(int line,char * format, ...);

extern os_error * throwbackstart(void);
extern os_error * throwbackend(void);
extern os_error * throwbacksend(int reason,...);

extern int iconinredraw(wimp_redrawstr * redrawstr);

extern int wimpfonthandle;
extern int wimpfontlead;
extern int wimpfontheight;
extern int wimpfontwidth;

extern void wimpfontstart(void);
extern void wimpfontend(void);
extern void plinthtext(int x,int y,int w,int h,char * string,int col);
extern void noplinthtext(int x,int y,int w,int h,char * string,int col);
extern void stringat(int x,int y,char * string,int col,int height);

