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

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

#ifndef UXlsWorkbookGlobalsHPP
#define UXlsWorkbookGlobalsHPP

#pragma delphiheader begin
#pragma option push -w-
#pragma option push -Vx
#include <UFlxMessages.hpp>	// Pascal unit
#include <UXlsXF.hpp>	// Pascal unit
#include <UXlsPalette.hpp>	// Pascal unit
#include <UEscherRecords.hpp>	// Pascal unit
#include <UXlsFormula.hpp>	// Pascal unit
#include <UXlsEscher.hpp>	// Pascal unit
#include <USheetNameList.hpp>	// Pascal unit
#include <UXlsReferences.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 Uxlsworkbookglobals
{
//-- type declarations -------------------------------------------------------
class DELPHICLASS TBoundSheetList;
class PASCALIMPLEMENTATION TBoundSheetList : public System::TObject 
{
	typedef System::TObject inherited;
	
private:
	Usheetnamelist::TSheetNameList* FSheetNames;
	Uxlsbaserecordlists::TBoundSheetRecordList* FBoundSheets;
	
public:
	__property Uxlsbaserecordlists::TBoundSheetRecordList* BoundSheets = {read=FBoundSheets};
	__fastcall TBoundSheetList(void);
	__fastcall virtual ~TBoundSheetList(void);
	void __fastcall Clear(void);
	void __fastcall Add(const Uxlsotherrecords::TBoundSheetRecord* aRecord);
	void __fastcall SaveToStream(const Classes::TStream* DataStream);
	void __fastcall SaveRangeToStream(const Classes::TStream* DataStream, const int SheetIndex);
	__int64 __fastcall TotalSize(void);
	__int64 __fastcall TotalRangeSize(const int SheetIndex);
	void __fastcall InsertSheet(const int BeforeSheet, const Word OptionFlags, const WideString SheetName
		);
	void __fastcall DeleteSheet(const int SheetIndex);
};


class DELPHICLASS TWorkbookGlobals;
class PASCALIMPLEMENTATION TWorkbookGlobals : public Uxlssections::TBaseSection 
{
	typedef Uxlssections::TBaseSection inherited;
	
private:
	Uxlssst::TSST* FSST;
	Uxlsreferences::TReferences* FReferences;
	TBoundSheetList* FBoundSheets;
	Uxlsbaserecordlists::TBaseRecordList* FMiscRecords;
	Uxlsbaserecordlists::TNameRecordList* FNames;
	Uxlsescher::TDrawingGroup* FDrawingGroup;
	Uxlsbaserecords::TWindow1Record* FWindow1;
	Uxlsxf::TXFRecordList* FXF;
	Uxlsxf::TFontRecordList* FFonts;
	Uxlsxf::TFormatRecordList* FFormats;
	Uxlspalette::TPaletteRecord* FPaletteCache;
	int FPaletteIndex;
	bool FHasMacro;
	WideString FCodeName;
	int __fastcall GetSheetCount(void);
	WideString __fastcall GetSheetName(const int index);
	void __fastcall SetSheetName(const int index, const WideString Value);
	Uflxmessages::TXlsSheetVisible __fastcall GetSheetVisible(const int index);
	void __fastcall SetSheetVisible(const int index, const Uflxmessages::TXlsSheetVisible Value);
	Word __fastcall GetSheetOptionFlags(const int index);
	int __fastcall GetActivesheet(void);
	void __fastcall SetActiveSheet(const int Value);
	unsigned __fastcall GetColorPalette(int Index);
	void __fastcall SetColorPalette(int Index, const unsigned Value);
	
public:
	__property Uxlssst::TSST* SST = {read=FSST};
	__property WideString SheetName[int index] = {read=GetSheetName, write=SetSheetName};
	void __fastcall SetFirstSheetVisible(const int index);
	__property Uflxmessages::TXlsSheetVisible SheetVisible[int index] = {read=GetSheetVisible, write=SetSheetVisible
		};
	__property int SheetCount = {read=GetSheetCount, nodefault};
	__property Word SheetOptionFlags[int index] = {read=GetSheetOptionFlags};
	void __fastcall SheetSetOffset(const int index, const unsigned Offset);
	__property int ActiveSheet = {read=GetActivesheet, write=SetActiveSheet, nodefault};
	__property Uxlsescher::TDrawingGroup* DrawingGroup = {read=FDrawingGroup};
	__property Uxlsreferences::TReferences* References = {read=FReferences};
	__property Uxlsbaserecordlists::TNameRecordList* Names = {read=FNames};
	__property bool HasMacro = {read=FHasMacro, nodefault};
	__property WideString CodeName = {read=FCodeName};
	__fastcall TWorkbookGlobals(void);
	__fastcall virtual ~TWorkbookGlobals(void);
	virtual __int64 __fastcall TotalSize(void);
	virtual __int64 __fastcall TotalRangeSize(const int SheetIndex, const Uflxmessages::TXlsCellRange &
		CellRange);
	virtual void __fastcall Clear(void);
	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);
	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);
	void __fastcall DeleteRowsAndCols(const Word aRow, const Word aRowCount, const Word aCol, const Word 
		aColCount, const Xlsmessages::TSheetInfo &SheetInfo);
	void __fastcall DeleteSheets(const int SheetIndex, const int SheetCount);
	void __fastcall InsertSheets(const int CopyFrom, int BeforeSheet, const Word OptionFlags, const WideString 
		Name, const Byte SheetCount);
	__property unsigned ColorPalette[int Index] = {read=GetColorPalette, write=SetColorPalette};
	__property Uxlsxf::TXFRecordList* XF = {read=FXF};
	__property Uxlsxf::TFontRecordList* Fonts = {read=FFonts};
	__property Uxlsxf::TFormatRecordList* Formats = {read=FFormats};
};


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

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

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