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

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

#ifndef UXlsEscherHPP
#define UXlsEscherHPP

#pragma delphiheader begin
#pragma option push -w-
#pragma option push -Vx
#include <UEscherOtherRecords.hpp>	// Pascal unit
#include <UBreakList.hpp>	// Pascal unit
#include <UXlsSST.hpp>	// Pascal unit
#include <UEscherRecords.hpp>	// Pascal unit
#include <SysUtils.hpp>	// Pascal unit
#include <Classes.hpp>	// Pascal unit
#include <UFlxMessages.hpp>	// Pascal unit
#include <XlsMessages.hpp>	// Pascal unit
#include <UXlsOtherRecords.hpp>	// Pascal unit
#include <UXlsBaseRecordLists.hpp>	// Pascal unit
#include <UXlsBaseRecords.hpp>	// Pascal unit
#include <SysInit.hpp>	// Pascal unit
#include <System.hpp>	// Pascal unit

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

namespace Uxlsescher
{
//-- type declarations -------------------------------------------------------
class DELPHICLASS TXlsEscherRecord;
class PASCALIMPLEMENTATION TXlsEscherRecord : public Uxlsbaserecords::TBaseRecord 
{
	typedef Uxlsbaserecords::TBaseRecord inherited;
	
public:
	#pragma option push -w-inl
	/* TBaseRecord.Create */ inline __fastcall virtual TXlsEscherRecord(const Word aId, const Xlsmessages::PArrayOfByte 
		aData, const int aDataSize) : Uxlsbaserecords::TBaseRecord(aId, aData, aDataSize) { }
	#pragma option pop
	#pragma option push -w-inl
	/* TBaseRecord.Destroy */ inline __fastcall virtual ~TXlsEscherRecord(void) { }
	#pragma option pop
	
};


class DELPHICLASS TDrawingGroupRecord;
class PASCALIMPLEMENTATION TDrawingGroupRecord : public TXlsEscherRecord 
{
	typedef TXlsEscherRecord inherited;
	
public:
	#pragma option push -w-inl
	/* TBaseRecord.Create */ inline __fastcall virtual TDrawingGroupRecord(const Word aId, const Xlsmessages::PArrayOfByte 
		aData, const int aDataSize) : TXlsEscherRecord(aId, aData, aDataSize) { }
	#pragma option pop
	#pragma option push -w-inl
	/* TBaseRecord.Destroy */ inline __fastcall virtual ~TDrawingGroupRecord(void) { }
	#pragma option pop
	
};


class DELPHICLASS TDrawingRecord;
class PASCALIMPLEMENTATION TDrawingRecord : public TXlsEscherRecord 
{
	typedef TXlsEscherRecord inherited;
	
public:
	#pragma option push -w-inl
	/* TBaseRecord.Create */ inline __fastcall virtual TDrawingRecord(const Word aId, const Xlsmessages::PArrayOfByte 
		aData, const int aDataSize) : TXlsEscherRecord(aId, aData, aDataSize) { }
	#pragma option pop
	#pragma option push -w-inl
	/* TBaseRecord.Destroy */ inline __fastcall virtual ~TDrawingRecord(void) { }
	#pragma option pop
	
};


class DELPHICLASS TDrawingSelectionRecord;
class PASCALIMPLEMENTATION TDrawingSelectionRecord : public TXlsEscherRecord 
{
	typedef TXlsEscherRecord inherited;
	
public:
	#pragma option push -w-inl
	/* TBaseRecord.Create */ inline __fastcall virtual TDrawingSelectionRecord(const Word aId, const Xlsmessages::PArrayOfByte 
		aData, const int aDataSize) : TXlsEscherRecord(aId, aData, aDataSize) { }
	#pragma option pop
	#pragma option push -w-inl
	/* TBaseRecord.Destroy */ inline __fastcall virtual ~TDrawingSelectionRecord(void) { }
	#pragma option pop
	
};


class DELPHICLASS TDrawingGroup;
class PASCALIMPLEMENTATION TDrawingGroup : public System::TObject 
{
	typedef System::TObject inherited;
	
private:
	Uescherrecords::TEscherContainerRecord* FDggContainer;
	Uescherrecords::TEscherDwgGroupCache FRecordCache;
	Uescherrecords::PEscherDwgGroupCache __fastcall GetRecordCache(void);
	
public:
	__property Uescherrecords::PEscherDwgGroupCache RecordCache = {read=GetRecordCache};
	__fastcall TDrawingGroup(void);
	void __fastcall Clear(void);
	__fastcall virtual ~TDrawingGroup(void);
	void __fastcall LoadFromStream(const Classes::TStream* DataStream, const TDrawingGroupRecord* First
		);
	void __fastcall SaveToStream(const Classes::TStream* DataStream);
	__int64 __fastcall TotalSize(void);
	void __fastcall AddDwg(void);
	void __fastcall EnsureDwgGroup(void);
};


class DELPHICLASS TDrawing;
class PASCALIMPLEMENTATION TDrawing : public System::TObject 
{
	typedef System::TObject inherited;
	
private:
	Uescherrecords::TEscherContainerRecord* FDgContainer;
	Uescherrecords::TEscherDwgCache FRecordCache;
	TDrawingGroup* FDrawingGroup;
	WideString __fastcall GetDrawingName(int index);
	int __fastcall GetDrawingRow(int index);
	void __fastcall CreateBasicDrawingInfo(void);
	
public:
	void __fastcall Clear(void);
	__fastcall TDrawing(const TDrawingGroup* aDrawingGroup);
	__fastcall virtual ~TDrawing(void);
	void __fastcall CopyFrom(const TDrawing* aDrawing);
	void __fastcall LoadFromStream(const Classes::TStream* DataStream, const TDrawingRecord* First, const 
		Uxlssst::TSST* SST);
	void __fastcall SaveToStream(const Classes::TStream* DataStream);
	__int64 __fastcall TotalSize(void);
	void __fastcall ArrangeInsertRowsAndCols(const int aRowPos, const int aRowCount, const int aColPos, 
		const int aColCount, const Xlsmessages::TSheetInfo &SheetInfo);
	void __fastcall ArrangeCopySheet(const Xlsmessages::TSheetInfo &SheetInfo);
	void __fastcall InsertAndCopyRowsAndCols(const int FirstRow, const int LastRow, const int DestRow, 
		const int RowCount, const int FirstCol, const int LastCol, const int DestCol, const int ColCount, 
		const Xlsmessages::TSheetInfo &SheetInfo);
	void __fastcall DeleteRows(const Word aRow, const Word aCount, const Xlsmessages::TSheetInfo &SheetInfo
		);
	void __fastcall DeleteCols(const Word aCol, const Word aCount, const Xlsmessages::TSheetInfo &SheetInfo
		);
	Uescherrecords::TEscherClientDataRecord* __fastcall FindObjId(const Word ObjId);
	int __fastcall DrawingCount(void);
	void __fastcall AssignDrawing(const int Index, const AnsiString Data, const Uflxmessages::TXlsImgTypes 
		DataType);
	Uflxmessages::TClientAnchor __fastcall GetAnchor(const int Index);
	void __fastcall SetAnchor(const int Index, const Uflxmessages::TClientAnchor &aAnchor);
	void __fastcall GetDrawingFromStream(const int Index, const Classes::TStream* Data, Uflxmessages::TXlsImgTypes 
		&DataType);
	__property int DrawingRow[int index] = {read=GetDrawingRow};
	__property WideString DrawingName[int index] = {read=GetDrawingName};
	void __fastcall DeleteImage(const int Index);
	void __fastcall ClearImage(const int Index);
	void __fastcall AddImage(AnsiString Data, Uflxmessages::TXlsImgTypes DataType, const Uflxmessages::TImageProperties 
		&Properties, const Uflxmessages::TFlxAnchorType Anchor);
	Uescherrecords::TEscherClientDataRecord* __fastcall AddNewComment(const Uflxmessages::TImageProperties 
		&Properties);
};


//-- var, const, procedure ---------------------------------------------------

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

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