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

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

#ifndef UXlsSheetHPP
#define UXlsSheetHPP

#pragma delphiheader begin
#pragma option push -w-
#pragma option push -Vx
#include <Contnrs.hpp>	// Pascal unit
#include <UXlsHyperLink.hpp>	// Pascal unit
#include <UXlsColInfo.hpp>	// Pascal unit
#include <Windows.hpp>	// Pascal unit
#include <UXlsPageBreaks.hpp>	// Pascal unit
#include <UXlsFormula.hpp>	// Pascal unit
#include <UXlsCellRecords.hpp>	// Pascal unit
#include <UFlxMessages.hpp>	// Pascal unit
#include <UXlsBaseList.hpp>	// Pascal unit
#include <UXlsNotes.hpp>	// Pascal unit
#include <UXlsWorkbookGlobals.hpp>	// Pascal unit
#include <UEscherRecords.hpp>	// Pascal unit
#include <UXlsRangeRecords.hpp>	// Pascal unit
#include <UXlsEscher.hpp>	// Pascal unit
#include <UXlsRowColEntries.hpp>	// Pascal unit
#include <UXlsCondFmt.hpp>	// Pascal unit
#include <UXlsSections.hpp>	// Pascal unit
#include <XlsMessages.hpp>	// Pascal unit
#include <UXlsSST.hpp>	// Pascal unit
#include <UXlsChart.hpp>	// Pascal unit
#include <UXlsOtherRecords.hpp>	// Pascal unit
#include <UXlsBaseRecordLists.hpp>	// Pascal unit
#include <UXlsBaseRecords.hpp>	// Pascal unit
#include <SysUtils.hpp>	// Pascal unit
#include <Classes.hpp>	// Pascal unit
#include <SysInit.hpp>	// Pascal unit
#include <System.hpp>	// Pascal unit

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

namespace Uxlssheet
{
//-- type declarations -------------------------------------------------------
class DELPHICLASS TSheet;
class PASCALIMPLEMENTATION TSheet : public Uxlssections::TBaseSection 
{
	typedef Uxlssections::TBaseSection inherited;
	
private:
	bool __fastcall GetShowGridLines(void);
	void __fastcall SetShowGridLines(const bool Value);
	bool __fastcall GetShowGridHeaders(void);
	void __fastcall SetShowGridHeaders(const bool Value);
	bool __fastcall GetPrintGridLines(void);
	void __fastcall SetPrintGridLines(const bool Value);
	WideString __fastcall GetPageFooter();
	WideString __fastcall GetPageHeader();
	void __fastcall SetPageFooter(const WideString Value);
	void __fastcall SetPageHeader(const WideString Value);
	Uflxmessages::TXlsMargins __fastcall GetMargins();
	void __fastcall SetMargins(const Uflxmessages::TXlsMargins &Value);
	void __fastcall AddMargin(Uxlsbaserecords::TMarginRecord* &Margin, const int aId, const Extended Value
		);
	int __fastcall GetSheetZoom(void);
	void __fastcall SetSheetZoom(const int Value);
	WideString __fastcall GetCodeName();
	void __fastcall SetCodeName(const WideString Value);
	
protected:
	Uxlsworkbookglobals::TWorkbookGlobals* FWorkbookGlobals;
	Uxlsbaserecords::TWindow2Record* FWindow2;
	Uxlsbaserecords::TPageHeaderRecord* FPageHeader;
	Uxlsbaserecords::TPageFooterRecord* FPageFooter;
	Uxlsbaserecords::TPrintGridLinesRecord* FPrintGridLines;
	Uxlsbaserecords::TMarginRecord* FLeftMargin;
	Uxlsbaserecords::TMarginRecord* FRightMargin;
	Uxlsbaserecords::TMarginRecord* FTopMargin;
	Uxlsbaserecords::TMarginRecord* FBottomMargin;
	Uxlsbaserecords::TSetupRecord* FSetup;
	Uxlsbaserecords::TWsBoolRecord* FWSBool;
	Uxlsbaserecords::TSCLRecord* FZoom;
	Uxlsotherrecords::TGutsRecord* FGuts;
	Uxlsbaserecordlists::TBaseRecordList* FPrintRecords;
	Uxlsotherrecords::TCodeNameRecord* FCodeName;
	void __fastcall LoadCachePointers(const Uxlsbaserecords::TBaseRecord* R);
	virtual void __fastcall FixCachePointers(void);
	bool __fastcall GetSelected(void);
	void __fastcall SetSelected(const bool Value);
	virtual void __fastcall SetPageHeaderFooter(const Uxlsbaserecords::TPageHeaderFooterRecord* P, const 
		WideString s) = 0 ;
	virtual void __fastcall AddZoomRecord(void) = 0 ;
	
public:
	#pragma pack(push, 1)
	Uxlsbaserecords::TDimensionsRec OriginalDimensions;
	#pragma pack(pop)
	
	TSheet* __fastcall CopyTo(void);
	virtual TSheet* __fastcall DoCopyTo(void);
	virtual void __fastcall InsertAndCopyRowsAndCols(const int FirstRow, const int LastRow, const int DestRow
		, const int aRowCount, const int FirstCol, const int LastCol, const int DestCol, const int aColCount
		, const Xlsmessages::TSheetInfo &SheetInfo, const bool OnlyFormulas) = 0 ;
	virtual void __fastcall DeleteRowsAndCols(const Word aRow, const Word aRowCount, const Word aCol, const 
		Word aColCount, const Xlsmessages::TSheetInfo &SheetInfo) = 0 ;
	virtual void __fastcall ArrangeInsertRowsAndCols(const int InsRowPos, const int InsRowCount, const 
		int InsColPos, const int InsColCount, const Xlsmessages::TSheetInfo &SheetInfo) = 0 ;
	virtual void __fastcall ArrangeCopySheet(const Xlsmessages::TSheetInfo &SheetInfo);
	virtual void __fastcall DeleteHPageBreak(const Word aRow);
	virtual void __fastcall DeleteVPageBreak(const Word aCol);
	virtual void __fastcall InsertHPageBreak(const Word aRow);
	virtual void __fastcall InsertVPageBreak(const Word aCol);
	__fastcall virtual TSheet(const Uxlsworkbookglobals::TWorkbookGlobals* aWorkbookGlobals);
	__property bool Selected = {read=GetSelected, write=SetSelected, nodefault};
	__property bool ShowGridLines = {read=GetShowGridLines, write=SetShowGridLines, nodefault};
	__property bool ShowGridHeaders = {read=GetShowGridHeaders, write=SetShowGridHeaders, nodefault};
	__property bool PrintGridLines = {read=GetPrintGridLines, write=SetPrintGridLines, nodefault};
	__property WideString PageHeader = {read=GetPageHeader, write=SetPageHeader};
	__property WideString PageFooter = {read=GetPageFooter, write=SetPageFooter};
	__property Uflxmessages::TXlsMargins Margins = {read=GetMargins, write=SetMargins};
	__property int SheetZoom = {read=GetSheetZoom, write=SetSheetZoom, nodefault};
	__property WideString CodeName = {read=GetCodeName, write=SetCodeName};
	virtual __int64 __fastcall TotalSize(void);
	virtual __int64 __fastcall TotalRangeSize(const int SheetIndex, const Uflxmessages::TXlsCellRange &
		CellRange);
__published:
	#pragma option push -w-inl
	/* TBaseSection.Destroy */ inline __fastcall virtual ~TSheet(void) { }
	#pragma option pop
	
};


typedef TMetaClass*ClassOfTSheet;

class DELPHICLASS TFlxChart;
class PASCALIMPLEMENTATION TFlxChart : public TSheet 
{
	typedef TSheet inherited;
	
private:
	Uxlschart::TChartRecordList* FChartRecords;
	
protected:
	virtual void __fastcall SetPageHeaderFooter(const Uxlsbaserecords::TPageHeaderFooterRecord* P, const 
		WideString s);
	virtual void __fastcall AddZoomRecord(void);
	virtual void __fastcall FixCachePointers(void);
	
public:
	__fastcall virtual TFlxChart(const Uxlsworkbookglobals::TWorkbookGlobals* aWorkbookGlobals);
	__fastcall virtual ~TFlxChart(void);
	virtual TSheet* __fastcall DoCopyTo(void);
	virtual __int64 __fastcall TotalSize(void);
	virtual __int64 __fastcall TotalRangeSize(const int SheetIndex, const Uflxmessages::TXlsCellRange &
		CellRange);
	virtual void __fastcall LoadFromStream(const Classes::TStream* DataStream, const Uxlsotherrecords::TBOFRecord* 
		First, const Uxlssst::TSST* SST);
	virtual void __fastcall SaveToStream(const Classes::TStream* DataStream);
	virtual void __fastcall SaveRangeToStream(const Classes::TStream* DataStream, const int SheetIndex, 
		const Uflxmessages::TXlsCellRange &CellRange);
	virtual void __fastcall Clear(void);
	void __fastcall ArrangeCopyRowsAndCols(const int RowOffset, const int ColOffset);
	virtual void __fastcall ArrangeCopySheet(const Xlsmessages::TSheetInfo &SheetInfo);
	virtual void __fastcall ArrangeInsertRowsAndCols(const int InsRowPos, const int InsRowCount, const 
		int InsColPos, const int InsColCount, const Xlsmessages::TSheetInfo &SheetInfo);
	virtual void __fastcall InsertAndCopyRowsAndCols(const int FirstRow, const int LastRow, const int DestRow
		, const int aRowCount, const int FirstCol, const int LastCol, const int DestCol, const int aColCount
		, const Xlsmessages::TSheetInfo &SheetInfo, const bool OnlyFormulas);
	virtual void __fastcall DeleteRowsAndCols(const Word aRow, const Word aRowCount, const Word aCol, const 
		Word aColCount, const Xlsmessages::TSheetInfo &SheetInfo);
};


class DELPHICLASS TSheetRecordList;
class PASCALIMPLEMENTATION TSheetRecordList : public Uxlsbaserecordlists::TBaseRecordList 
{
	typedef Uxlsbaserecordlists::TBaseRecordList inherited;
	
public:
	#pragma option push -w-inl
	/* TObjectList.Create */ inline __fastcall TSheetRecordList(void)/* overload */ : Uxlsbaserecordlists::TBaseRecordList(
		) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TList.Destroy */ inline __fastcall virtual ~TSheetRecordList(void) { }
	#pragma option pop
	
};


class DELPHICLASS TChartList;
class PASCALIMPLEMENTATION TChartList : public Uxlsbaselist::TBaseList 
{
	typedef Uxlsbaselist::TBaseList inherited;
	
private:
	TFlxChart* __fastcall GetItems(int index);
	void __fastcall SetItems(int index, const TFlxChart* Value);
	
public:
	__property TFlxChart* Items[int index] = {read=GetItems, write=SetItems/*, default*/};
	HIDESBASE int __fastcall Add(TFlxChart* aRecord);
	HIDESBASE void __fastcall Insert(int Index, TFlxChart* aRecord);
	void __fastcall SaveToStream(const Classes::TStream* DataStream);
	void __fastcall ArrangeInsertRowsAndCols(const int InsRowPos, const int InsRowCount, const int InsColPos
		, const int InsColCount, const Xlsmessages::TSheetInfo &SheetInfo);
public:
	#pragma option push -w-inl
	/* TObjectList.Create */ inline __fastcall TChartList(void)/* overload */ : Uxlsbaselist::TBaseList(
		) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TList.Destroy */ inline __fastcall virtual ~TChartList(void) { }
	#pragma option pop
	
};


class DELPHICLASS TFlxUnsupportedSheet;
class PASCALIMPLEMENTATION TFlxUnsupportedSheet : public TSheet 
{
	typedef TSheet inherited;
	
private:
	TSheetRecordList* FSheetRecords;
	
protected:
	virtual void __fastcall SetPageHeaderFooter(const Uxlsbaserecords::TPageHeaderFooterRecord* P, const 
		WideString s);
	virtual void __fastcall AddZoomRecord(void);
	virtual void __fastcall FixCachePointers(void);
	
public:
	__fastcall virtual TFlxUnsupportedSheet(const Uxlsworkbookglobals::TWorkbookGlobals* aWorkbookGlobals
		);
	__fastcall virtual ~TFlxUnsupportedSheet(void);
	virtual TSheet* __fastcall DoCopyTo(void);
	virtual __int64 __fastcall TotalSize(void);
	virtual __int64 __fastcall TotalRangeSize(const int SheetIndex, const Uflxmessages::TXlsCellRange &
		CellRange);
	virtual void __fastcall LoadFromStream(const Classes::TStream* DataStream, const Uxlsotherrecords::TBOFRecord* 
		First, const Uxlssst::TSST* SST);
	virtual void __fastcall SaveToStream(const Classes::TStream* DataStream);
	virtual void __fastcall SaveRangeToStream(const Classes::TStream* DataStream, const int SheetIndex, 
		const Uflxmessages::TXlsCellRange &CellRange);
	virtual void __fastcall Clear(void);
	virtual void __fastcall ArrangeCopySheet(const Xlsmessages::TSheetInfo &SheetInfo);
	virtual void __fastcall ArrangeInsertRowsAndCols(const int InsRowPos, const int InsRowCount, const 
		int InsColPos, const int InsColCount, const Xlsmessages::TSheetInfo &SheetInfo);
	virtual void __fastcall InsertAndCopyRowsAndCols(const int FirstRow, const int LastRow, const int DestRow
		, const int aRowCount, const int FirstCol, const int LastCol, const int DestCol, const int aColCount
		, const Xlsmessages::TSheetInfo &SheetInfo, const bool OnlyFormulas);
	virtual void __fastcall DeleteRowsAndCols(const Word aRow, const Word aRowCount, const Word aCol, const 
		Word aColCount, const Xlsmessages::TSheetInfo &SheetInfo);
};


class DELPHICLASS TWorkSheet;
class PASCALIMPLEMENTATION TWorkSheet : public TSheet 
{
	typedef TSheet inherited;
	
private:
	Uxlsbaserecordlists::TBaseRecordList* FMiscRecords1;
	Uxlsbaserecordlists::TBaseRecordList* FMiscRecords2;
	Uxlspagebreaks::THPageBreakList* FHPageBreaks;
	Uxlspagebreaks::TVPageBreakList* FVPageBreaks;
	Uxlsescher::TDrawing* FDrawing;
	Uxlsrowcolentries::TCells* FCells;
	Uxlsrowcolentries::TRangeList* FRanges;
	Uxlsnotes::TNoteList* FNotes;
	Uxlscolinfo::TColInfoList* FColumns;
	Uxlshyperlink::THLinkList* FHLinks;
	int FDefRowHeight;
	int FDefColWidth;
	int __fastcall GetDrawingRow(int index);
	WideString __fastcall GetDrawingName(int index);
	Word __fastcall GetPrintNumberOfHorizontalPages(void);
	Word __fastcall GetPrintNumberOfVerticalPages(void);
	int __fastcall GetPrintScale(void);
	bool __fastcall GetPrintToFit(void);
	void __fastcall SetPrintNumberOfHorizontalPages(const Word Value);
	void __fastcall SetPrintNumberOfVerticalPages(const Word Value);
	void __fastcall SetPrintScale(const int Value);
	void __fastcall SetPrintToFit(const bool Value);
	Word __fastcall GetPrintOptions(void);
	void __fastcall SetPrintOptions(const Word Value);
	int __fastcall GetColOutlineLevel(int col);
	int __fastcall GetRowOutlineLevel(int row);
	void __fastcall SetColOulineLevel(int col, const int Value);
	void __fastcall SetRowOulineLevel(int row, const int Value);
	void __fastcall EnsureGuts(void);
	
protected:
	virtual void __fastcall AddZoomRecord(void);
	virtual void __fastcall SetPageHeaderFooter(const Uxlsbaserecords::TPageHeaderFooterRecord* P, const 
		WideString s);
	virtual void __fastcall FixCachePointers(void);
	
public:
	__fastcall virtual TWorkSheet(const Uxlsworkbookglobals::TWorkbookGlobals* aWorkbookGlobals);
	__fastcall TWorkSheet(const Uxlsworkbookglobals::TWorkbookGlobals* aWorkbookGlobals, const Uxlssst::TSST* 
		SST);
	__fastcall virtual ~TWorkSheet(void);
	virtual TSheet* __fastcall DoCopyTo(void);
	virtual __int64 __fastcall TotalSize(void);
	virtual __int64 __fastcall TotalRangeSize(const int SheetIndex, const Uflxmessages::TXlsCellRange &
		CellRange);
	virtual void __fastcall LoadFromStream(const Classes::TStream* DataStream, const Uxlsotherrecords::TBOFRecord* 
		First, const Uxlssst::TSST* SST);
	virtual void __fastcall SaveToStream(const Classes::TStream* DataStream);
	virtual void __fastcall SaveRangeToStream(const Classes::TStream* DataStream, const int SheetIndex, 
		const Uflxmessages::TXlsCellRange &CellRange);
	virtual void __fastcall Clear(void);
	virtual void __fastcall InsertAndCopyRowsAndCols(const int FirstRow, const int LastRow, const int DestRow
		, const int aRowCount, const int FirstCol, const int LastCol, const int DestCol, const int aColCount
		, const Xlsmessages::TSheetInfo &SheetInfo, const bool OnlyFormulas);
	virtual void __fastcall DeleteRowsAndCols(const Word aRow, const Word aRowCount, const Word aCol, const 
		Word aColCount, const Xlsmessages::TSheetInfo &SheetInfo);
	virtual void __fastcall ArrangeInsertRowsAndCols(const int InsRowPos, const int InsRowCount, const 
		int InsColPos, const int InsColCount, const Xlsmessages::TSheetInfo &SheetInfo);
	virtual void __fastcall ArrangeCopySheet(const Xlsmessages::TSheetInfo &SheetInfo);
	void __fastcall ClearValues(void);
	__property Uxlsnotes::TNoteList* Notes = {read=FNotes};
	__property Uxlsrowcolentries::TCells* Cells = {read=FCells};
	__property Uxlshyperlink::THLinkList* HLinks = {read=FHLinks};
	int __fastcall DrawingCount(void);
	void __fastcall AssignDrawing(const int Index, const AnsiString Data, const Uflxmessages::TXlsImgTypes 
		DataType);
	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};
	Uflxmessages::TClientAnchor __fastcall GetAnchor(const int Index);
	void __fastcall SetAnchor(const int Index, const Uflxmessages::TClientAnchor &aAnchor);
	void __fastcall DeleteImage(const int Index);
	void __fastcall ClearImage(const int Index);
	void __fastcall AddImage(const AnsiString Data, const Uflxmessages::TXlsImgTypes DataType, const Uflxmessages::TImageProperties 
		&Properties, const Uflxmessages::TFlxAnchorType Anchor);
	void __fastcall AddNewComment(const int Row, const int Col, const WideString Txt, const Uflxmessages::TImageProperties 
		&Properties);
	virtual void __fastcall DeleteHPageBreak(const Word aRow);
	virtual void __fastcall DeleteVPageBreak(const Word aCol);
	virtual void __fastcall InsertHPageBreak(const Word aRow);
	virtual void __fastcall InsertVPageBreak(const Word aCol);
	int __fastcall GetRowHeight(const int aRow);
	int __fastcall GetColWidth(const Word aCol);
	void __fastcall SetRowHeight(const int aRow, const int Value);
	void __fastcall SetColWidth(const Word aCol, const int Value);
	bool __fastcall GetRowHidden(const int aRow);
	bool __fastcall GetColHidden(const Word aCol);
	void __fastcall SetRowHidden(const int aRow, const bool Value);
	void __fastcall SetColHidden(const Word aCol, const bool Value);
	__property int DefRowHeight = {read=FDefRowHeight, nodefault};
	__property int DefColWidth = {read=FDefColWidth, nodefault};
	int __fastcall GetRowFormat(const int aRow);
	int __fastcall GetColFormat(const int aCol);
	void __fastcall SetRowFormat(const int aRow, const int Value);
	void __fastcall SetColFormat(const int aCol, const int Value);
	Uflxmessages::TXlsCellRange __fastcall CellMergedBounds(const int aRow, const int aCol);
	Uflxmessages::TXlsCellRange __fastcall CellMergedList(const int index);
	int __fastcall CellMergedListCount(void);
	void __fastcall MergeCells(int aRow1, int aCol1, int aRow2, int aCol2);
	void __fastcall UnMergeCells(int aRow1, int aCol1, int aRow2, int aCol2);
	bool __fastcall HasHPageBreak(const int Row);
	bool __fastcall HasVPageBreak(const int Col);
	__property bool PrintToFit = {read=GetPrintToFit, write=SetPrintToFit, nodefault};
	__property int PrintScale = {read=GetPrintScale, write=SetPrintScale, nodefault};
	__property Word PrintNumberOfHorizontalPages = {read=GetPrintNumberOfHorizontalPages, write=SetPrintNumberOfHorizontalPages
		, nodefault};
	__property Word PrintNumberOfVerticalPages = {read=GetPrintNumberOfVerticalPages, write=SetPrintNumberOfVerticalPages
		, nodefault};
	__property Word PrintOptions = {read=GetPrintOptions, write=SetPrintOptions, nodefault};
	__fastcall TWorkSheet(const Uxlssst::TSST* SST);
	__property int RowOutlineLevel[int row] = {read=GetRowOutlineLevel, write=SetRowOulineLevel};
	__property int ColOutlineLevel[int col] = {read=GetColOutlineLevel, write=SetColOulineLevel};
};


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

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

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