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

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

#ifndef Fmx_TmsgridpdfioHPP
#define Fmx_TmsgridpdfioHPP

#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 <Winapi.Windows.hpp>	// Pascal unit
#include <System.Classes.hpp>	// Pascal unit
#include <System.SysUtils.hpp>	// Pascal unit
#include <System.Types.hpp>	// Pascal unit
#include <FMX.Types.hpp>	// Pascal unit
#include <FMX.TMSGrid.hpp>	// Pascal unit
#include <FMX.TMSGridOptions.hpp>	// Pascal unit
#include <FMX.TMSBaseControl.hpp>	// Pascal unit
#include <FMX.TMSPDFRenderLib.hpp>	// Pascal unit
#include <FMX.TMSGridData.hpp>	// Pascal unit
#include <FMX.TMSGridCell.hpp>	// Pascal unit
#include <System.Math.hpp>	// Pascal unit
#include <System.UITypes.hpp>	// Pascal unit
#include <FMX.TMSXUtil.hpp>	// Pascal unit
#include <FMX.TMSBitmap.hpp>	// Pascal unit
#include <FMX.Controls.hpp>	// Pascal unit
#include <FMX.Dialogs.hpp>	// Pascal unit
#include <FMX.Graphics.hpp>	// Pascal unit
#include <FMX.TMSCustomGrid.hpp>	// Pascal unit

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

namespace Fmx
{
namespace Tmsgridpdfio
{
//-- type declarations -------------------------------------------------------
typedef void *TTMSFMXGridCellExport;

class DELPHICLASS TProGrid;
class PASCALIMPLEMENTATION TProGrid : public Fmx::Tmsgrid::TTMSFMXGrid
{
	typedef Fmx::Tmsgrid::TTMSFMXGrid inherited;
	
public:
	/* TTMSFMXGrid.Create */ inline __fastcall virtual TProGrid(System::Classes::TComponent* AOwner) : Fmx::Tmsgrid::TTMSFMXGrid(AOwner) { }
	/* TTMSFMXGrid.Destroy */ inline __fastcall virtual ~TProGrid(void) { }
	
};


class DELPHICLASS TTMSFMXGridPDFIOGlyphs;
#pragma pack(push,4)
class PASCALIMPLEMENTATION TTMSFMXGridPDFIOGlyphs : public System::Classes::TPersistent
{
	typedef System::Classes::TPersistent inherited;
	
private:
	Fmx::Graphics::TBitmap* FRadioButtonChecked;
	Fmx::Graphics::TBitmap* FRadioButtonUnChecked;
	Fmx::Graphics::TBitmap* FCheckBoxChecked;
	Fmx::Graphics::TBitmap* FCheckBoxUnChecked;
	
public:
	__fastcall TTMSFMXGridPDFIOGlyphs(System::Classes::TPersistent* AOwner);
	virtual void __fastcall Assign(System::Classes::TPersistent* Source);
	__fastcall virtual ~TTMSFMXGridPDFIOGlyphs(void);
	
__published:
	__property Fmx::Graphics::TBitmap* CheckBoxChecked = {read=FCheckBoxChecked, write=FCheckBoxChecked};
	__property Fmx::Graphics::TBitmap* CheckBoxUnChecked = {read=FCheckBoxUnChecked, write=FCheckBoxUnChecked};
	__property Fmx::Graphics::TBitmap* RadioButtonChecked = {read=FRadioButtonChecked, write=FRadioButtonChecked};
	__property Fmx::Graphics::TBitmap* RadioButtonUnChecked = {read=FRadioButtonUnChecked, write=FRadioButtonUnChecked};
};

#pragma pack(pop)

class DELPHICLASS TTMSFMXGridPDFIOInformation;
#pragma pack(push,4)
class PASCALIMPLEMENTATION TTMSFMXGridPDFIOInformation : public System::Classes::TPersistent
{
	typedef System::Classes::TPersistent inherited;
	
private:
	System::UnicodeString FModificationDate;
	System::UnicodeString FAuthor;
	System::UnicodeString FProducer;
	System::UnicodeString FCreator;
	System::UnicodeString FSubject;
	System::UnicodeString FTitle;
	System::UnicodeString FPDFVersion;
	System::UnicodeString FKeywords;
	System::UnicodeString FCreationDate;
	
public:
	virtual void __fastcall Assign(System::Classes::TPersistent* Source);
	
__published:
	__property System::UnicodeString PDFVersion = {read=FPDFVersion, write=FPDFVersion};
	__property System::UnicodeString Author = {read=FAuthor, write=FAuthor};
	__property System::UnicodeString Title = {read=FTitle, write=FTitle};
	__property System::UnicodeString Subject = {read=FSubject, write=FSubject};
	__property System::UnicodeString Keywords = {read=FKeywords, write=FKeywords};
	__property System::UnicodeString Creator = {read=FCreator, write=FCreator};
	__property System::UnicodeString Producer = {read=FProducer, write=FProducer};
	__property System::UnicodeString CreationDate = {read=FCreationDate, write=FCreationDate};
	__property System::UnicodeString ModificationDate = {read=FModificationDate, write=FModificationDate};
public:
	/* TPersistent.Destroy */ inline __fastcall virtual ~TTMSFMXGridPDFIOInformation(void) { }
	
public:
	/* TObject.Create */ inline __fastcall TTMSFMXGridPDFIOInformation(void) : System::Classes::TPersistent() { }
	
};

#pragma pack(pop)

class DELPHICLASS TTMSFMXGridPDFIOOptions;
#pragma pack(push,4)
class PASCALIMPLEMENTATION TTMSFMXGridPDFIOOptions : public System::Classes::TPersistent
{
	typedef System::Classes::TPersistent inherited;
	
private:
	TTMSFMXGridPDFIOGlyphs* FGlyphs;
	TTMSFMXGridPDFIOInformation* FInformation;
	
public:
	__fastcall TTMSFMXGridPDFIOOptions(System::Classes::TComponent* AOwner);
	virtual void __fastcall Assign(System::Classes::TPersistent* Source);
	__fastcall virtual ~TTMSFMXGridPDFIOOptions(void);
	__property TTMSFMXGridPDFIOInformation* Information = {read=FInformation, write=FInformation};
	
__published:
	__property TTMSFMXGridPDFIOGlyphs* Glyphs = {read=FGlyphs, write=FGlyphs};
};

#pragma pack(pop)

typedef System::DynamicArray<Fmx::Tmsgrid::TTMSFMXGrid*> TGridListArray;

typedef void __fastcall (__closure *TTMSFMXGridPDFIOOnPrintProgress)(System::TObject* Sender, int APageIndex, float APrintProgress);

typedef void __fastcall (__closure *TTMSFMXGridPDFIOOnPrintNewPage)(System::TObject* Sender, int APageIndex);

typedef void __fastcall (__closure *TTMSFMXGridPDFIOOnPrintEndPage)(System::TObject* Sender, int APageIndex);

typedef void __fastcall (__closure *TTMSFMXGridPDFIOOnPrintEvent)(System::TObject* Sender);

class DELPHICLASS TTMSFMXGridPDFIO;
class PASCALIMPLEMENTATION TTMSFMXGridPDFIO : public System::Classes::TComponent
{
	typedef System::Classes::TComponent inherited;
	
private:
	int FPageIndex;
	int APageIndex;
	int AProgress;
	Fmx::Tmsgrid::TTMSFMXGrid* FGrid;
	TGridListArray FGridList;
	TTMSFMXGridPDFIOOptions* FOptions;
	TTMSFMXGridPDFIOOnPrintNewPage FOnPrintNewPage;
	TTMSFMXGridPDFIOOnPrintProgress FOnPrintProgress;
	TTMSFMXGridPDFIOOnPrintEndPage FOnPrintEndPage;
	TTMSFMXGridPDFIOOnPrintEvent FOnPrintEnd;
	TTMSFMXGridPDFIOOnPrintEvent FOnPrintBegin;
	Fmx::Tmspdfrenderlib::TTMSFMXPDFRenderLib* FPDFRenderLib;
	System::UnicodeString __fastcall GetVersion(void);
	int __fastcall GetVersionNr(void);
	
protected:
	virtual void __fastcall Notification(System::Classes::TComponent* AComponent, System::Classes::TOperation Operation);
	void __fastcall DoExportPDF(Fmx::Tmsgrid::TTMSFMXGrid* AGrid, Fmx::Tmspdfrenderlib::TTMSFMXPDFRenderLib* APDFLib, const System::Types::TRectF &pageRect, const Fmx::Tmsgriddata::TCellRange &ASelection, int *APages, const int APages_Size, bool AResetPosition = false);
	void __fastcall DrawTitle(Fmx::Tmsgrid::TTMSFMXGrid* AGrid, Fmx::Tmspdfrenderlib::TTMSFMXPDFRenderLib* APDFLib, int APageIndex, const System::Types::TRectF &ARect);
	void __fastcall DrawDescription(Fmx::Tmsgrid::TTMSFMXGrid* AGrid, Fmx::Tmspdfrenderlib::TTMSFMXPDFRenderLib* APDFLib, int APageIndex, const System::Types::TRectF &ARect);
	void __fastcall DrawPageNumber(Fmx::Tmsgrid::TTMSFMXGrid* AGrid, Fmx::Tmspdfrenderlib::TTMSFMXPDFRenderLib* APDFLib, int APageIndex, const System::Types::TRectF &ARect);
	
public:
	__fastcall virtual TTMSFMXGridPDFIO(System::Classes::TComponent* AOwner);
	__fastcall virtual ~TTMSFMXGridPDFIO(void);
	void __fastcall ExportPDF(const System::UnicodeString AFileName);
	void __fastcall AppendGridToList(Fmx::Tmsgrid::TTMSFMXGrid* const AGrid);
	void __fastcall ClearGridList(void);
	
__published:
	__property Fmx::Tmsgrid::TTMSFMXGrid* Grid = {read=FGrid, write=FGrid};
	__property TTMSFMXGridPDFIOOptions* Options = {read=FOptions, write=FOptions};
	__property TTMSFMXGridPDFIOOnPrintEvent OnPrintBegin = {read=FOnPrintBegin, write=FOnPrintBegin};
	__property TTMSFMXGridPDFIOOnPrintNewPage OnPrintNewPage = {read=FOnPrintNewPage, write=FOnPrintNewPage};
	__property TTMSFMXGridPDFIOOnPrintProgress OnPrintProgress = {read=FOnPrintProgress, write=FOnPrintProgress};
	__property TTMSFMXGridPDFIOOnPrintEvent OnPrintEnd = {read=FOnPrintEnd, write=FOnPrintEnd};
	__property TTMSFMXGridPDFIOOnPrintEndPage OnPrintEndPage = {read=FOnPrintEndPage, write=FOnPrintEndPage};
	__property Fmx::Tmspdfrenderlib::TTMSFMXPDFRenderLib* PDFRenderLib = {read=FPDFRenderLib, write=FPDFRenderLib};
	__property System::UnicodeString Version = {read=GetVersion};
};


//-- var, const, procedure ---------------------------------------------------
static const System::Int8 MAJ_VER = System::Int8(0x1);
static const System::Int8 MIN_VER = System::Int8(0x5);
static const System::Int8 REL_VER = System::Int8(0x0);
static const System::Int8 BLD_VER = System::Int8(0x0);
}	/* namespace Tmsgridpdfio */
}	/* namespace Fmx */
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_FMX_TMSGRIDPDFIO)
using namespace Fmx::Tmsgridpdfio;
#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_TmsgridpdfioHPP
