// Borland C++ Builder
// Copyright (c) 1995, 2005 by Borland Software Corporation
// All rights reserved

// (DO NOT EDIT: machine generated header) 'Rvreport.pas' rev: 10.00

#ifndef RvreportHPP
#define RvreportHPP

#pragma delphiheader begin
#pragma option push
#pragma option -w-      // All warnings off
#pragma option -Vx      // Zero-length empty class member functions
#pragma pack(push,8)
#include <System.hpp>	// Pascal unit
#include <Sysinit.hpp>	// Pascal unit
#include <Windows.hpp>	// Pascal unit
#include <Graphics.hpp>	// Pascal unit
#include <Classes.hpp>	// Pascal unit
#include <Rvstyle.hpp>	// Pascal unit
#include <Rvclasses.hpp>	// Pascal unit
#include <Rvitem.hpp>	// Pascal unit
#include <Rvscroll.hpp>	// Pascal unit
#include <Crvdata.hpp>	// Pascal unit
#include <Crvfdata.hpp>	// Pascal unit
#include <Rvrvdata.hpp>	// Pascal unit
#include <Richview.hpp>	// Pascal unit
#include <Ptrvdata.hpp>	// Pascal unit
#include <Ptblrv.hpp>	// Pascal unit
#include <Rvfuncs.hpp>	// Pascal unit
#include <Rvctrldata.hpp>	// Pascal unit
#include <Controls.hpp>	// Pascal unit
#include <Rvrtfprops.hpp>	// Pascal unit

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

namespace Rvreport
{
//-- type declarations -------------------------------------------------------
class DELPHICLASS TRVReportHelper;
typedef void __fastcall (__closure *TRVDrawHyperlinkEvent)(TRVReportHelper* Sender, Crvdata::TCustomRVData* RVData, int ItemNo, const Types::TRect &R);

typedef void __fastcall (__closure *TRVDrawCheckpointEvent)(TRVReportHelper* Sender, Crvdata::TCustomRVData* RVData, int ItemNo, int X, int Y);

class DELPHICLASS TReportRVData;
class PASCALIMPLEMENTATION TReportRVData : public Ptrvdata::TCustomMainPtblRVData 
{
	typedef Ptrvdata::TCustomMainPtblRVData inherited;
	
private:
	int StartY;
	int StartAt;
	int Y;
	int DrawItemNo;
	int CurHeight;
	bool Splitting;
	void __fastcall StoreMargins(void);
	void __fastcall RestoreMargins(void);
	void __fastcall Init(Graphics::TCanvas* ACanvas, int APageWidth);
	HIDESBASE bool __fastcall FormatNextPage(int AMaxHeight);
	bool __fastcall Finished(void);
	void __fastcall Reset(void);
	
protected:
	DYNAMIC bool __fastcall ShareItems(void);
	virtual void __fastcall DoOnHyperlink(Crvdata::TCustomRVData* RVData, int ItemNo, const Types::TRect &R);
	virtual void __fastcall DoOnCheckpoint(Crvdata::TCustomRVData* RVData, int ItemNo, int X, int Y);
	
public:
	virtual int __fastcall GetHeight(void);
	DYNAMIC int __fastcall GetPageHeight(void);
	DYNAMIC int __fastcall GetPageWidth(void);
public:
	#pragma option push -w-inl
	/* TCustomMainPtblRVData.Create */ inline __fastcall virtual TReportRVData(Rvscroll::TRVScroller* RichView) : Ptrvdata::TCustomMainPtblRVData(RichView) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TCustomMultiPagePtblRVData.Destroy */ inline __fastcall virtual ~TReportRVData(void) { }
	#pragma option pop
	
};


class DELPHICLASS TReportRichView;
class PASCALIMPLEMENTATION TReportRichView : public Ptblrv::TCustomPrintableRV 
{
	typedef Ptblrv::TCustomPrintableRV inherited;
	
private:
	int __fastcall GetHeight(void);
	int __fastcall GetWidth(void);
	int __fastcall GetLeft(void);
	int __fastcall GetTop(void);
	
protected:
	virtual TMetaClass* __fastcall GetDataClass(void);
	virtual void __fastcall SetBiDiModeRV(const Rvscroll::TRVBiDiMode Value);
	
public:
	__fastcall virtual TReportRichView(Classes::TComponent* AOwner);
	virtual bool __fastcall CanUseCustomPPI(void);
	
__published:
	__property Color  = {default=536870911};
	__property BackgroundBitmap ;
	__property BackgroundStyle ;
	__property BiDiMode  = {default=0};
	__property BottomMargin  = {default=5};
	__property Delimiters ;
	__property LeftMargin  = {default=5};
	__property Options  = {default=326949};
	__property RightMargin  = {default=5};
	__property RTFOptions  = {default=14};
	__property RTFReadProperties ;
	__property RVFOptions  = {default=49219};
	__property RVFParaStylesReadMode  = {default=2};
	__property RVFTextStylesReadMode  = {default=2};
	__property Style ;
	__property TopMargin  = {default=5};
	__property OnControlAction ;
	__property OnHTMLSaveImage ;
	__property OnRVFImageListNeeded ;
	__property OnRVFControlNeeded ;
	__property OnRVFPictureNeeded ;
	__property OnSaveComponentToFile ;
	__property OnURLNeeded ;
	__property OnReadHyperlink ;
	__property OnWriteHyperlink ;
	__property int Width = {read=GetWidth, nodefault};
	__property int Height = {read=GetHeight, nodefault};
	__property int Left = {read=GetLeft, nodefault};
	__property int Top = {read=GetTop, nodefault};
public:
	#pragma option push -w-inl
	/* TCustomPrintableRV.Destroy */ inline __fastcall virtual ~TReportRichView(void) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TWinControl.CreateParented */ inline __fastcall TReportRichView(HWND ParentWindow) : Ptblrv::TCustomPrintableRV(ParentWindow) { }
	#pragma option pop
	
};


class PASCALIMPLEMENTATION TRVReportHelper : public Ptblrv::TCustomRVPrint 
{
	typedef Ptblrv::TCustomRVPrint inherited;
	
private:
	TRVDrawHyperlinkEvent FOnDrawHyperlink;
	TRVDrawCheckpointEvent FOnDrawCheckpoint;
	TReportRichView* __fastcall GetRichView(void);
	
protected:
	DYNAMIC Ptblrv::TCustomPrintableRV* __fastcall CreateRichView(void);
	
public:
	__fastcall virtual TRVReportHelper(Classes::TComponent* AOwner);
	void __fastcall Init(Graphics::TCanvas* ACanvas, int APageWidth);
	bool __fastcall FormatNextPage(int AMaxHeight);
	void __fastcall Reset(void);
	void __fastcall DrawPage(int APageNo, Graphics::TCanvas* ACanvas, bool APreview, int AHeight);
	void __fastcall DrawPageAt(int Left, int Top, int APageNo, Graphics::TCanvas* ACanvas, bool APreview, int AHeight);
	bool __fastcall Finished(void);
	int __fastcall GetLastPageHeight(void);
	
__published:
	__property TReportRichView* RichView = {read=GetRichView};
	__property ColorMode  = {default=0};
	__property TRVDrawHyperlinkEvent OnDrawHyperlink = {read=FOnDrawHyperlink, write=FOnDrawHyperlink};
	__property TRVDrawCheckpointEvent OnDrawCheckpoint = {read=FOnDrawCheckpoint, write=FOnDrawCheckpoint};
public:
	#pragma option push -w-inl
	/* TComponent.Destroy */ inline __fastcall virtual ~TRVReportHelper(void) { }
	#pragma option pop
	
};


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

}	/* namespace Rvreport */
using namespace Rvreport;
#pragma pack(pop)
#pragma option pop

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