#include <Types.h>
#include <Memory.h>
#include <Events.h>
#include <Windows.h>
#include <TextEdit.h>
#include <OSUtils.h>
#include <ToolUtils.h>
#include <SegLoad.h>
#include <Desk.h>
#include <math.h>
#include <stdio.h>
#include <scrap.h>
#include <LowMem.h>
#include <files.h>
#include <osevents.h>
#include <diskinit.h>
#include <packages.h>
#include <traps.h>
#include <controls.h>
#include <Menus.h>
#include <QuickDraw.h>
#include <Menus.h>
#include <LowMem.h>
#include <GestaltEqu.h>
#include <StandardFile.h>

//VideoVars.h
#include <Palettes.h>

typedef struct
	{
	RGBColor	fillColor;
	Pattern		pattColor;
	} color;

typedef struct
	{
	Boolean	isVideo;
	Ptr		screenBase;
	short	resolutionX, resolutionY;
	short	rowBytes;
	short	bitsPerPixel;
	Rect	screenRect;
	Boolean	BitDepthPossible[64];
	} videoInfo, *videoInfoPtr;

typedef struct
	{
		RGBColor oldColor;
		GrafPtr savePort;
	} DrawInfo;
	
//RGBForeColor(&drawInfo.oldColor);
//SetPort(drawInfo.savePort);

videoInfo		GetVideoInfo(void);
Ptr				GetScrnBase(void);
Boolean			gotDepth(short count);
short 			GetScrnWidth(void);
short			GetScrnHeight(void);
short 			GetScrnDepth(void);
short 			GetScrnRowBytes(void);
unsigned char 	GetVolume(void);
void			SetVolume(unsigned char SdVolumeValue);
StringPtr 		GetFinderName(void);
void 			SetFinderName(StringPtr FinderNameValue);
Ptr				GetTheA5(void);
void 			SetTheA5(Ptr CurrentA5Value);
GDHandle 		GetTheGDevice(void);
Rect			GetScreenRect(void);

//Dialogs.h
void SetTheInfoStr(DialogPtr theDialog, short	itemNo, Str255 aValue);
void SetTheInfo(DialogPtr theDialog, short	itemNo, long aValue);
void CenterDialog(DialogPtr dialog, videoInfo theScreen);
Rect GetDRect(DialogPtr dialog, short	itemNo);
void SetDRect(DialogPtr dialog, short	itemNo, Rect rect);
void ToggleCheckBox(DialogPtr dialog, short item);
void SetCheck(DialogPtr dPtr, short ChkItem, short value);
void GetTheInfoStr(DialogPtr theDialog, short itemNo, StringHandle string);
short GetTheInfo(DialogPtr theDialog, short itemNo);

//videoTools.h
void DoMoveTo(WindowPtr window,short x, short y);
void DoLineTo(WindowPtr window, short x, short y, color	theColor, short copyMode, videoInfoPtr theScreen);
void DoLineTo2(short x, short y, color theColor, videoInfoPtr theScreen);
void DoFillRgn(WindowPtr window, RgnHandle theRect, color	theColor, short copyMode, videoInfoPtr theScreen);
void DoFillRect(WindowPtr window, Rect theRect, color	theColor, short copyMode, videoInfoPtr theScreen);
void DoInvertRect(WindowPtr window, Rect theRect, color theColor);
void DoDrawRect(WindowPtr window, Rect theRect, color	theColor, short copyMode, videoInfoPtr theScreen);
void MbarInit(void);
void HideMenuBar(void);
void ShowMenuBar(void);
void SquareCorners(void);
void RoundCorners(void);
void GammaFadeOut(void);
void GammaFadeIn(void);
void ChangeBitDepth(short bitDepth, Boolean color);
DrawInfo SetDrawInfo(WindowPtr window, color theColor, short copyMode);
void ReSetDrawInfo(DrawInfo drawInfo);

//myErrors.h
#define iOK					1
#define iCancel				2
#define ierrorText			3

#define REMOVE_ALL_EVENTS 0

#define	badErrorDialog		200
#define	fatalErrorDialog	201

void DoError(short theCode, Boolean Exit);
void ErrorInit(void);