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

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

#ifndef RVReportHPP
#define RVReportHPP

#pragma delphiheader begin
#pragma option push -w-
#pragma option push -Vx
#include <RVRTFProps.hpp>	// Pascal unit
#include <Controls.hpp>	// Pascal unit
#include <RVCtrlData.hpp>	// Pascal unit
#include <RVFuncs.hpp>	// Pascal unit
#include <PtblRV.hpp>	// Pascal unit
#include <PtRVData.hpp>	// Pascal unit
#include <RichView.hpp>	// Pascal unit
#include <RVRVData.hpp>	// Pascal unit
#include <CRVFData.hpp>	// Pascal unit
#include <CRVData.hpp>	// Pascal unit
#include <RVScroll.hpp>	// Pascal unit
#include <RVItem.hpp>	// Pascal unit
#include <RVClasses.hpp>	// Pascal unit
#include <RVStyle.hpp>	// Pascal unit
#include <Classes.hpp>	// Pascal unit
#include <Graphics.hpp>	// Pascal unit
#include <Windows.hpp>	// Pascal unit
#include <SysInit.hpp>	// Pascal unit
#include <System.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 Windows::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 Windows::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 ;
	__property BackgroundBitmap ;
	__property BackgroundStyle ;
	__property BiDiMode ;
	__property BottomMargin ;
	__property Delimiters ;
	__property LeftMargin ;
	__property Options ;
	__property RightMargin ;
	__property RTFOptions ;
	__property RTFReadProperties ;
	__property RVFOptions ;
	__property RVFParaStylesReadMode ;
	__property RVFTextStylesReadMode ;
	__property Style ;
	__property TopMargin ;
	__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);
	__property TReportRichView* RichView = {read=GetRichView};
	
__published:
	__property ColorMode ;
	__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 */
#if !defined(NO_IMPLICIT_NAMESPACE_USE)
using namespace Rvreport;
#endif
#pragma option pop	// -w-
#pragma option pop	// -Vx

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