// CodeGear C++Builder
// Copyright (c) 1995, 2013 by Embarcadero Technologies, Inc.
// All rights reserved

// (DO NOT EDIT: machine generated header) 'FMX.UXlsWorkbookGlobals.pas' rev: 26.00 (Windows)

#ifndef Fmx_UxlsworkbookglobalsHPP
#define Fmx_UxlsworkbookglobalsHPP

#pragma delphiheader begin
#pragma option push
#pragma option -w-      // All warnings off
#pragma option -Vx      // Zero-length empty class member 
#pragma pack(push,8)
#include <System.hpp>	// Pascal unit
#include <SysInit.hpp>	// Pascal unit
#include <System.Classes.hpp>	// Pascal unit
#include <System.SysUtils.hpp>	// Pascal unit
#include <FMX.UXlsBaseRecords.hpp>	// Pascal unit
#include <FMX.UXlsBaseRecordLists.hpp>	// Pascal unit
#include <FMX.UXlsOtherRecords.hpp>	// Pascal unit
#include <FMX.UXlsChart.hpp>	// Pascal unit
#include <FMX.UXlsSST.hpp>	// Pascal unit
#include <FMX.XlsMessages.hpp>	// Pascal unit
#include <FMX.UXlsSections.hpp>	// Pascal unit
#include <FMX.UXlsReferences.hpp>	// Pascal unit
#include <FMX.USheetNameList.hpp>	// Pascal unit
#include <FMX.UXlsEscher.hpp>	// Pascal unit
#include <FMX.UXlsFormula.hpp>	// Pascal unit
#include <FMX.UEscherRecords.hpp>	// Pascal unit
#include <FMX.UXlsPalette.hpp>	// Pascal unit
#include <FMX.UXlsXF.hpp>	// Pascal unit
#include <FMX.UFlxMessages.hpp>	// Pascal unit
#include <FMX.UOle2Impl.hpp>	// Pascal unit

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

namespace Fmx
{
namespace Uxlsworkbookglobals
{
//-- type declarations -------------------------------------------------------
class DELPHICLASS TBoundSheetList;
#pragma pack(push,4)
class PASCALIMPLEMENTATION TBoundSheetList : public System::TObject
{
	typedef System::TObject inherited;
	
private:
	Fmx::Usheetnamelist::TSheetNameList* FSheetNames;
	Fmx::Uxlsbaserecordlists::TBoundSheetRecordList* FBoundSheets;
	
public:
	__property Fmx::Uxlsbaserecordlists::TBoundSheetRecordList* BoundSheets = {read=FBoundSheets};
	__fastcall TBoundSheetList(void);
	__fastcall virtual ~TBoundSheetList(void);
	void __fastcall Clear(void);
	void __fastcall Add(Fmx::Uxlsotherrecords::TBoundSheetRecord* const aRecord);
	void __fastcall SaveToStream(Fmx::Uole2impl::TOle2File* const DataStream);
	void __fastcall SaveRangeToStream(Fmx::Uole2impl::TOle2File* const DataStream, const int SheetIndex);
	__int64 __fastcall TotalSize(void);
	__int64 __fastcall TotalRangeSize(const int SheetIndex);
	void __fastcall InsertSheet(const int BeforeSheet, const System::Word OptionFlags, const System::UnicodeString SheetName);
	void __fastcall DeleteSheet(const int SheetIndex);
};

#pragma pack(pop)

class DELPHICLASS TWorkbookGlobals;
#pragma pack(push,4)
class PASCALIMPLEMENTATION TWorkbookGlobals : public Fmx::Uxlssections::TBaseSection
{
	typedef Fmx::Uxlssections::TBaseSection inherited;
	
private:
	Fmx::Uxlssst::TSST* FSST;
	Fmx::Uxlsreferences::TReferences* FReferences;
	TBoundSheetList* FBoundSheets;
	Fmx::Uxlsbaserecordlists::TBaseRecordList* FMiscRecords;
	Fmx::Uxlsbaserecordlists::TNameRecordList* FNames;
	Fmx::Uxlsescher::TDrawingGroup* FDrawingGroup;
	Fmx::Uxlsbaserecords::TWindow1Record* FWindow1;
	Fmx::Uxlsbaserecords::T1904Record* F1904;
	Fmx::Uxlsbaserecords::TBookBoolRecord* FBookBool;
	Fmx::Uxlsbaserecords::TPrecisionRecord* FPrecision;
	Fmx::Uxlsxf::TXFRecordList* FXF;
	Fmx::Uxlsxf::TFontRecordList* FFonts;
	Fmx::Uxlsxf::TFormatRecordList* FFormats;
	Fmx::Uxlspalette::TPaletteRecord* FPaletteCache;
	int FPaletteIndex;
	bool FHasMacro;
	bool FIsXltTemplate;
	System::UnicodeString FCodeName;
	int __fastcall GetSheetCount(void);
	System::UnicodeString __fastcall GetSheetName(const int index);
	void __fastcall SetSheetName(const int index, const System::UnicodeString Value);
	Fmx::Uflxmessages::TXlsSheetVisible __fastcall GetSheetVisible(const int index);
	void __fastcall SetSheetVisible(const int index, const Fmx::Uflxmessages::TXlsSheetVisible Value);
	System::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);
	bool __fastcall GetIs1904(void);
	bool __fastcall GetPrecisionAsDisplayed(void);
	bool __fastcall GetSaveExternalLinkValues(void);
	void __fastcall SetIs1904(const bool Value);
	void __fastcall SetPrecisionAsDisplayed(const bool Value);
	void __fastcall SetSaveExternalLinkValues(const bool Value);
	
public:
	__property Fmx::Uxlssst::TSST* SST = {read=FSST};
	__property System::UnicodeString SheetName[const int index] = {read=GetSheetName, write=SetSheetName};
	void __fastcall SetFirstSheetVisible(const int index);
	__property Fmx::Uflxmessages::TXlsSheetVisible SheetVisible[const int index] = {read=GetSheetVisible, write=SetSheetVisible};
	__property int SheetCount = {read=GetSheetCount, nodefault};
	__property System::Word SheetOptionFlags[const int index] = {read=GetSheetOptionFlags};
	void __fastcall SheetSetOffset(const int index, const unsigned Offset);
	__property int ActiveSheet = {read=GetActivesheet, write=SetActiveSheet, nodefault};
	__property Fmx::Uxlsescher::TDrawingGroup* DrawingGroup = {read=FDrawingGroup};
	__property Fmx::Uxlsreferences::TReferences* References = {read=FReferences};
	__property Fmx::Uxlsbaserecordlists::TNameRecordList* Names = {read=FNames};
	__property bool HasMacro = {read=FHasMacro, nodefault};
	__property System::UnicodeString CodeName = {read=FCodeName};
	__property bool IsXltTemplate = {read=FIsXltTemplate, write=FIsXltTemplate, nodefault};
	__fastcall TWorkbookGlobals(void);
	__fastcall virtual ~TWorkbookGlobals(void);
	virtual __int64 __fastcall TotalSize(void);
	virtual __int64 __fastcall TotalRangeSize(const int SheetIndex, const Fmx::Uflxmessages::TXlsCellRange &CellRange);
	virtual void __fastcall Clear(void);
	virtual void __fastcall LoadFromStream(Fmx::Uole2impl::TOle2File* const DataStream, Fmx::Xlsmessages::TRecordHeader &RecordHeader, Fmx::Uxlsotherrecords::TBOFRecord* const First, Fmx::Uxlssst::TSST* const SST);
	virtual void __fastcall SaveToStream(Fmx::Uole2impl::TOle2File* const DataStream);
	virtual void __fastcall SaveRangeToStream(Fmx::Uole2impl::TOle2File* const DataStream, const int SheetIndex, const Fmx::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 Fmx::Xlsmessages::TSheetInfo &SheetInfo);
	void __fastcall DeleteRowsAndCols(const System::Word aRow, const System::Word aRowCount, const System::Word aCol, const System::Word aColCount, const Fmx::Xlsmessages::TSheetInfo &SheetInfo);
	void __fastcall DeleteSheets(const int SheetIndex, const int SheetCount);
	void __fastcall InsertSheets(const int CopyFrom, int BeforeSheet, const System::Word OptionFlags, const System::UnicodeString Name, const int SheetCount);
	__property unsigned ColorPalette[int Index] = {read=GetColorPalette, write=SetColorPalette};
	__property Fmx::Uxlsxf::TXFRecordList* XF = {read=FXF};
	__property Fmx::Uxlsxf::TFontRecordList* Fonts = {read=FFonts};
	__property Fmx::Uxlsxf::TFormatRecordList* Formats = {read=FFormats};
	__property bool Is1904 = {read=GetIs1904, write=SetIs1904, nodefault};
	__property bool PrecisionAsDisplayed = {read=GetPrecisionAsDisplayed, write=SetPrecisionAsDisplayed, nodefault};
	__property bool SaveExternalLinkValues = {read=GetSaveExternalLinkValues, write=SetSaveExternalLinkValues, nodefault};
	void __fastcall DeleteCountry(void);
	__classmethod bool __fastcall IsValidRangeName(const System::UnicodeString Name, int &OptionFlags);
	void __fastcall CheckInternalNames(const int OptionFlags);
	void __fastcall AddName(Fmx::Uflxmessages::TXlsNamedRange &Range, const void * CellList);
	Fmx::Uxlsformula::TNameRecord* __fastcall GetName(const int sheet, const System::UnicodeString aName);
};

#pragma pack(pop)

//-- var, const, procedure ---------------------------------------------------
}	/* namespace Uxlsworkbookglobals */
}	/* namespace Fmx */
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_FMX_UXLSWORKBOOKGLOBALS)
using namespace Fmx::Uxlsworkbookglobals;
#endif
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_FMX)
using namespace Fmx;
#endif
#pragma pack(pop)
#pragma option pop

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