//----------------------------------------------------------------------------
// RVItem.hpp - bcbdcc32 generated hdr (DO NOT EDIT) rev: 0
// From: RVItem.pas
//----------------------------------------------------------------------------
#ifndef RVItemHPP
#define RVItemHPP
//----------------------------------------------------------------------------
#include <DLines.hpp>
#include <RVStyle.hpp>
#include <RVScroll.hpp>
#include <RVFuncs.hpp>
#include <RVClasses.hpp>
#include <CommCtrl.hpp>
#include <Controls.hpp>
#include <Graphics.hpp>
#include <Windows.hpp>
#include <Classes.hpp>
#include <SysUtils.hpp>
#include <System.hpp>
namespace Rvitem
{
//-- type declarations -------------------------------------------------------
class __declspec(delphiclass) TRVMultiDrawItemPart;
class __declspec(pascalimplementation) TRVMultiDrawItemPart : public System::TObject
{
	typedef System::TObject inherited;
	
public:
	int Height;
public:
	/* TObject.Create */ __fastcall TRVMultiDrawItemPart(void) : System::TObject() { }
	/* TObject.Destroy */ __fastcall virtual ~TRVMultiDrawItemPart(void) { }
	
};

class __declspec(delphiclass) ERichViewError;
class __declspec(pascalimplementation) ERichViewError : public Sysutils::Exception
{
	typedef Sysutils::Exception inherited;
	
public:
	/* Exception.Create */ __fastcall ERichViewError(const System::AnsiString Msg) : Sysutils::Exception(
		Msg) { }
	/* Exception.CreateFmt */ __fastcall ERichViewError(const System::AnsiString Msg, const System::TVarRec 
		* Args, const int Args_Size) : Sysutils::Exception(Msg, Args, Args_Size) { }
	/* Exception.CreateRes */ __fastcall ERichViewError(int Ident) : Sysutils::Exception(Ident) { }
	/* Exception.CreateResFmt */ __fastcall ERichViewError(int Ident, const System::TVarRec * Args, const 
		int Args_Size) : Sysutils::Exception(Ident, Args, Args_Size) { }
	/* Exception.CreateHelp */ __fastcall ERichViewError(const System::AnsiString Msg, int AHelpContext
		) : Sysutils::Exception(Msg, AHelpContext) { }
	/* Exception.CreateFmtHelp */ __fastcall ERichViewError(const System::AnsiString Msg, const System::TVarRec 
		* Args, const int Args_Size, int AHelpContext) : Sysutils::Exception(Msg, Args, Args_Size, AHelpContext
		) { }
	/* Exception.CreateResHelp */ __fastcall ERichViewError(int Ident, int AHelpContext) : Sysutils::Exception(
		Ident, AHelpContext) { }
	/* Exception.CreateResFmtHelp */ __fastcall ERichViewError(int Ident, const System::TVarRec * Args, 
		const int Args_Size, int AHelpContext) : Sysutils::Exception(Ident, Args, Args_Size, AHelpContext)
		 { }
	
public:
	/* TObject.Destroy */ __fastcall virtual ~ERichViewError(void) { }
	
};

enum TRVItemOption { rvioSameAsPrev, rvioPageBreakBefore, rvioBR, rvioUnicode };

typedef Set<TRVItemOption, rvioSameAsPrev, rvioUnicode>  TRVItemOptions;

enum TRVItemDrawState { rvidsSelected, rvidsCurrent, rvidsHover, rvidsPrinting, rvidsPreview, rvidsPreviewCorrection, 
	rvidsControlFocused };

typedef Set<TRVItemDrawState, rvidsSelected, rvidsControlFocused>  TRVItemDrawStates;

enum TRVFReadMode { rmText, rmBeforeBinary, rmBinary, rmBeforeUnicode, rmUnicode, rmAfterUnicode };

enum TRVFReadState { rstHeader, rstData, rstSkip };

enum TRVItemBoolProperty { rvbpPrintToBMP, rvbpFullWidth, rvbpValid, rvbpRequiresRVFLines, rvbpDisplayActiveState, 
	rvbpDrawingChangesFont, rvbpPrintRequiresPrinterDPI, rvbpCanSaveUnicode, rvbpAlwaysInText, rvbpImmediateControlOwner 
	};

enum TRVItemBoolPropertyEx { rvbpJump, rvbpAllowsFocus, rvbpHotColdJump, rvbpXORFocus, rvbpHotCold }
	;

class __declspec(delphiclass) TRVCPInfo;
class __declspec(delphiclass) TCustomRVItemInfo;
class __declspec(delphiclass) TRVStoreSubRVData;
enum TRVSubRVDataPos { rvdFirst, rvdLast, rvdChosenUp, rvdChosenDown, rvdNext, rvdPrev };

class __declspec(pascalimplementation) TCustomRVItemInfo : public Classes::TPersistent
{
	typedef Classes::TPersistent inherited;
	
private:
	bool __fastcall GetSameAsPrev(void);
	void __fastcall SetSameAsPrev(const bool Value);
	bool __fastcall GetBR(void);
	void __fastcall SetBR(bool Value);
	bool __fastcall GetPageBreakBefore(void);
	void __fastcall SetPageBreakBefore(const bool Value);
	
protected:
	virtual System::AnsiString __fastcall SaveRVFHeaderTail(Classes::TPersistent* RVData);
	
public:
	int StyleNo;
	int ParaNo;
	TRVItemOptions ItemOptions;
	TRVCPInfo* Checkpoint;
	int JumpID;
	int Tag;
	int DrawItemNo;
	__fastcall virtual TCustomRVItemInfo(Classes::TPersistent* RVData);
	HIDESBASE virtual void __fastcall Assign(TCustomRVItemInfo* Source);
	virtual Classes::TPersistent* __fastcall GetSubRVDataAt(int X, int Y);
	virtual int __fastcall GetMinWidth(void);
	virtual bool __fastcall OwnsControl(Controls::TControl* AControl);
	virtual bool __fastcall OwnsInplaceEditor(Controls::TControl* AEditor);
	bool __fastcall CanBeBorderStart(void);
	bool __fastcall ParaStart(bool CountBR);
	__property bool SameAsPrev = {read=GetSameAsPrev, write=SetSameAsPrev, nodefault};
	virtual Graphics::TGraphic* __fastcall AsImage(void);
	virtual void __fastcall SaveToHTML(Classes::TStream* Stream, Classes::TPersistent* RVData, int ItemNo
		, const System::AnsiString Text, const System::AnsiString Path, const System::AnsiString imgSavePrefix
		, int &imgSaveNo, Graphics::TColor CurrentFileColor, Rvstyle::TRVSaveOptions SaveOptions, bool UseCSS
		, Rvclasses::TRVList* Bullets);
	virtual System::AnsiString __fastcall AsText(int LineWidth, Classes::TPersistent* RVData, const System::AnsiString 
		Text, const System::AnsiString Path, bool TextOnly, bool Unicode);
	virtual void __fastcall UpdatePaletteInfo(Rvscroll::TRVPaletteAction PaletteAction, bool ForceRecreateCopy
		, HPALETTE Palette, Windows::PLogPalette LogPalette);
	virtual bool __fastcall ReadRVFHeader(char * &P, Classes::TPersistent* RVData);
	virtual bool __fastcall GetBoolValue(TRVItemBoolProperty Prop);
	virtual bool __fastcall GetBoolValueEx(TRVItemBoolPropertyEx Prop, Rvstyle::TRVStyle* RVStyle);
	virtual bool __fastcall ReadRVFLine(const System::AnsiString s, Classes::TPersistent* RVData, int ReadType
		, int LineNo,  System::AnsiString &Name, TRVFReadMode &ReadMode, TRVFReadState &ReadState);
	virtual void __fastcall SaveRVF(Classes::TStream* Stream, Classes::TPersistent* RVData, int ItemNo, 
		int ParaNo, const System::AnsiString Name, TRVMultiDrawItemPart* Part);
	virtual void __fastcall SaveRTF(Classes::TStream* Stream, Classes::TPersistent* RVData, int ItemNo, 
		const System::AnsiString Name, double TwipsPerPixel, int Level, Rvclasses::TRVColorList* ColorList
		, Rvclasses::TRVIntegerList* StyleToFont, Rvclasses::TRVIntegerList* FontToStyle);
	virtual void __fastcall FillRTFColorTable(Rvclasses::TRVColorList* ColorList);
	virtual void __fastcall PaintFullWidth(int Left, int Right, int Top, Graphics::TCanvas* Canvas, TRVItemDrawStates 
		State, Rvstyle::TRVStyle* Style, const Windows::TRect &ClipRect, Dlines::TRVDrawLineInfo* dli);
	virtual void __fastcall Paint(int x, int y, Graphics::TCanvas* Canvas, TRVItemDrawStates State, Rvstyle::TRVStyle* 
		Style, Dlines::TRVDrawLineInfo* dli);
	virtual bool __fastcall PrintToBitmap(Graphics::TBitmap* Bkgnd, bool Preview, Rvscroll::TRVScroller* 
		RichView);
	virtual void __fastcall Print(Graphics::TCanvas* Canvas, int x, int y, int x2, bool Preview, bool Correction
		, const Rvfuncs::TRVScreenAndDevice &sad, Rvscroll::TRVScroller* RichView, Dlines::TRVDrawLineInfo* 
		dli, int Part);
	virtual int __fastcall GetImageWidth(void);
	virtual int __fastcall GetImageHeight(void);
	virtual int __fastcall GetBorderWidth(void);
	virtual int __fastcall GetBorderHeight(void);
	virtual void __fastcall MovingToUndoList(int ItemNo, System::TObject* RVData, System::TObject* AContainerUndoItem
		);
	virtual void __fastcall MovingFromUndoList(int ItemNo, System::TObject* RVData);
	virtual bool __fastcall MouseMove(Classes::TShiftState Shift, int X, int Y, int ItemNo, System::TObject* 
		RVData);
	virtual bool __fastcall MouseDown(Controls::TMouseButton Button, Classes::TShiftState Shift, int X, 
		int Y, int ItemNo, System::TObject* RVData);
	virtual bool __fastcall MouseUp(Controls::TMouseButton Button, Classes::TShiftState Shift, int X, int 
		Y, int ItemNo, System::TObject* RVData);
	virtual void __fastcall AfterRVFLoading(void);
	virtual void __fastcall DeselectPartial(void);
	virtual bool __fastcall PartiallySelected(void);
	virtual bool __fastcall CanDeletePartiallySelected(void);
	virtual void __fastcall DeletePartiallySelected(void);
	virtual void __fastcall ApplyParaStyleToPartiallySelected(int ParaNo);
	virtual void __fastcall ApplyStyleConversionToPartiallySelected(int UserData);
	virtual Dlines::TRVDrawLineInfo* __fastcall CreatePrintingDrawItem(System::TObject* RVData, const Rvfuncs::TRVScreenAndDevice 
		&sad);
	virtual void __fastcall StartExport(void);
	virtual void __fastcall EndExport(void);
	virtual void __fastcall Inserted(System::TObject* RVData, bool Safe);
	virtual void __fastcall BeforeUndoChangeProperty(void);
	virtual void __fastcall AfterUndoChangeProperty(void);
	virtual bool __fastcall EnterItem(bool FromLeft);
	virtual Controls::TCursor __fastcall GetHypertextCursor(Rvstyle::TRVStyle* RVStyle);
	virtual void __fastcall BuildJumps(int Left, int Top, int &StartJumpNo, Classes::TList* jumps);
	virtual void __fastcall Focusing(void);
	virtual bool __fastcall MoveFocus(bool GoForward, Classes::TPersistent* &TopLevelRVData, int &TopLevelItemNo
		);
	virtual void __fastcall ClearFocus(void);
	virtual void __fastcall Execute(Classes::TPersistent* RVData);
	virtual bool __fastcall AdjustFocusToControl(Controls::TControl* Control, Classes::TPersistent* &TopLevelRVData
		, int &TopLevelItemNo);
	virtual void __fastcall OnDocWidthChange(int DocWidth, Dlines::TRVDrawLineInfo* dli, bool Printing)
		;
	virtual void __fastcall MarkStylesInUse(Rvclasses::TRVIntegerList* UsedTextStyles, Rvclasses::TRVIntegerList* 
		UsedParaStyles);
	virtual void __fastcall UpdateStyles(Rvclasses::TRVIntegerList* TextStylesShift, Rvclasses::TRVIntegerList* 
		ParaStylesShift);
	virtual Classes::TPersistent* __fastcall GetSubRVData(TRVStoreSubRVData* &StoreState, TRVSubRVDataPos 
		Position);
	virtual void __fastcall ChooseSubRVData(TRVStoreSubRVData* StoreState);
	virtual void __fastcall CleanUpChosen(void);
	virtual void __fastcall ResetSubCoords(void);
	__property bool BR = {read=GetBR, write=SetBR, nodefault};
	__property bool PageBreakBefore = {read=GetPageBreakBefore, write=SetPageBreakBefore, nodefault};
public:
		
	/* TObject.Destroy */ __fastcall virtual ~TCustomRVItemInfo(void) { }
	
};

class __declspec(pascalimplementation) TRVCPInfo : public System::TObject
{
	typedef System::TObject inherited;
	
public:
	System::AnsiString Name;
	TRVCPInfo* Next;
	TRVCPInfo* Prev;
	bool RaiseEvent;
	TCustomRVItemInfo* ItemInfo;
	int ItemNo;
	int Tag;
	void __fastcall Assign(TRVCPInfo* Source, bool TagsArePChars);
	TRVCPInfo* __fastcall CreateCopy(bool TagsArePChars);
public:
	/* TObject.Create */ __fastcall TRVCPInfo(void) : System::TObject() { }
	/* TObject.Destroy */ __fastcall virtual ~TRVCPInfo(void) { }
	
};

class __declspec(pascalimplementation) TRVStoreSubRVData : public System::TObject
{
	typedef System::TObject inherited;
	
public:
	virtual TRVStoreSubRVData* __fastcall Duplicate(void);
public:
	/* TObject.Create */ __fastcall TRVStoreSubRVData(void) : System::TObject() { }
	/* TObject.Destroy */ __fastcall virtual ~TRVStoreSubRVData(void) { }
	
};

typedef System::TMetaClass*TCustomRVItemInfoClass;

class __declspec(delphiclass) TRVTextItemInfo;
class __declspec(pascalimplementation) TRVTextItemInfo : public TCustomRVItemInfo
{
	typedef TCustomRVItemInfo inherited;
	
public:
	virtual bool __fastcall GetBoolValueEx(TRVItemBoolPropertyEx Prop, Rvstyle::TRVStyle* RVStyle);
	virtual void __fastcall Execute(Classes::TPersistent* RVData);
	virtual void __fastcall MarkStylesInUse(Rvclasses::TRVIntegerList* UsedTextStyles, Rvclasses::TRVIntegerList* 
		UsedParaStyles);
	virtual void __fastcall UpdateStyles(Rvclasses::TRVIntegerList* TextStylesShift, Rvclasses::TRVIntegerList* 
		ParaStylesShift);
public:
	/* TCustomRVItemInfo.Create */ __fastcall virtual TRVTextItemInfo(Classes::TPersistent* RVData) : Rvitem::
		TCustomRVItemInfo(RVData) { }
	
public:
	/* TObject.Destroy */ __fastcall virtual ~TRVTextItemInfo(void) { }
	
};

typedef System::TMetaClass*TRVTextItemInfoClass;

class __declspec(delphiclass) TRVNonTextItemInfo;
class __declspec(pascalimplementation) TRVNonTextItemInfo : public TCustomRVItemInfo
{
	typedef TCustomRVItemInfo inherited;
	
protected:
	virtual int __fastcall GetHeight(void);
	virtual int __fastcall GetWidth(void);
	
public:
	virtual void __fastcall AdjustInserted(int x, int y, bool adjusty);
	__property int Height = {read=GetHeight, nodefault};
	__property int Width = {read=GetWidth, nodefault};
public:
	/* TCustomRVItemInfo.Create */ __fastcall virtual TRVNonTextItemInfo(Classes::TPersistent* RVData) : 
		Rvitem::TCustomRVItemInfo(RVData) { }
	
public:
	/* TObject.Destroy */ __fastcall virtual ~TRVNonTextItemInfo(void) { }
	
};

class __declspec(delphiclass) TRVFullLineItemInfo;
class __declspec(pascalimplementation) TRVFullLineItemInfo : public TRVNonTextItemInfo
{
	typedef TRVNonTextItemInfo inherited;
	
public:
	virtual bool __fastcall GetBoolValue(TRVItemBoolProperty Prop);
	virtual int __fastcall GetBorderWidth(void);
	virtual int __fastcall GetBorderHeight(void);
public:
	/* TCustomRVItemInfo.Create */ __fastcall virtual TRVFullLineItemInfo(Classes::TPersistent* RVData)
		 : Rvitem::TRVNonTextItemInfo(RVData) { }
	
public:
	/* TObject.Destroy */ __fastcall virtual ~TRVFullLineItemInfo(void) { }
	
};

class __declspec(delphiclass) TRVRectItemInfo;
class __declspec(pascalimplementation) TRVRectItemInfo : public TRVNonTextItemInfo
{
	typedef TRVNonTextItemInfo inherited;
	
protected:
	virtual int __fastcall GetDescent(void);
	virtual System::AnsiString __fastcall SaveRVFHeaderTail(Classes::TPersistent* RVData);
	
public:
	TRVVAlign VAlign;
	virtual void __fastcall Assign(TCustomRVItemInfo* Source);
	virtual bool __fastcall ReadRVFHeader(char * &P, Classes::TPersistent* RVData);
	__property int Descent = {read=GetDescent, nodefault};
public:
	/* TCustomRVItemInfo.Create */ __fastcall virtual TRVRectItemInfo(Classes::TPersistent* RVData) : Rvitem::
		TRVNonTextItemInfo(RVData) { }
	
public:
	/* TObject.Destroy */ __fastcall virtual ~TRVRectItemInfo(void) { }
	
};

class __declspec(delphiclass) TRVControlItemInfo;
class __declspec(pascalimplementation) TRVControlItemInfo : public TRVRectItemInfo
{
	typedef TRVRectItemInfo inherited;
	
protected:
	virtual int __fastcall GetHeight(void);
	virtual int __fastcall GetWidth(void);
	
public:
	Controls::TControl* Control;
	int PercentWidth;
	__fastcall TRVControlItemInfo(Classes::TPersistent* RVData, Controls::TControl* AControl, Rvstyle::TRVVAlign 
		AVAlign);
	__fastcall virtual ~TRVControlItemInfo(void);
	virtual int __fastcall GetMinWidth(void);
	virtual void __fastcall AdjustInserted(int x, int y, bool adjusty);
	virtual bool __fastcall PrintToBitmap(Graphics::TBitmap* Bkgnd, bool Preview, Rvscroll::TRVScroller* 
		RichView);
	virtual void __fastcall Paint(int x, int y, Graphics::TCanvas* Canvas, TRVItemDrawStates State, Rvstyle::TRVStyle* 
		Style, Dlines::TRVDrawLineInfo* dli);
	virtual bool __fastcall OwnsControl(Controls::TControl* AControl);
	virtual System::AnsiString __fastcall AsText(int LineWidth, Classes::TPersistent* RVData, const System::AnsiString 
		Text, const System::AnsiString Path, bool TextOnly, bool Unicode);
	virtual void __fastcall SaveToHTML(Classes::TStream* Stream, Classes::TPersistent* RVData, int ItemNo
		, const System::AnsiString Text, const System::AnsiString Path, const System::AnsiString imgSavePrefix
		, int &imgSaveNo, Graphics::TColor CurrentFileColor, Rvstyle::TRVSaveOptions SaveOptions, bool UseCSS
		, Rvclasses::TRVList* Bullets);
	virtual bool __fastcall ReadRVFLine(const System::AnsiString s, Classes::TPersistent* RVData, int ReadType
		, int LineNo,  System::AnsiString &Name, TRVFReadMode &ReadMode, TRVFReadState &ReadState);
	virtual void __fastcall SaveRVF(Classes::TStream* Stream, Classes::TPersistent* RVData, int ItemNo, 
		int ParaNo, const System::AnsiString Name, TRVMultiDrawItemPart* Part);
	virtual void __fastcall SaveRTF(Classes::TStream* Stream, Classes::TPersistent* RVData, int ItemNo, 
		const System::AnsiString Name, double TwipsPerPixel, int Level, Rvclasses::TRVColorList* ColorList
		, Rvclasses::TRVIntegerList* StyleToFont, Rvclasses::TRVIntegerList* FontToStyle);
	virtual bool __fastcall GetBoolValue(TRVItemBoolProperty Prop);
	virtual bool __fastcall GetBoolValueEx(TRVItemBoolPropertyEx Prop, Rvstyle::TRVStyle* RVStyle);
	virtual int __fastcall GetImageHeight(void);
	virtual int __fastcall GetImageWidth(void);
	virtual void __fastcall MovingToUndoList(int ItemNo, System::TObject* RVData, System::TObject* AContainerUndoItem
		);
	virtual void __fastcall MovingFromUndoList(int ItemNo, System::TObject* RVData);
	virtual void __fastcall Inserted(System::TObject* RVData, bool Safe);
	virtual void __fastcall Focusing(void);
	virtual void __fastcall OnDocWidthChange(int DocWidth, Dlines::TRVDrawLineInfo* dli, bool Printing)
		;
public:
	/* TCustomRVItemInfo.Create */ __fastcall virtual TRVControlItemInfo(Classes::TPersistent* RVData) : 
		Rvitem::TRVRectItemInfo(RVData) { }
	
};

class __declspec(delphiclass) TRVGraphicItemInfo;
class __declspec(pascalimplementation) TRVGraphicItemInfo : public TRVRectItemInfo
{
	typedef TRVRectItemInfo inherited;
	
protected:
	virtual int __fastcall GetHeight(void);
	virtual int __fastcall GetWidth(void);
	
public:
	Graphics::TGraphic* Image;
	Graphics::TGraphic* ImageCopy;
	__fastcall virtual TRVGraphicItemInfo(Classes::TPersistent* RVData, Graphics::TGraphic* AImage, Rvstyle::TRVVAlign 
		AVAlign);
	virtual void __fastcall Assign(TCustomRVItemInfo* Source);
	virtual void __fastcall UpdatePaletteInfo(Rvscroll::TRVPaletteAction PaletteAction, bool ForceRecreateCopy
		, HPALETTE Palette, Windows::PLogPalette LogPalette);
	virtual int __fastcall GetMinWidth(void);
	__fastcall virtual ~TRVGraphicItemInfo(void);
	virtual Graphics::TGraphic* __fastcall AsImage(void);
	virtual void __fastcall Paint(int x, int y, Graphics::TCanvas* Canvas, TRVItemDrawStates State, Rvstyle::TRVStyle* 
		Style, Dlines::TRVDrawLineInfo* dli);
	virtual bool __fastcall GetBoolValue(TRVItemBoolProperty Prop);
	virtual void __fastcall SaveToHTML(Classes::TStream* Stream, Classes::TPersistent* RVData, int ItemNo
		, const System::AnsiString Text, const System::AnsiString Path, const System::AnsiString imgSavePrefix
		, int &imgSaveNo, Graphics::TColor CurrentFileColor, Rvstyle::TRVSaveOptions SaveOptions, bool UseCSS
		, Rvclasses::TRVList* Bullets);
	virtual bool __fastcall ReadRVFLine(const System::AnsiString s, Classes::TPersistent* RVData, int ReadType
		, int LineNo,  System::AnsiString &Name, TRVFReadMode &ReadMode, TRVFReadState &ReadState);
	virtual void __fastcall SaveRVF(Classes::TStream* Stream, Classes::TPersistent* RVData, int ItemNo, 
		int ParaNo, const System::AnsiString Name, TRVMultiDrawItemPart* Part);
	virtual void __fastcall SaveRTF(Classes::TStream* Stream, Classes::TPersistent* RVData, int ItemNo, 
		const System::AnsiString Name, double TwipsPerPixel, int Level, Rvclasses::TRVColorList* ColorList
		, Rvclasses::TRVIntegerList* StyleToFont, Rvclasses::TRVIntegerList* FontToStyle);
	virtual bool __fastcall PrintToBitmap(Graphics::TBitmap* Bkgnd, bool Preview, Rvscroll::TRVScroller* 
		RichView);
	virtual void __fastcall Print(Graphics::TCanvas* Canvas, int x, int y, int x2, bool Preview, bool Correction
		, const Rvfuncs::TRVScreenAndDevice &sad, Rvscroll::TRVScroller* RichView, Dlines::TRVDrawLineInfo* 
		dli, int Part);
	virtual int __fastcall GetImageHeight(void);
	virtual int __fastcall GetImageWidth(void);
	virtual void __fastcall MovingToUndoList(int ItemNo, System::TObject* RVData, System::TObject* AContainerUndoItem
		);
public:
	/* TCustomRVItemInfo.Create */ __fastcall virtual TRVGraphicItemInfo(Classes::TPersistent* RVData) : 
		Rvitem::TRVRectItemInfo(RVData) { }
	
};

typedef System::TMetaClass*TRVGraphicItemInfoClass;

class __declspec(delphiclass) TRVHotGraphicItemInfo;
class __declspec(pascalimplementation) TRVHotGraphicItemInfo : public TRVGraphicItemInfo
{
	typedef TRVGraphicItemInfo inherited;
	
public:
	virtual bool __fastcall GetBoolValueEx(TRVItemBoolPropertyEx Prop, Rvstyle::TRVStyle* RVStyle);
	__fastcall virtual TRVHotGraphicItemInfo(Classes::TPersistent* RVData, Graphics::TGraphic* AImage, 
		Rvstyle::TRVVAlign AVAlign);
	virtual void __fastcall Execute(Classes::TPersistent* RVData);
public:
	/* TRVGraphicItemInfo.Destroy */ __fastcall virtual ~TRVHotGraphicItemInfo(void) { }
	
public:
	/* TCustomRVItemInfo.Create */ __fastcall virtual TRVHotGraphicItemInfo(Classes::TPersistent* RVData
		) : Rvitem::TRVGraphicItemInfo(RVData) { }
	
};

class __declspec(delphiclass) TRVBulletItemInfo;
class __declspec(pascalimplementation) TRVBulletItemInfo : public TRVRectItemInfo
{
	typedef TRVRectItemInfo inherited;
	
protected:
	virtual int __fastcall GetHeight(void);
	virtual int __fastcall GetWidth(void);
	virtual int __fastcall GetImageIndex(bool Hot);
	virtual System::AnsiString __fastcall SaveRVFHeaderTail(Classes::TPersistent* RVData);
	
public:
	Controls::TImageList* ImageList;
	int ImageIndex;
	__fastcall TRVBulletItemInfo(Classes::TPersistent* RVData, int AImageIndex, Controls::TImageList* AImageList
		, Rvstyle::TRVVAlign AVAlign);
	virtual void __fastcall SaveToHTML(Classes::TStream* Stream, Classes::TPersistent* RVData, int ItemNo
		, const System::AnsiString Text, const System::AnsiString Path, const System::AnsiString imgSavePrefix
		, int &imgSaveNo, Graphics::TColor CurrentFileColor, Rvstyle::TRVSaveOptions SaveOptions, bool UseCSS
		, Rvclasses::TRVList* Bullets);
	virtual void __fastcall Assign(TCustomRVItemInfo* Source);
	virtual int __fastcall GetMinWidth(void);
	virtual void __fastcall Paint(int x, int y, Graphics::TCanvas* Canvas, TRVItemDrawStates State, Rvstyle::TRVStyle* 
		Style, Dlines::TRVDrawLineInfo* dli);
	virtual bool __fastcall PrintToBitmap(Graphics::TBitmap* Bkgnd, bool Preview, Rvscroll::TRVScroller* 
		RichView);
	virtual bool __fastcall ReadRVFHeader(char * &P, Classes::TPersistent* RVData);
	virtual bool __fastcall ReadRVFLine(const System::AnsiString s, Classes::TPersistent* RVData, int ReadType
		, int LineNo,  System::AnsiString &Name, TRVFReadMode &ReadMode, TRVFReadState &ReadState);
	virtual void __fastcall SaveRVF(Classes::TStream* Stream, Classes::TPersistent* RVData, int ItemNo, 
		int ParaNo, const System::AnsiString Name, TRVMultiDrawItemPart* Part);
	virtual void __fastcall SaveRTF(Classes::TStream* Stream, Classes::TPersistent* RVData, int ItemNo, 
		const System::AnsiString Name, double TwipsPerPixel, int Level, Rvclasses::TRVColorList* ColorList
		, Rvclasses::TRVIntegerList* StyleToFont, Rvclasses::TRVIntegerList* FontToStyle);
	virtual bool __fastcall GetBoolValue(TRVItemBoolProperty Prop);
	virtual int __fastcall GetImageHeight(void);
	virtual int __fastcall GetImageWidth(void);
public:
	/* TCustomRVItemInfo.Create */ __fastcall virtual TRVBulletItemInfo(Classes::TPersistent* RVData) : 
		Rvitem::TRVRectItemInfo(RVData) { }
	
public:
	/* TObject.Destroy */ __fastcall virtual ~TRVBulletItemInfo(void) { }
	
};

class __declspec(delphiclass) TRVHotspotItemInfo;
class __declspec(pascalimplementation) TRVHotspotItemInfo : public TRVBulletItemInfo
{
	typedef TRVBulletItemInfo inherited;
	
protected:
	virtual int __fastcall GetImageIndex(bool Hot);
	virtual System::AnsiString __fastcall SaveRVFHeaderTail(Classes::TPersistent* RVData);
	
public:
	int HotImageIndex;
	__fastcall TRVHotspotItemInfo(Classes::TPersistent* RVData, int AImageIndex, int AHotImageIndex, Controls::TImageList* 
		AImageList, Rvstyle::TRVVAlign AVAlign);
	virtual void __fastcall Assign(TCustomRVItemInfo* Source);
	virtual bool __fastcall ReadRVFHeader(char * &P, Classes::TPersistent* RVData);
	virtual void __fastcall SaveRVF(Classes::TStream* Stream, Classes::TPersistent* RVData, int ItemNo, 
		int ParaNo, const System::AnsiString Name, TRVMultiDrawItemPart* Part);
	virtual bool __fastcall GetBoolValueEx(TRVItemBoolPropertyEx Prop, Rvstyle::TRVStyle* RVStyle);
	virtual void __fastcall Execute(Classes::TPersistent* RVData);
public:
	/* TCustomRVItemInfo.Create */ __fastcall virtual TRVHotspotItemInfo(Classes::TPersistent* RVData) : 
		Rvitem::TRVBulletItemInfo(RVData) { }
	
public:
	/* TObject.Destroy */ __fastcall virtual ~TRVHotspotItemInfo(void) { }
	
};

class __declspec(delphiclass) TRVBreakItemInfo;
class __declspec(pascalimplementation) TRVBreakItemInfo : public TRVFullLineItemInfo
{
	typedef TRVFullLineItemInfo inherited;
	
protected:
	virtual System::AnsiString __fastcall SaveRVFHeaderTail(Classes::TPersistent* RVData);
	
public:
	Byte LineWidth;
	TRVBreakStyle Style;
	Graphics::TColor Color;
	__fastcall TRVBreakItemInfo(Classes::TPersistent* RVData, Byte ALineWidth, Rvstyle::TRVBreakStyle AStyle
		, Graphics::TColor AColor);
	virtual void __fastcall Assign(TCustomRVItemInfo* Source);
	virtual void __fastcall PaintFullWidth(int Left, int Right, int Top, Graphics::TCanvas* Canvas, TRVItemDrawStates 
		State, Rvstyle::TRVStyle* Style, const Windows::TRect &ClipRect, Dlines::TRVDrawLineInfo* dli);
	virtual void __fastcall Print(Graphics::TCanvas* Canvas, int x, int y, int x2, bool Preview, bool Correction
		, const Rvfuncs::TRVScreenAndDevice &sad, Rvscroll::TRVScroller* RichView, Dlines::TRVDrawLineInfo* 
		dli, int Part);
	virtual System::AnsiString __fastcall AsText(int LineWidth, Classes::TPersistent* RVData, const System::AnsiString 
		Text, const System::AnsiString Path, bool TextOnly, bool Unicode);
	virtual void __fastcall SaveToHTML(Classes::TStream* Stream, Classes::TPersistent* RVData, int ItemNo
		, const System::AnsiString Text, const System::AnsiString Path, const System::AnsiString imgSavePrefix
		, int &imgSaveNo, Graphics::TColor CurrentFileColor, Rvstyle::TRVSaveOptions SaveOptions, bool UseCSS
		, Rvclasses::TRVList* Bullets);
	virtual bool __fastcall ReadRVFHeader(char * &P, Classes::TPersistent* RVData);
	virtual void __fastcall SaveRVF(Classes::TStream* Stream, Classes::TPersistent* RVData, int ItemNo, 
		int ParaNo, const System::AnsiString Name, TRVMultiDrawItemPart* Part);
	virtual void __fastcall SaveRTF(Classes::TStream* Stream, Classes::TPersistent* RVData, int ItemNo, 
		const System::AnsiString Name, double TwipsPerPixel, int Level, Rvclasses::TRVColorList* ColorList
		, Rvclasses::TRVIntegerList* StyleToFont, Rvclasses::TRVIntegerList* FontToStyle);
	virtual void __fastcall FillRTFColorTable(Rvclasses::TRVColorList* ColorList);
	virtual bool __fastcall GetBoolValue(TRVItemBoolProperty Prop);
public:
	/* TCustomRVItemInfo.Create */ __fastcall virtual TRVBreakItemInfo(Classes::TPersistent* RVData) : 
		Rvitem::TRVFullLineItemInfo(RVData) { }
	
public:
	/* TObject.Destroy */ __fastcall virtual ~TRVBreakItemInfo(void) { }
	
};

//-- var, const, procedure ---------------------------------------------------
extern System::TMetaClass*RichViewTextItemClass;
#define RVItemOptionsMask (Byte)(15)
extern void __fastcall RegisterRichViewItemClass(int StyleNo, System::TMetaClass* ItemClass);
extern TCustomRVItemInfo* __fastcall CreateRichViewItem(int StyleNo, Classes::TPersistent* RVData);
extern TCustomRVItemInfo* __fastcall RV_DuplicateItem(TCustomRVItemInfo* Source, Classes::TPersistent* 
	RVData, bool TagsArePChars);
extern void __fastcall finalization(void);
//-- template instantiations -------------------------------------------------
template class TRVItemDrawStates ;
template class TRVItemOptions ;

}	/* namespace Rvitem */
#if !defined(NO_IMPLICIT_NAMESPACE_USE)
using namespace Rvitem;
#endif
//-- end unit ----------------------------------------------------------------
#endif	// RVItem
