/* Include file generated by Toolmaker V1.19 */

#include "FL_Panel_tm_text.h"	/* Toolmaker text header file */

/* TMScreenInfo structure */
 
struct TMScreenInfo
  {
  struct Screen *Screen;          /* pointer to Screen structure */
  struct TagItem *MoreTags;       /* pointer to additional tag array */
  struct VisualInfo *VisualInfo;  /* pointer to VisualInfo structure */
  APTR UserData;
  };

/* TMWindowInfo structure */
 
struct TMWindowInfo
  {
  struct Window *Window;         /* pointer to Window structure */
  struct TagItem *MoreTags;      /* pointer to additional tag array */
  struct IntuiMessage *GT_IMsg;  /* pointer to last gadtools IntuiMessage */
  struct Menu *Menu;             /* pointer to Menu structure */
  struct Requester Requester;    /* Requester structure for DISABLE/ENABLE */
  UBYTE DisableCount;            /* Count for nested DISABLE/ENABLEs */
  ULONG Flags;                   /* TMWF_ flags */
  struct Gadget *FirstGadget;    /* pointer to first gadget */
  struct Gadget *ContextGadget;  /* pointer to context gadget */
  APTR UserData;
  };

/* TMGadgetInfo structure */
 
struct TMGadgetInfo
  {
  struct Gadget *Gadget;
  struct TagItem *MoreTags;
  APTR UserData;
  };

/* TMData structure */
 
struct TMData
  {
  ULONG Size;                                   /* Size of TMData structure       */
  struct MsgPort *WindowMsgPort;                /* pointer to window message port */
  AREXXCONTEXT ARexxContext;                    /* ARexx context structure        */
  ULONG ARexxSignal;                            /* ARexx signal flag for Wait     */
  LONG  ARexxErrorLevel;                        /* ARexx error level              */
  char *ARexxError;                             /* ARexx error string             */
  char *ARexxResult;                            /* ARexx result string            */
  ULONG UserSignal;                             /* User signal flag for Wait      */
  LONG ReturnCode;                              /* Return code for exit()         */
  struct FileRequester *FileRequester;	        /* ASL file requester pointer     */
  struct FontRequester *FontRequester;	        /* ASL font requester pointer     */
  struct TMScreenInfo TMScreenInfo[1];	        /* TMScreenInfo structure array   */
  struct TMGadgetInfo TMGadgetInfo_AMIGAFLP[8]; /* TMGadgetInfo structure array   */
  struct TMWindowInfo TMWindowInfo[1];          /* TMWindowInfo structure array   */
  APTR UserData;
  };

/* Function Prototypes */
 
struct TMData *TM_Open           ( ULONG *         );
VOID TM_Close                    ( struct TMData * );
LONG TM_Request                  ( struct Window *, UBYTE *, UBYTE *, UBYTE *, ULONG *, APTR, ...);
VOID TM_EventLoop                ( struct TMData *);
BOOL ARexxMessage                ( struct TMData *, struct RexxMsg *);
BOOL UserSignal                  ( struct TMData *, ULONG);
BOOL OpenScreen_Workbench        ( struct TMData *);
VOID CloseScreen_Workbench       ( struct TMData *);
BOOL OpenWindow_AMIGAFLP         ( struct TMData *);
VOID CloseWindow_AMIGAFLP        ( struct TMData *);
VOID DisableWindow_AMIGAFLP      ( struct TMData *);
VOID EnableWindow_AMIGAFLP       ( struct TMData *);
BOOL Window_AMIGAFLP_MENUPICK    ( struct TMData *, struct IntuiMessage *);
BOOL Window_AMIGAFLP_GADGETUP    ( struct TMData *, struct IntuiMessage *);
BOOL Window_AMIGAFLP_CLOSEWINDOW ( struct TMData *, struct IntuiMessage *);
BOOL Window_AMIGAFLP_RAWKEY      ( struct TMData *, struct IntuiMessage *);
BOOL Window_AMIGAFLP_REQVERIFY   ( struct TMData *, struct IntuiMessage *);
BOOL Window_AMIGAFLP_MENUVERIFY  ( struct TMData *, struct IntuiMessage *);
BOOL Window_AMIGAFLP_VANILLAKEY  ( struct TMData *, struct IntuiMessage *);
BOOL Window_AMIGAFLP_MENUHELP    ( struct TMData *, struct IntuiMessage *);

/* Library pointers */
 
extern struct Library *SysBase;
extern struct Library *DOSBase;
extern struct Library *IntuitionBase;
extern struct Library *GadToolsBase;
extern struct Library *UtilityBase;
extern struct Library *AslBase;

/* Constants */
 
#define OPENFILE	0	/* For open file requester */
#define SAVEFILE	1	/* For save file requester */

#define TMWF_OPENED	0x00000001	/* Window opened flag */
#define TMWF_DISABLED	0x00000002	/* Window disabled flag */

#define TMERR_OK	0
#define TMERR_MEMORY	1
#define TMERR_MSGPORT	2

/* Screen pointer */
 
#define screen_Workbench	TMData->TMScreenInfo[0].Screen	/* Default public screen pointer */

/* Window, Menu, and Gadget pointers */
 
#define window_AMIGAFLP	TMData->TMWindowInfo[0].Window	        /* Window pointer */
#define menu_AMIGAFLP	TMData->TMWindowInfo[0].Menu	        /* Menu pointer   */
#define gadget_FLPoints	TMData->TMGadgetInfo_AMIGAFLP[0].Gadget	/* Gadget pointer */
#define gadget_FLPNUMY	TMData->TMGadgetInfo_AMIGAFLP[1].Gadget	/* Gadget pointer */
#define gadget_FLPSeed	TMData->TMGadgetInfo_AMIGAFLP[2].Gadget	/* Gadget pointer */
#define gadget_FLPRaniz	TMData->TMGadgetInfo_AMIGAFLP[3].Gadget	/* Gadget pointer */
#define gadget_FLPNUMX	TMData->TMGadgetInfo_AMIGAFLP[4].Gadget	/* Gadget pointer */
#define gadget_FILENAME	TMData->TMGadgetInfo_AMIGAFLP[5].Gadget	/* Gadget pointer */
#define gadget_MAKEFRAC	TMData->TMGadgetInfo_AMIGAFLP[6].Gadget	/* Gadget pointer */
#define gadget_SAVEAS	TMData->TMGadgetInfo_AMIGAFLP[7].Gadget	/* Gadget pointer */

/* Gadget IDs */
 
#define ID_FLPoints	1	/* Gadget ID */
#define ID_FLPNUMY	2	/* Gadget ID */
#define ID_FLPSeed	3	/* Gadget ID */
#define ID_FLPRaniz	4	/* Gadget ID */
#define ID_FLPNUMX	5	/* Gadget ID */
#define ID_FILENAME	6	/* Gadget ID */
#define ID_MAKEFRAC	7	/* Gadget ID */
#define ID_SAVEAS	8	/* Gadget ID */

/* Menu, item, and subitem IDs */
 
#define MENU_PROJECT	0	/* Menu number */
#define ITEM_SAVE	0	/* Item number */
#define ITEM_SAVEASM	1	/* Item number */
#define ITEM_ABOUT	3	/* Item number */
#define ITEM_QUIT	5	/* Item number */

/* ScreenInfo pointers */
 
#define ScreenInfo_Workbench	TMData->TMScreenInfo[0]	/* TMScreenInfo structure pointer */

/* WindowInfo pointers */
 
#define WindowInfo_AMIGAFLP	TMData->TMWindowInfo[0]	/* TMWindowInfo structure pointer */

/* GadgetInfo pointers */
 
#define GadgetInfo_FLPoints	TMData->TMGadgetInfo_AMIGAFLP[0]	/* TMGadgetInfo structure pointer */
#define GadgetInfo_FLPNUMY	TMData->TMGadgetInfo_AMIGAFLP[1]	/* TMGadgetInfo structure pointer */
#define GadgetInfo_FLPSeed	TMData->TMGadgetInfo_AMIGAFLP[2]	/* TMGadgetInfo structure pointer */
#define GadgetInfo_FLPRaniz	TMData->TMGadgetInfo_AMIGAFLP[3]	/* TMGadgetInfo structure pointer */
#define GadgetInfo_FLPNUMX	TMData->TMGadgetInfo_AMIGAFLP[4]	/* TMGadgetInfo structure pointer */
#define GadgetInfo_FILENAME	TMData->TMGadgetInfo_AMIGAFLP[5]	/* TMGadgetInfo structure pointer */
#define GadgetInfo_MAKEFRAC	TMData->TMGadgetInfo_AMIGAFLP[6]	/* TMGadgetInfo structure pointer */
#define GadgetInfo_SAVEAS	TMData->TMGadgetInfo_AMIGAFLP[7]	/* TMGadgetInfo structure pointer */

/* NewMenu UserData structures */
 
extern TMOBJECTDATA tmobjectdata_SAVE;    /* SAVE    */
extern TMOBJECTDATA tmobjectdata_SAVEASM; /* SAVEASM */
extern TMOBJECTDATA tmobjectdata_ABOUT;   /* ABOUT   */
extern TMOBJECTDATA tmobjectdata_QUIT;    /* QUIT    */

/* NewGadget UserData structures */
 
extern TMOBJECTDATA tmobjectdata_FLPoints;      /* FLPoints */
extern TMOBJECTDATA tmobjectdata_FLPNUMY;	/* FLPNUMY  */
extern TMOBJECTDATA tmobjectdata_FLPSeed;	/* FLPSeed  */
extern TMOBJECTDATA tmobjectdata_FLPRaniz;	/* FLPRaniz */
extern TMOBJECTDATA tmobjectdata_FLPNUMX;	/* FLPNUMX  */
extern TMOBJECTDATA tmobjectdata_FILENAME;	/* FILENAME */
extern TMOBJECTDATA tmobjectdata_MAKEFRAC;	/* MAKEFRAC */
extern TMOBJECTDATA tmobjectdata_SAVEAS;	/* SAVEAS   */
