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

// (DO NOT EDIT: machine generated header) 'XLSExportHTML5.pas' rev: 28.00 (Windows)

#ifndef Xlsexporthtml5HPP
#define Xlsexporthtml5HPP

#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 <Xc12Utils5.hpp>	// Pascal unit
#include <Xc12DataStyleSheet5.hpp>	// Pascal unit
#include <Xc12DataWorksheet5.hpp>	// Pascal unit
#include <XLSUtils5.hpp>	// Pascal unit
#include <XLSTools5.hpp>	// Pascal unit
#include <XLSExport5.hpp>	// Pascal unit
#include <XLSMMU5.hpp>	// Pascal unit
#include <XLSCellMMU5.hpp>	// Pascal unit
#include <XLSSheetData5.hpp>	// Pascal unit
#include <XLSCellAreas5.hpp>	// Pascal unit
#include <XLSMergedCells5.hpp>	// Pascal unit
#include <XLSHyperlinks5.hpp>	// Pascal unit
#include <XLSDrawing5.hpp>	// Pascal unit
#include <XLSComment5.hpp>	// Pascal unit

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

namespace Xlsexporthtml5
{
//-- type declarations -------------------------------------------------------
enum DECLSPEC_DENUM TXLSExportOptionHTML : unsigned char { xeohComments, xeohImages, xeohWriteImages, xeohHyperlinks };

typedef System::Set<TXLSExportOptionHTML, TXLSExportOptionHTML::xeohComments, TXLSExportOptionHTML::xeohHyperlinks> TXLSExportOptionsHTML;

class DELPHICLASS TTABLEProperties;
#pragma pack(push,4)
class PASCALIMPLEMENTATION TTABLEProperties : public System::Classes::TPersistent
{
	typedef System::Classes::TPersistent inherited;
	
private:
	int FBordeWidth;
	int FCellPadding;
	int FCellSpacing;
	
__published:
	__property int BordeWidth = {read=FBordeWidth, write=FBordeWidth, nodefault};
	__property int CellPadding = {read=FCellPadding, write=FCellPadding, nodefault};
	__property int CellSpacing = {read=FCellSpacing, write=FCellSpacing, nodefault};
public:
	/* TPersistent.Destroy */ inline __fastcall virtual ~TTABLEProperties(void) { }
	
public:
	/* TObject.Create */ inline __fastcall TTABLEProperties(void) : System::Classes::TPersistent() { }
	
};

#pragma pack(pop)

class DELPHICLASS TXLSExportHTML5;
class PASCALIMPLEMENTATION TXLSExportHTML5 : public Xlsexport5::TXLSExport5
{
	typedef Xlsexport5::TXLSExport5 inherited;
	
private:
	typedef System::DynamicArray<Xc12utils5::TXLSCellRef> _TXLSExportHTML5__1;
	
	
private:
	bool __fastcall GetWriteOnlyTables(void);
	void __fastcall SetWriteOnlyTables(const bool Value);
	System::UnicodeString __fastcall GetTitle(void);
	
protected:
	System::Classes::TStream* FStream;
	_TXLSExportHTML5__1 FLinkTargets;
	int FTargetCount;
	int FImageCount;
	int FCommentCount;
	System::UnicodeString FTitle;
	TTABLEProperties* FTABLE;
	bool FSimpleExport;
	TXLSExportOptionsHTML FHTMLOptions;
	void __fastcall WString(System::UnicodeString S);
	void __fastcall WStringCR(System::UnicodeString S);
	void __fastcall AddLinkTarget(const int ACol, const int ARow);
	bool __fastcall FindLinkTarget(const int ACol, const int ARow);
	void __fastcall WriteCSS(void);
	System::UnicodeString __fastcall GetCellHTML(Xlssheetdata5::TXLSWorksheet* Sheet, const Xlscellmmu5::TXLSCellItem &ACell);
	System::UnicodeString __fastcall GetImageHTML(Xlssheetdata5::TXLSWorksheet* Sheet, Xlsdrawing5::TXLSDrawingImage* AImage, const System::UnicodeString AImageName);
	virtual bool __fastcall ExportImages(void);
	virtual void __fastcall OpenFile(void);
	virtual void __fastcall WriteFilePrefix(void);
	virtual void __fastcall WritePagePrefix(void);
	virtual void __fastcall WriteRowPrefix(const int ARow);
	virtual void __fastcall WriteCell(const int Col, const int Row, const bool IsFirstCol, const bool IsFirstRow);
	void __fastcall WriteCellSimple(const int Col, const int Row, const bool IsFirstCol, const bool IsFirstRow);
	virtual void __fastcall WriteRowSuffix(void);
	virtual void __fastcall WritePageSuffix(void);
	virtual void __fastcall WriteFileSuffix(void);
	virtual void __fastcall CloseFile(void);
	
public:
	__fastcall virtual TXLSExportHTML5(System::Classes::TComponent* AOwner);
	__fastcall virtual ~TXLSExportHTML5(void);
	virtual void __fastcall SaveToStream(System::Classes::TStream* Stream);
	
__published:
	__property System::UnicodeString Title = {read=GetTitle, write=FTitle};
	__property bool WriteOnlyTables = {read=GetWriteOnlyTables, write=SetWriteOnlyTables, nodefault};
	__property bool SimpleExport = {read=FSimpleExport, write=FSimpleExport, nodefault};
	__property TXLSExportOptionsHTML HTMLOPtions = {read=FHTMLOptions, write=FHTMLOptions, nodefault};
	__property TTABLEProperties* TABLE = {read=FTABLE, write=FTABLE};
};


//-- var, const, procedure ---------------------------------------------------
}	/* namespace Xlsexporthtml5 */
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_XLSEXPORTHTML5)
using namespace Xlsexporthtml5;
#endif
#pragma pack(pop)
#pragma option pop

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