// Borland C++ Builder
// Copyright (c) 1995, 1999 by Borland International
// All rights reserved

// (DO NOT EDIT: machine generated header) 'EnTifGr.pas' rev: 5.00

#ifndef EnTifGrHPP
#define EnTifGrHPP

#pragma delphiheader begin
#pragma option push -w-
#pragma option push -Vx
#include <Graphics.hpp>	// Pascal unit
#include <EnDiGrph.hpp>	// Pascal unit
#include <EnMisc.hpp>	// Pascal unit
#include <Classes.hpp>	// Pascal unit
#include <SysUtils.hpp>	// Pascal unit
#include <Windows.hpp>	// Pascal unit
#include <SysInit.hpp>	// Pascal unit
#include <System.hpp>	// Pascal unit

//-- user supplied -----------------------------------------------------------

namespace Entifgr
{
//-- type declarations -------------------------------------------------------
class DELPHICLASS ETiffError;
class PASCALIMPLEMENTATION ETiffError : public Sysutils::Exception 
{
	typedef Sysutils::Exception inherited;
	
public:
	#pragma option push -w-inl
	/* Exception.Create */ inline __fastcall ETiffError(const AnsiString Msg) : Sysutils::Exception(Msg
		) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateFmt */ inline __fastcall ETiffError(const AnsiString Msg, const System::TVarRec 
		* Args, const int Args_Size) : Sysutils::Exception(Msg, Args, Args_Size) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateRes */ inline __fastcall ETiffError(int Ident)/* overload */ : Sysutils::Exception(
		Ident) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateResFmt */ inline __fastcall ETiffError(int Ident, const System::TVarRec * Args, 
		const int Args_Size)/* overload */ : Sysutils::Exception(Ident, Args, Args_Size) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateHelp */ inline __fastcall ETiffError(const AnsiString Msg, int AHelpContext) : Sysutils::Exception(
		Msg, AHelpContext) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateFmtHelp */ inline __fastcall ETiffError(const AnsiString Msg, const System::TVarRec 
		* Args, const int Args_Size, int AHelpContext) : Sysutils::Exception(Msg, Args, Args_Size, AHelpContext
		) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateResHelp */ inline __fastcall ETiffError(int Ident, int AHelpContext)/* overload */
		 : Sysutils::Exception(Ident, AHelpContext) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateResFmtHelp */ inline __fastcall ETiffError(System::PResStringRec ResStringRec, const 
		System::TVarRec * Args, const int Args_Size, int AHelpContext)/* overload */ : Sysutils::Exception(
		ResStringRec, Args, Args_Size, AHelpContext) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~ETiffError(void) { }
	#pragma option pop
	
};


#pragma option push -b-
enum TTiffCompression { tcNone, tcPackbits, tcGroup3_1d, tcGroup3_2d, tcGroup4, tcZLib, tcJPEG };
#pragma option pop

class DELPHICLASS TCustomTiffTag;
class PASCALIMPLEMENTATION TCustomTiffTag : public System::TObject 
{
	typedef System::TObject inherited;
	
public:
	bool Read;
	bool Write;
	AnsiString Value;
public:
	#pragma option push -w-inl
	/* TObject.Create */ inline __fastcall TCustomTiffTag(void) : System::TObject() { }
	#pragma option pop
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~TCustomTiffTag(void) { }
	#pragma option pop
	
};


class DELPHICLASS TTiffGraphic;
class PASCALIMPLEMENTATION TTiffGraphic : public Endigrph::TDibGraphic 
{
	typedef Endigrph::TDibGraphic inherited;
	
protected:
	TTiffCompression FCompression;
	int FRowsPerStrip;
	Classes::TList* FCustomTags;
	AnsiString FDocumentNameTag;
	AnsiString FImageDescriptionTag;
	AnsiString FScannerMakeTag;
	AnsiString FScannerModelTag;
	AnsiString FPageNameTag;
	AnsiString FSoftwareTag;
	AnsiString FDateTimeTag;
	AnsiString FArtistTag;
	AnsiString FHostComputerTag;
	AnsiString FAnnotationTag;
	Enmisc::TJpegQuality FJpegQuality;
	void __fastcall CreateCustomTags(void);
	void __fastcall DestroyCustomTags(void);
	TCustomTiffTag* __fastcall GetCustomTiffTag(const int Index);
	void __fastcall SetCompression(const TTiffCompression InCompression);
	void __fastcall SetRowsPerStrip(const int InRowsPerStrip);
	AnsiString __fastcall GetAnnotationTag(void);
	void __fastcall SetAnnotationTag(const AnsiString Tag);
	#pragma option push -w-inl
	/* virtual class method */ virtual bool __fastcall CanRead(const Classes::TStream* Stream) { return 
		CanRead(__classid(TTiffGraphic), Stream); }
	#pragma option pop
	/*         class method */ static bool __fastcall CanRead(TMetaClass* vmt, const Classes::TStream* 
		Stream);
	
public:
	__fastcall virtual TTiffGraphic(void);
	__fastcall virtual ~TTiffGraphic(void);
	virtual void __fastcall Assign(Classes::TPersistent* Source);
	virtual void __fastcall NewImage(const int Width, const int Height, const Enmisc::TImageFormat ImageFormat
		, Windows::PMaxLogPalette pPalette, const Word InXDotsPerInch, const Word InYDotsPerInch);
	__property TTiffCompression Compression = {read=FCompression, write=SetCompression, nodefault};
	virtual int __fastcall GetImageCount(const Classes::TStream* Stream);
	virtual void __fastcall SingleLoadFromStream(const Classes::TStream* Stream, const int ImageToLoad)
		;
	virtual void __fastcall SaveToStream(Classes::TStream* Stream);
	virtual void __fastcall AppendToStream(Classes::TStream* Stream);
	__property int RowsPerStrip = {read=FRowsPerStrip, write=SetRowsPerStrip, nodefault};
	__property TCustomTiffTag* CustomTags[int Index] = {read=GetCustomTiffTag};
	__property AnsiString DocumentNameTag = {read=FDocumentNameTag, write=FDocumentNameTag};
	__property AnsiString ImageDescriptionTag = {read=FImageDescriptionTag, write=FImageDescriptionTag}
		;
	__property AnsiString ScannerMakeTag = {read=FScannerMakeTag, write=FScannerMakeTag};
	__property AnsiString ScannerModelTag = {read=FScannerModelTag, write=FScannerModelTag};
	__property AnsiString PageNameTag = {read=FPageNameTag, write=FPageNameTag};
	__property AnsiString SoftwareTag = {read=FSoftwareTag, write=FSoftwareTag};
	__property AnsiString DateTimeTag = {read=FDateTimeTag, write=FDateTimeTag};
	__property AnsiString ArtistTag = {read=FArtistTag, write=FArtistTag};
	__property AnsiString HostComputerTag = {read=FHostComputerTag, write=FHostComputerTag};
	__property AnsiString AnnotationTag = {read=GetAnnotationTag, write=SetAnnotationTag};
	__property Enmisc::TJpegQuality JpegQuality = {read=FJpegQuality, write=FJpegQuality, nodefault};
};


//-- var, const, procedure ---------------------------------------------------
extern PACKAGE Word CCustomTagValues[20];
static const Shortint CAnnotationTag = 0x0;
static const Shortint CMinCustomTag = 0x1;
static const Shortint CMaxCustomTag = 0x13;
extern PACKAGE void __fastcall RaiseTiffError(const AnsiString Msg);
extern PACKAGE AnsiString __fastcall TiffCompressionStr(const TTiffCompression Compression);

}	/* namespace Entifgr */
#if !defined(NO_IMPLICIT_NAMESPACE_USE)
using namespace Entifgr;
#endif
#pragma option pop	// -w-
#pragma option pop	// -Vx

#pragma delphiheader end.
//-- end unit ----------------------------------------------------------------
#endif	// EnTifGr
