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

// (DO NOT EDIT: machine generated header) 'RpRenderText.pas' rev: 4.00

#ifndef RpRenderTextHPP
#define RpRenderTextHPP

#pragma delphiheader begin
#pragma option push -w-
#include <RpDefine.hpp>	// Pascal unit
#include <RpRender.hpp>	// Pascal unit
#include <SysUtils.hpp>	// Pascal unit
#include <Classes.hpp>	// Pascal unit
#include <Graphics.hpp>	// Pascal unit
#include <Dialogs.hpp>	// Pascal unit
#include <Windows.hpp>	// Pascal unit
#include <SysInit.hpp>	// Pascal unit
#include <System.hpp>	// Pascal unit

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

namespace Rprendertext
{
//-- type declarations -------------------------------------------------------
class DELPHICLASS TTextItem;
#pragma pack(push, 4)
class PASCALIMPLEMENTATION TTextItem : public System::TObject 
{
	typedef System::TObject inherited;
	
public:
	int Col;
	int Line;
	AnsiString Data;
public:
	#pragma option push -w-inl
	/* TObject.Create */ inline __fastcall TTextItem(void) : System::TObject() { }
	#pragma option pop
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~TTextItem(void) { }
	#pragma option pop
	
};

#pragma pack(pop)

class DELPHICLASS TRvRenderText;
#pragma pack(push, 4)
class PASCALIMPLEMENTATION TRvRenderText : public Rprender::TRPRenderStream 
{
	typedef Rprender::TRPRenderStream inherited;
	
protected:
	double FCPI;
	double FLPI;
	Classes::TList* PageList;
	double FLeftBorder;
	double FTopBorder;
	bool FFormFeed;
	AnsiString FFormFeedStr;
	double __fastcall TextWidth(AnsiString Text);
	int __fastcall ColAt(double Pos);
	int __fastcall LineAt(double Pos);
	AnsiString __fastcall MakeSpaces(Byte Count);
	void __fastcall ClearPageList(void);
	void __fastcall AddTextItem(TTextItem* &TextItem, int Line);
	void __fastcall WriteStr(AnsiString Value);
	virtual void __fastcall PageEnd(void);
	virtual void __fastcall LeftText(const AnsiString AText, const double AX, const double AY);
	virtual void __fastcall CenterText(const AnsiString AText, const double AX, const double AY);
	virtual void __fastcall RightText(const AnsiString AText, const double AX, const double AY);
	virtual void __fastcall PrintSpaces(const AnsiString AText, const double AX, const double AY, const 
		double AWidth);
	virtual void __fastcall PrintRightWidth(double &AX, double &AY, AnsiString AText, double Width);
	virtual void __fastcall DocBegin(void);
	virtual void __fastcall DocEnd(void);
	
public:
	__fastcall virtual TRvRenderText(Classes::TComponent* AOwner);
	__fastcall virtual ~TRvRenderText(void);
	tagSIZE __fastcall GetTextExtent(AnsiString Value);
	virtual void __fastcall PrintRender(Classes::TStream* NDRStream, AnsiString OutputFileName);
	__property AnsiString FormFeedStr = {read=FFormFeedStr, write=FFormFeedStr};
	
__published:
	__property double TopBorder = {read=FTopBorder, write=FTopBorder};
	__property double LeftBorder = {read=FLeftBorder, write=FLeftBorder};
	__property double CPI = {read=FCPI, write=FCPI};
	__property double LPI = {read=FLPI, write=FLPI};
	__property bool FormFeed = {read=FFormFeed, write=FFormFeed, default=1};
};

#pragma pack(pop)

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

}	/* namespace Rprendertext */
#if !defined(NO_IMPLICIT_NAMESPACE_USE)
using namespace Rprendertext;
#endif
#pragma option pop	// -w-

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