/* Variable List for Associate (C) 1994 Hydra/LSD */

extern struct Library *SysBase;
extern struct DosLibrary *DOSBase;

#define MAX_TEMP_STR_LEN 256
struct TypeNode
{
  struct Node typenode;
  struct List *nameplist; // set to null when you init..
  struct List *fileplist; // set to null when you init..
  char *IconName; // you MUST allocate 256 bytes when you init..
  LONG RunInfo; // set to 0 when you init..
};

#ifdef MAIN

struct rtFileRequester *filereq;
struct Library *IconBase=NULL;
struct Library *WorkbenchBase=NULL;
struct ReqToolsBase *ReqToolsBase=NULL;

struct DiskObject   *dobj=NULL;
struct MsgPort   *ascport=NULL;
struct AppIcon   *appicon=NULL;
struct AppMessage *appmsg=NULL;

struct List *typelist=NULL;
struct TypeNode *temptnode;
char tmpstr[MAX_TEMP_STR_LEN];
char okstr[]="OK!"; // use on requesters instead of using the same string LOTS of times.
ULONG reqtags[] = {RTGS_Flags, GSREQF_CENTERTEXT,RT_Underscore, '_',TAG_END};
LONG LastSec=0;
LONG LastMic=0;
#ifdef KS20
  LONG LastPickClicked=-1;
  LONG LastFilePClicked=-1;
  LONG LastNamePClicked=-1;
  LONG LastTypeClicked=-1;
#endif

#else
extern struct List *typelist;
extern BOOL done;
extern struct Library *WorkbenchBase;
extern struct rtFileRequester *filereq;
extern struct TypeNode *temptnode;
extern char tmpstr[MAX_TEMP_STR_LEN];
extern char okstr[];
extern ULONG reqtags[];
extern LONG LastSec;
extern LONG LastMic;
#ifdef KS20
  extern LONG LastPickClicked;
  extern LONG LastFilePClicked;
  extern LONG LastNamePClicked;
  extern LONG LastTypeClicked;
#endif
#endif