#ifndef HARDCOPY_H
#define HARDCOPY_H

/****************************************************************
 *																															*
 * Filename : Hardcopy.h																				*
 *																															*
 ****************************************************************
 *																															*
 *	Comment : Allgemeine Definitionen für Hardcopy							*
 *						Diese Includedatei sollte bei Hardcopy.c					*
 *						eingelesen werden.																*
 *																															*
 *						Es beinhaltet Definitionen für :									*
 *						 ->Gadget																					*
 *						 ->Graphik																				*
 *						 ->Verschiedene																		*
 *																															*
 *			Rev : V1.1																							*
 *																															*
 *	History : V1.0 erstellen dieses Files							01.06.89	*
 *						V1.1 erweitern um X/Y Option						01.09.89	*
 *																															*
 *			Doc :																										*
 *																															*
 *		 Bugs : keine bekannt																			*
 *																															*
 *		Autor : Oesch Silvano																			*
 *																															*
 *		Datum : 01.09.89																					*
 *																															*
 ****************************************************************/


/****************************************************************
 *																															*
 * externe Definitionen																					*
 *																															*
 ****************************************************************/

extern struct TextAttr TOPAZ80;			/* Textdarstellung					*/

/****************************************************************
 *																															*
 * allgemeine Definitionen																			*
 *																															*
 ****************************************************************/

#define SCREENHEADER 10							/* Grösse des Screenheaders	*/
#define WINDOWHEADER 10							/* Grösse des Windowheaders	*/

#define HcX	110											/* Windowkoordinaten X			*/
#define HcY	25											/* Windowkoordinaten Y			*/
#define HcXh 300										/* Windowlänge							*/
#define HcYh 125										/* Windowbreite							*/

#define HRX	0												/* Requestkoordinaten X			*/
#define HRY	0												/* Requestkoordinaten Y			*/
#define HRXh 280										/* Requestlänge							*/
#define HRYh 50											/* Requestbreite						*/

/****************************************************************
 *																															*
 *		Grenzen der Gadgetcounters und Startwerte									*
 *																															*
 ****************************************************************/

#define MINDICHTE 1									/* Dichte 1-7								*/
#define DICHTE 1										/* Startwerte								*/
static char DICHTES[] = " 1";
#define MAXDICHTE 7

#define MINXRAND 0									/* X Rand 0-20							*/
#define MINBREITE 3									/* Breite 3-34							*/
#define XRAND 0											/* Startwerte								*/
static char XRANDS[] = " 0";
#define BREITE 10										/* Startwerte								*/
static char BREITES[] = "10";
#define MAXBREITE 34

#define MINYRAND 0									/* Y Rand 0-30							*/
#define MINHOEHE 3									/* Höhe 3-30								*/
#define YRAND 0											/* Startwerte								*/
static char YRANDS[] = " 0";
#define HOEHE 10										/* Startwerte								*/
static char HOEHES[] = "10";
#define MAXHOEHE 30

/****************************************************************
 *																															*
 *		Gadget Abbruchdefinition																	*
 *																															*
 ****************************************************************/

#define GHc2X 192										/* für Hardcopywindow				*/
#define GHc2Y 90
#define GHcRX 190										/* für Abbruchwindow				*/
#define GHcRY 28

/****************************************************************
 *																															*
 *		Gadget ID's																								*
 *																															*
 ****************************************************************/

#define GDU 1												/* Dichte Up								*/
#define GDD 2												/* Dichte Down							*/
#define GXU 3												/* oberer Rand Up						*/
#define GXD 4												/* oberer Rand Down					*/
#define GYU 5												/* linker Rand Up						*/
#define GYD 6												/* linker Rand Down					*/
#define GBU 7												/* Breite Up								*/
#define GBD 8												/* Breite Down							*/
#define GHU 9												/* Höhe Up									*/
#define GHD 10											/* Höhe Down								*/
#define GP	11											/* Print										*/
#define GC	12											/* Cancel										*/
#define GR	13											/* Reverse									*/

/****************************************************************
 *																															*
 * lokale Deklarationen																					*
 *																															*
 ****************************************************************/

struct Prt_Commands
	{
		UWORD Command;
		UBYTE P_0,
					P_1,
					P_2,
					P_3;
	};

/****************************************************************
 *																															*
 *		Pointerdefinitionen																				*
 *																															*
 ****************************************************************/

extern USHORT chip Up[18];

extern USHORT chip Down[18];

/****************************************************************
 *																															*
 *		BorderVectoren																						*
 *																															*
 ****************************************************************/

static SHORT BVHc1[] =
{
	0,0,
	20,0,
	20,10,
	0,10,
	0,0
};

static SHORT BVHc2[] =
{
	0,0,
	80,0,
	80,15,
	0,15,
	0,0
};

/****************************************************************
 *																															*
 *		Border																										*
 *																															*
 ****************************************************************/

static struct Border BHc1 =
{																		/* Reverse									*/
	-1,-1,
	3,0,JAM1,
	5,
	BVHc1,
	NULL
};

static struct Border BHc2 =
{																		/* Print	+ Cancel					*/
	-1,-1,
	3,0,JAM1,
	5,
	BVHc2,
	NULL
};

static struct Border BHc3 =
{																		/* X												*/
	88,41,
	3,0,JAM1,
	5,
	BVHc1,
	NULL
};

static struct Border BHc4 =
{																		/* Dichte										*/
	27,41,
	3,0,JAM1,
	5,
	BVHc1,
	&BHc3
};

static struct Border BHc5 =
{																		/* Y												*/
	150,41,
	3,0,JAM1,
	5,
	BVHc1,
	&BHc4
};

static struct Border BHc6 =
{																		/* Breite										*/
	88,89,
	3,0,JAM1,
	5,
	BVHc1,
	&BHc5
};

static struct Border BHc7 =
{																		/* Hoehe										*/
	150,89,
	3,0,JAM1,
	5,
	BVHc1,
	&BHc6
};


/****************************************************************
 *																															*
 *		Textdefinitionen																					*
 *																															*
 ****************************************************************/

static struct IntuiText ITHc9 =
{																		/* Gadget - Text						*/
	3,0,JAM2,
	20,3,
	&TOPAZ80,
	"Print",
	NULL
};

static struct IntuiText ITHc8 =
{																		/* Gadget - Text						*/
	3,0,JAM2,
	14,3,
	&TOPAZ80,
	"Abbruch",
	NULL
};

static struct IntuiText ITHc7 =
{																		/* Hoehe										*/
	3,0,JAM2,
	153,91,
	&TOPAZ80,
	HOEHES,
	NULL
};

static struct IntuiText ITHc6 =
{																		/* Breite										*/
	3,0,JAM2,
	91,91,
	&TOPAZ80,
	BREITES,
	&ITHc7
};

static struct IntuiText ITHc5 =
{																		/* Y												*/
	3,0,JAM2,
	153,43,
	&TOPAZ80,
	YRANDS,
	&ITHc6
};

static struct IntuiText ITHc4 =
{																		/* X												*/
	3,0,JAM2,
	91,43,
	&TOPAZ80,
	XRANDS,
	&ITHc5
};

static struct IntuiText ITHc3 =
{																		/* Dichte										*/
	3,0,JAM2,
	30,43,
	&TOPAZ80,
	DICHTES,
	&ITHc4
};

static struct IntuiText ITHc2 =
{																		/* 2. Titel									*/
	3,0,JAM2,
	10,70,
	&TOPAZ80,
	"Reverse Breite  Höhe",
	&ITHc3
};

static struct IntuiText ITHc1 =
{																		/* 1. Titel									*/
	3,0,JAM2,
	14,19,
	&TOPAZ80,
	"Dichte   X      Y",
	&ITHc2
};


/****************************************************************
 *																															*
 *		Image																											*
 *																															*
 ****************************************************************/

static struct Image IUpHc =
{
	0,0,
	16,9,
	2,
	Up,
	0x0003,0x0000,
	NULL
};

static struct Image IDownHc =
{
	0,0,
	16,9,
	2,
	Down,
	0x0003,0x0000,
	NULL
};

/****************************************************************
 *																															*
 *		Gadget																										*
 *																															*
 ****************************************************************/


static struct Gadget GHc13 =
{																		/* Hoehe Down								*/
	NULL,
	153,100,
	16,9,
	GADGIMAGE,
	RELVERIFY+GADGIMMEDIATE,
	BOOLGADGET,
	(APTR)&IDownHc,
	NULL,
	NULL,
	NULL,
	NULL,
	GHD,
	NULL
};

static struct Gadget GHc12 =
{																		/* Hoehe Up									*/
	&GHc13,
	153,80,
	16,9,
	GADGIMAGE,
	RELVERIFY+GADGIMMEDIATE,
	BOOLGADGET,
	(APTR)&IUpHc,
	NULL,
	NULL,
	NULL,
	NULL,
	GHU,
	NULL
};

static struct Gadget GHc11 =
{																		/* Breite Down							*/
	&GHc12,
	91,100,
	16,9,
	GADGIMAGE,
	RELVERIFY+GADGIMMEDIATE,
	BOOLGADGET,
	(APTR)&IDownHc,
	NULL,
	NULL,
	NULL,
	NULL,
	GBD,
	NULL
};

static struct Gadget GHc10 =
{																		/* Breite Up								*/
	&GHc11,
	91,80,
	16,9,
	GADGIMAGE,
	RELVERIFY+GADGIMMEDIATE,
	BOOLGADGET,
	(APTR)&IUpHc,
	NULL,
	NULL,
	NULL,
	NULL,
	GBU,
	NULL
};

static struct Gadget GHc9 =
{																		/* Y Down										*/
	&GHc10,
	153,52,
	16,9,
	GADGIMAGE,
	RELVERIFY+GADGIMMEDIATE,
	BOOLGADGET,
	(APTR)&IDownHc,
	NULL,
	NULL,
	NULL,
	NULL,
	GYD,
	NULL
};

static struct Gadget GHc8 =
{																		/* Y Up											*/
	&GHc9,
	153,32,
	16,9,
	GADGIMAGE,
	RELVERIFY+GADGIMMEDIATE,
	BOOLGADGET,
	(APTR)&IUpHc,
	NULL,
	NULL,
	NULL,
	NULL,
	GYU,
	NULL
};

static struct Gadget GHc7 =
{																		/* X Down										*/
	&GHc8,
	91,52,
	16,9,
	GADGIMAGE,
	RELVERIFY+GADGIMMEDIATE,
	BOOLGADGET,
	(APTR)&IDownHc,
	NULL,
	NULL,
	NULL,
	NULL,
	GXD,
	NULL
};

static struct Gadget GHc6 =
{																		/* X Up											*/
	&GHc7,
	91,32,
	16,9,
	GADGIMAGE,
	RELVERIFY+GADGIMMEDIATE,
	BOOLGADGET,
	(APTR)&IUpHc,
	NULL,
	NULL,
	NULL,
	NULL,
	GXU,
	NULL
};

static struct Gadget GHc5 =
{																		/* Dichte Down							*/
	&GHc6,
	30,52,
	16,9,
	GADGIMAGE,
	RELVERIFY+GADGIMMEDIATE,
	BOOLGADGET,
	(APTR)&IDownHc,
	NULL,
	NULL,
	NULL,
	NULL,
	GDD,
	NULL
};

static struct Gadget GHc4 =
{																		/* Dichte Up								*/
	&GHc5,
	30,32,
	16,9,
	GADGIMAGE,
	RELVERIFY+GADGIMMEDIATE,
	BOOLGADGET,
	(APTR)&IUpHc,
	NULL,
	NULL,
	NULL,
	NULL,
	GDU,
	NULL
};

static struct Gadget GHc3 =
{																		/* Reverse Gadget						*/
	&GHc4,
	30,90,
	19,9,
	SELECTED,
	RELVERIFY+TOGGLESELECT,
	BOOLGADGET,
	(APTR)&BHc1,
	NULL,
	NULL,
	NULL,
	NULL,
	GR,
	NULL
};

static struct Gadget GHc2 =
{																		/* Cancel Gadget						*/
	&GHc3,
	GHc2X,GHc2Y,
	81,14,
	NULL,
	RELVERIFY,
	BOOLGADGET,
	(APTR)&BHc2,
	NULL,
	&ITHc8,
	NULL,
	NULL,
	GC,
	NULL
};

static struct Gadget GHc1 =
{																		/* Print Gadget							*/
	&GHc2,
	193,42,
	81,14,
	NULL,
	RELVERIFY,
	BOOLGADGET,
	(APTR)&BHc2,
	NULL,
	&ITHc9,
	NULL,
	NULL,
	GP,
	NULL
};

/****************************************************************
 *																															*
 *		Windowdefinitionen																				*
 *																															*
 ****************************************************************/

static struct NewWindow HCW =
{																		/* Hardcopy Window					*/
	HcX,HcY,
	HcXh,HcYh,
	0,1,
	GADGETUP,
	WINDOWDRAG+ACTIVATE+NOCAREREFRESH,
	&GHc1,
	NULL,
	"Hardcopy",
	NULL,
	NULL,
	5,5,
	-1,-1,
	WBENCHSCREEN
};

#endif HARDCOPY_H
