/*
** $PROJECT: MultiPrint - print datatype objects
**
** $VER: MultiPrint.h 39.0 (07.08.95)
**
** by
**
** Stefan Ruppert , Windthorststrasse 5 , 65439 Floersheim , GERMANY
**
** (C) Copyright 1995
** All Rights Reserved !
**
** $HISTORY:
**
** 07.08.95 : 039.000 : initial
*/

/* ------------------------------- includes ------------------------------- */

#include "system.h"

/* ----------------------------- definitions ------------------------------ */

#define CATCOMP_NUMBERS
#include "MultiPrint_Texts.h"

#ifdef __SASC
#define GetA4     __saveds
#endif

#define BUFFER_SIZE     256

#define TEMPLATE        "FILES/M/A,QUIET/S"

struct TemplateData
{
	STRPTR *td_Files;
	ULONG td_Quiet;
};

/* -------------------------- globaldata section -------------------------- */

struct GlobalData
{
	struct Library *gd_SysBase;
	struct Library *gd_DOSBase;
	struct Library *gd_IntuitionBase;
	struct Library *gd_UtilityBase;
	struct Library *gd_DataTypesBase;
	struct Library *gd_IconBase;
	struct Library *gd_LocaleBase;

	struct Catalog *gd_Catalog;
	APTR gd_Pool;

	/* started from workbench ? */
	LONG gd_Workbench;

	/* commandline parameter */
	struct TemplateData gd_Para;

	/* object, which caused a error */
	STRPTR gd_ErrorObject;

	/* printer stuff */
	struct MsgPort *gd_PrintPort;
	union printerIO *gd_PrintIO;

	/* datatype print method structure */
	struct dtPrint gd_PrintMsg;

	UBYTE gd_Buffer[BUFFER_SIZE];

	/* we have to emulate a GadgetInfo structure */
	struct GadgetInfo gd_GInfo;
};

#define IntuitionBase gd->gd_IntuitionBase
#define UtilityBase   gd->gd_UtilityBase
#define DataTypesBase gd->gd_DataTypesBase
#define IconBase      gd->gd_IconBase
#define LocaleBase    gd->gd_LocaleBase
#define DOSBase       gd->gd_DOSBase
#define SysBase       gd->gd_SysBase

/* ------------------------------ prototypes ------------------------------ */

extern struct GlobalData *Init(void);
extern void Free(struct GlobalData *gd);

