/* 	Giro.h
	-----------------------
	HeaderFile für GiroMan V3.00
	Letzte Änderung am 06.03.1988

*/


/* Include Files */

#include <functions.h>
#include <exec/memory.h>
#include <intuition/intuitionbase.h>
#include <libraries/dosextens.h>
#include <devices/ownprinter.h>
#include <time.h>

/* Diverse Definitionen */

#define MWINDOWIFLAGS	GADGETUP|GADGETDOWN|MOUSEBUTTONS|RAWKEY|MENUPICK
#define MWINDOWFLAGS	SMART_REFRESH|REPORTMOUSE|BACKDROP|ACTIVATE
#define NWINDOWFLAGS	SIMPLE_REFRESH|BACKDROP|ACTIVATE
#define NWINDOWIFLAGS	GADGETUP|REFRESHWINDOW|MOUSEBUTTONS
#define MENUFLAGS	ITEMTEXT|ITEMENABLED|HIGHCOMP|COMMSEQ
#define PROPFLAGS	FREEVERT|PROPBORDERLESS

#define MODE_READWRITE	1004L

#define AN		1
#define AUS		0
#define MONEINT		21

#define MAINTITEL	0
#define MONATITEL	1
#define WORKTITEL	2
#define MAINWIND	0
#define MONAWIND	1

/* Strukturdefinitionen */

#define INDEX	struct Indexstruktur
#define EINTRAG	struct Eintragstruktur
#define MONAT	struct Monatstruktur

/* Datendefinitionen */

#define INDEXLENG	12000L
#define MONATLENG	798L
#define JAHRLENG	9576L
#define DATENMAX 	1999
#define SIZEEINTRAG	38L
#define	MINDATUM	850101L
#define	MAXDATUM	991231L
#define MAXFLOAT	49999.99
#define MINFLOAT	-49999.99
#define DISKERROR	-1L

/* Farbendefinition */

#define GREY		0L
#define BLACK		1L
#define RED		2L
#define BLUE		3L


/* Tabulatordefinitionen */

#define xDatum	11L
#define xBez	107L
#define xPlus	403L
#define xMin	531L
#define yUnt	209L
#define yOben	 38L

/* Makros */

#define TAB(x)	(((x)<0.0) ? (xMin):(xPlus))
#define FAR(x)	(((x)<0.0) ? (RED):(BLACK))


/* Deklaritionen von externen Variablen */

struct IntuitionBase	*IntuitionBase;
struct GfxBase		*GfxBase;
struct Screen		*MainScreen;
struct Window		*MainWindow;
struct Window		*NebenWindow;
struct IntuiMessage	*Message;
struct RastPort		*Main_rp;
struct RastPort		*Neben_rp;
struct ViewPort		*Main_vp;
struct FileHandle	*DateiIndex;
struct FileHandle	*HauptDatei;

EINTRAG			*Eintrag;

INDEX			*Index;
INDEX			*AktIndex;
INDEX			*MaxIndex;

MONAT			*Monat;

STRPTR			EingabeBuffer[3];
STRPTR			SuchBuffer[3];
STRPTR			MonatBuffer[3];
STRPTR			UndoBuffer;
STRPTR			TempText;
STRPTR			TempTextGr;

FLOAT 			AltSaldo;
FLOAT 			NeuSaldo;

ULONG			MessClass;

USHORT			MessCode;
USHORT			GadID;
USHORT			DatenAkt;
USHORT			NeuDatenAkt;
USHORT 			*LG;
USHORT			*RG;
USHORT			NeuVergeben;
USHORT			NeuProp;
USHORT			AktMonat;
USHORT			AnzMonEin;
SHORT 			AktiveZeile;
SHORT			AktMonZeile;

BOOL			Geaendert;
BOOL			MonGeaendert;
BOOL			MonEinSel;

/* Eigene Funktionsdeklarationen für Gesamtprogramm */

VOID	EndProgramm();
VOID	Beep();
VOID	LoeschFeld();
VOID	Print();
VOID	Print_Seite();
VOID	Lade_Seite();
VOID	Print_And_Sort();
VOID	PrintNeuSaldo();
VOID	PrintUntereSeite();
VOID	PrintEintrag();
VOID	PrintNachOben();
VOID	PrintNachUnten();
VOID	IDCMP_Abfrage();
VOID	Off_Str_Gadgets();
VOID	On_Str_Gadgets();
VOID	Disk_Fehler();
VOID	Setz_VonBis();
VOID	Menu_Schalt();
VOID	Menu_Normal();
VOID	Menu_Saven();
VOID	Set_Screen_Title();
ULONG	DatInLong();

STRPTR	DatInAsc();
STRPTR	Datum();
STRPTR	BetrInAsc();  

BOOL	Abfrage_Requester();

/* Manx Funktionsdeklarationen für Gesamtprogramm */

STRPTR 	strcat();
STRPTR 	strcpy();
STRPTR	index();
DOUBLE 	atof();
SHORT 	strlen();
LONG	atol();

/* Strukturen für Giromanager */

struct Eintragstruktur
{
UBYTE Bezeichnung[34];
FLOAT Betrag;
};

struct Indexstruktur
{
ULONG Datum;
int Nummer;
};

struct Monatstruktur
{
UBYTE Bezeichnung[34];
FLOAT Betrag;
};
