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

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

#ifndef RVItemHPP
#define RVItemHPP

#pragma delphiheader begin
#pragma option push -w-
#include <DLines.hpp>	// Pascal unit
#include <RVStyle.hpp>	// Pascal unit
#include <RVScroll.hpp>	// Pascal unit
#include <RVFuncs.hpp>	// Pascal unit
#include <RVClasses.hpp>	// Pascal unit
#include <jpeg.hpp>	// Pascal unit
#include <Commctrl.hpp>	// Pascal unit
#include <Controls.hpp>	// Pascal unit
#include <Graphics.hpp>	// Pascal unit
#include <Windows.hpp>	// Pascal unit
#include <Classes.hpp>	// Pascal unit
#include <SysUtils.hpp>	// Pascal unit
#include <SysInit.hpp>	// Pascal unit
#include <System.hpp>	// Pascal unit

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

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

#pragma pack(pop)

class DELPHICLASS ERichViewError;
#pragma pack(push, 4)
class PASCALIMPLEMENTATION ERichViewError : public Sysutils::Exception 
{
	typedef Sysutils::Exception inherited;
	
public:
	#pragma option push -w-inl
	/* Exception.Create */ inline __fastcall ERichViewError(const AnsiString Msg) : Sysutils::Exception(
		Msg) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateFmt */ inline __fastcall ERichViewError(const AnsiString Msg, const System::TVarRec 
		* Args, const int Args_Size) : Sysutils::Exception(Msg, Args, Args_Size) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateRes */ inline __fastcall ERichViewError(int Ident, Extended Dummy) : Sysutils::Exception(
		Ident, Dummy) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateResFmt */ inline __fastcall ERichViewError(int Ident, const System::TVarRec * Args
		, const int Args_Size) : Sysutils::Exception(Ident, Args, Args_Size) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateHelp */ inline __fastcall ERichViewError(const AnsiString Msg, int AHelpContext)
		 : Sysutils::Exception(Msg, AHelpContext) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateFmtHelp */ inline __fastcall ERichViewError(const AnsiString Msg, const System::TVarRec 
		* Args, const int Args_Size, int AHelpContext) : Sysutils::Exception(Msg, Args, Args_Size, AHelpContext
		) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateResHelp */ inline __fastcall ERichViewError(int Ident, int AHelpContext) : Sysutils::Exception(
		Ident, AHelpContext) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateResFmtHelp */ inline __fastcall ERichViewError(int Ident, const System::TVarRec 
		* Args, const int Args_Size, int AHelpContext) : Sysutils::Exception(Ident, Args, Args_Size, AHelpContext
		) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~ERichViewError(void) { }
	#pragma option pop
	
};

#pragma pack(pop)

#pragma option push -b-
enum TRVItemOption { rvioSameAsPrev, rvioPageBreakBefore, rvioBR, rvioUnicode };
#pragma option pop

typedef Set<TRVItemOption, rvioSameAsPrev, rvioUnicode>  TRVItemOptions;

#pragma option push -b-
enum TRVItemDrawState { rvidsSelected, rvidsCurrent, rvidsHover, rvidsPrinting, rvidsPreview, rvidsPreviewCorrection, 
	rvidsControlFocused };
#pragma option pop

typedef Set<TRVItemDrawState, rvidsSelected, rvidsControlFocused>  TRVItemDrawStates;

#pragma option push -b-
enum TRVFReadMode { rmText, rmBeforeBinary, rmBinary, rmBeforeUnicode, rmUnicode, rmAfterUnicode };
#pragma option pop

#pragma option push -b-
enum TRVFReadState { rstHeader, rstData, rstSkip };
#pragma option pop

#pragma option push -b-
enum TRVItemBoolProperty { rvbpPrintToBMP, rvbpFullWidth, rvbpValid, rvbpRequiresRVFLines, rvbpDisplayActiveState, 
	rvbpDrawingChangesFont, rvbpPrintRequiresPrinterDPI, rvbpCanSaveUnicode, rvbpAlwaysInText, rvbpImmediateControlOwner 
	};
#pragma option pop

#pragma option push -b-
enum TRVItemBoolPropertyEx { rvbpJump, rvbpAllowsFocus, rvbpHotColdJump, rvbpXORFocus, rvbpHotCold }
	;
#pragma option pop

class DELPHICLASS TRVCPInfo;
class DELPHICLASS TCustomRVItemInfo;
class DELPHICLASS TRVStoreSubRVData;
#pragma option push -b-
enum TRVSubRVDataPos { rvdFirst, rvdLast, rvdChosenUp, rvdChosenDown, rvdNext, rvdPrev };
#pragma option pop

#pragma pack(push, 4)
class 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:
	DYNAMIC 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);
	HIDESBASEDYNAMIC void __fastcall Assign(TCustomRVItemInfo* Source);
	DYNAMIC Classes::TPersistent* __fastcall GetSubRVDataAt(int X, int Y);
	virtual int __fastcall GetMinWidth(void);
	DYNAMIC bool __fastcall OwnsControl(Controls::TControl* AControl);
	DYNAMIC 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);
	DYNAMIC void __fastcall SaveToHTML(Classes::TStream* Stream, Classes::TPersistent* RVData, int ItemNo
		, const AnsiString Text, const AnsiString Path, const AnsiString imgSavePrefix, int &imgSaveNo, Graphics::TColor 
		CurrentFileColor, Rvstyle::TRVSaveOptions SaveOptions, bool UseCSS, Rvclasses::TRVList* Bullets);
	DYNAMIC AnsiString __fastcall AsText(int LineWidth, Classes::TPersistent* RVData, const AnsiString 
		Text, const AnsiString Path, bool TextOnly, bool Unicode);
	DYNAMIC void __fastcall UpdatePaletteInfo(Rvscroll::TRVPaletteAction PaletteAction, bool ForceRecreateCopy
		, HPALETTE Palette, Windows::PLogPalette LogPalette);
	DYNAMIC bool __fastcall ReadRVFHeader(char * &P, Classes::TPersistent* RVData);
	virtual bool __fastcall GetBoolValue(TRVItemBoolProperty Prop);
	virtual bool __fastcall GetBoolValueEx(TRVItemBoolPropertyEx Prop, Rvstyle::TRVStyle* RVStyle);
	DYNAMIC bool __fastcall ReadRVFLine(const AnsiString s, Classes::TPersistent* RVData, int ReadType, 
		int LineNo, AnsiString &Name, TRVFReadMode &ReadMode, TRVFReadState &ReadState);
	DYNAMIC void __fastcall SaveRVF(Classes::TStream* Stream, Classes::TPersistent* RVData, int ItemNo, 
		int ParaNo, const AnsiString Name, TRVMultiDrawItemPart* Part);
	DYNAMIC void __fastcall SaveRTF(Classes::TStream* Stream, Classes::TPersistent* RVData, int ItemNo, 
		const AnsiString Name, double TwipsPerPixel, int Level, Rvclasses::TRVColorList* ColorList, Rvclasses::TRVIntegerList* 
		StyleToFont, Rvclasses::TRVIntegerList* FontToStyle);
	DYNAMIC 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);
	DYNAMIC void __fastcall MovingToUndoList(int ItemNo, System::TObject* RVData, System::TObject* AContainerUndoItem
		);
	DYNAMIC void __fastcall MovingFromUndoList(int ItemNo, System::TObject* RVData);
	DYNAMIC bool __fastcall MouseMove(Classes::TShiftState Shift, int X, int Y, int ItemNo, System::TObject* 
		RVData);
	DYNAMIC bool __fastcall MouseDown(Controls::TMouseButton Button, Classes::TShiftState Shift, int X, 
		int Y, int ItemNo, System::TObject* RVData);
	DYNAMIC bool __fastcall MouseUp(Controls::TMouseButton Button, Classes::TShiftState Shift, int X, int 
		Y, int ItemNo, System::TObject* RVData);
	DYNAMIC void __fastcall AfterRVFLoading(void);
	DYNAMIC void __fastcall DeselectPartial(void);
	DYNAMIC bool __fastcall PartiallySelected(void);
	DYNAMIC bool __fastcall CanDeletePartiallySelected(void);
	DYNAMIC void __fastcall DeletePartiallySelected(void);
	DYNAMIC void __fastcall ApplyParaStyleToPartiallySelected(int ParaNo);
	DYNAMIC void __fastcall ApplyStyleConversionToPartiallySelected(int UserData);
	virtual Dlines::TRVDrawLineInfo* __fastcall CreatePrintingDrawItem(System::TObject* RVData, const Rvfuncs::TRVScreenAndDevice 
		&sad);
	DYNAMIC void __fastcall StartExport(void);
	DYNAMIC void __fastcall EndExport(void);
	DYNAMIC void __fastcall Inserted(System::TObject* RVData, bool Safe);
	DYNAMIC void __fastcall BeforeUndoChangeProperty(void);
	DYNAMIC void __fastcall AfterUndoChangeProperty(void);
	DYNAMIC bool __fastcall EnterItem(bool FromLeft);
	DYNAMIC Controls::TCursor __fastcall GetHypertextCursor(Rvstyle::TRVStyle* RVStyle);
	DYNAMIC void __fastcall BuildJumps(int Left, int Top, int &StartJumpNo, Classes::TList* jumps);
	DYNAMIC void __fastcall Focusing(void);
	DYNAMIC bool __fastcall MoveFocus(bool GoForward, Classes::TPersistent* &TopLevelRVData, int &TopLevelItemNo
		);
	DYNAMIC void __fastcall ClearFocus(void);
	DYNAMIC void __fastcall Execute(Classes::TPersistent* RVData);
	DYNAMIC bool __fastcall AdjustFocusToControl(Controls::TControl* Control, Classes::TPersistent* &TopLevelRVData
		, int &TopLevelItemNo);
	virtual void __fastcall OnDocWidthChange(int DocWidth, Dlines::TRVDrawLineInfo* dli, bool Printing)
		;
	DYNAMIC void __fastcall MarkStylesInUse(Rvclasses::TRVIntegerList* UsedTextStyles, Rvclasses::TRVIntegerList* 
		UsedParaStyles);
	DYNAMIC void __fastcall UpdateStyles(Rvclasses::TRVIntegerList* TextStylesShift, Rvclasses::TRVIntegerList* 
		ParaStylesShift);
	DYNAMIC Classes::TPersistent* __fastcall GetSubRVData(TRVStoreSubRVData* &StoreState, TRVSubRVDataPos 
		Position);
	DYNAMIC void __fastcall ChooseSubRVData(TRVStoreSubRVData* StoreState);
	DYNAMIC void __fastcall CleanUpChosen(void);
	DYNAMIC void __fastcall ResetSubCoords(void);
	__property bool BR = {read=GetBR, write=SetBR, nodefault};
	__property bool PageBreakBefore = {read=GetPageBreakBefore, write=SetPageBreakBefore, nodefault};
public:
		
	#pragma option push -w-inl
	/* TPersistent.Destroy */ inline __fastcall virtual ~TCustomRVItemInfo(void) { }
	#pragma option pop
	
};

#pragma pack(pop)

#pragma pack(push, 4)
class PASCALIMPLEMENTATION TRVCPInfo : public System::TObject 
{
	typedef System::TObject inherited;
	
public:
	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:
	#pragma option push -w-inl
	/* TObject.Create */ inline __fastcall TRVCPInfo(void) : System::TObject() { }
	#pragma option pop
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~TRVCPInfo(void) { }
	#pragma option pop
	
};

#pragma pack(pop)

#pragma pack(push, 4)
class PASCALIMPLEMENTATION TRVStoreSubRVData : public System::TObject 
{
	typedef System::TObject inherited;
	
public:
	DYNAMIC TRVStoreSubRVData* __fastcall Duplicate(void);
public:
	#pragma option push -w-inl
	/* TObject.Create */ inline __fastcall TRVStoreSubRVData(void) : System::TObject() { }
	#pragma option pop
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~TRVStoreSubRVData(void) { }
	#pragma option pop
	
};

#pragma pack(pop)

typedef TMetaClass*TCustomRVItemInfoClass;

class DELPHICLASS TRVTextItemInfo;
#pragma pack(push, 4)
class PASCALIMPLEMENTATION TRVTextItemInfo : public TCustomRVItemInfo 
{
	typedef TCustomRVItemInfo inherited;
	
public:
	virtual bool __fastcall GetBoolValueEx(TRVItemBoolPropertyEx Prop, Rvstyle::TRVStyle* RVStyle);
	DYNAMIC void __fastcall Execute(Classes::TPersistent* RVData);
	DYNAMIC void __fastcall MarkStylesInUse(Rvclasses::TRVIntegerList* UsedTextStyles, Rvclasses::TRVIntegerList* 
		UsedParaStyles);
	DYNAMIC void __fastcall UpdateStyles(Rvclasses::TRVIntegerList* TextStylesShift, Rvclasses::TRVIntegerList* 
		ParaStylesShift);
public:
	#pragma option push -w-inl
	/* TCustomRVItemInfo.Create */ inline __fastcall virtual TRVTextItemInfo(Classes::TPersistent* RVData
		) : TCustomRVItemInfo(RVData) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TPersistent.Destroy */ inline __fastcall virtual ~TRVTextItemInfo(void) { }
	#pragma option pop
	
};

#pragma pack(pop)

typedef TMetaClass*TRVTextItemInfoClass;

class DELPHICLASS TRVNonTextItemInfo;
#pragma pack(push, 4)
class 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:
	#pragma option push -w-inl
	/* TCustomRVItemInfo.Create */ inline __fastcall virtual TRVNonTextItemInfo(Classes::TPersistent* RVData
		) : TCustomRVItemInfo(RVData) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TPersistent.Destroy */ inline __fastcall virtual ~TRVNonTextItemInfo(void) { }
	#pragma option pop
	
};

#pragma pack(pop)

class DELPHICLASS TRVFullLineItemInfo;
#pragma pack(push, 4)
class 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:
	#pragma option push -w-inl
	/* TCustomRVItemInfo.Create */ inline __fastcall virtual TRVFullLineItemInfo(Classes::TPersistent* 
		RVData) : TRVNonTextItemInfo(RVData) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TPersistent.Destroy */ inline __fastcall virtual ~TRVFullLineItemInfo(void) { }
	#pragma option pop
	
};

#pragma pack(pop)

class DELPHICLASS TRVRectItemInfo;
#pragma pack(push, 4)
class PASCALIMPLEMENTATION TRVRectItemInfo : public TRVNonTextItemInfo 
{
	typedef TRVNonTextItemInfo inherited;
	
protected:
	virtual int __fastcall GetDescent(void);
	DYNAMIC AnsiString __fastcall SaveRVFHeaderTail(Classes::TPersistent* RVData);
	
public:
	Rvstyle::TRVVAlign VAlign;
	DYNAMIC void __fastcall Assign(TCustomRVItemInfo* Source);
	DYNAMIC bool __fastcall ReadRVFHeader(char * &P, Classes::TPersistent* RVData);
	__property int Descent = {read=GetDescent, nodefault};
public:
	#pragma option push -w-inl
	/* TCustomRVItemInfo.Create */ inline __fastcall virtual TRVRectItemInfo(Classes::TPersistent* RVData
		) : TRVNonTextItemInfo(RVData) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TPersistent.Destroy */ inline __fastcall virtual ~TRVRectItemInfo(void) { }
	#pragma option pop
	
};

#pragma pack(pop)

class DELPHICLASS TRVControlItemInfo;
#pragma pack(push, 4)
class 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);
	DYNAMIC bool __fastcall OwnsControl(Controls::TControl* AControl);
	DYNAMIC AnsiString __fastcall AsText(int LineWidth, Classes::TPersistent* RVData, const AnsiString 
		Text, const AnsiString Path, bool TextOnly, bool Unicode);
	DYNAMIC void __fastcall SaveToHTML(Classes::TStream* Stream, Classes::TPersistent* RVData, int ItemNo
		, const AnsiString Text, const AnsiString Path, const AnsiString imgSavePrefix, int &imgSaveNo, Graphics::TColor 
		CurrentFileColor, Rvstyle::TRVSaveOptions SaveOptions, bool UseCSS, Rvclasses::TRVList* Bullets);
	DYNAMIC bool __fastcall ReadRVFLine(const AnsiString s, Classes::TPersistent* RVData, int ReadType, 
		int LineNo, AnsiString &Name, TRVFReadMode &ReadMode, TRVFReadState &ReadState);
	DYNAMIC void __fastcall SaveRVF(Classes::TStream* Stream, Classes::TPersistent* RVData, int ItemNo, 
		int ParaNo, const AnsiString Name, TRVMultiDrawItemPart* Part);
	DYNAMIC void __fastcall SaveRTF(Classes::TStream* Stream, Classes::TPersistent* RVData, int ItemNo, 
		const 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);
	DYNAMIC void __fastcall MovingToUndoList(int ItemNo, System::TObject* RVData, System::TObject* AContainerUndoItem
		);
	DYNAMIC void __fastcall MovingFromUndoList(int ItemNo, System::TObject* RVData);
	DYNAMIC void __fastcall Inserted(System::TObject* RVData, bool Safe);
	DYNAMIC void __fastcall Focusing(void);
	virtual void __fastcall OnDocWidthChange(int DocWidth, Dlines::TRVDrawLineInfo* dli, bool Printing)
		;
public:
	#pragma option push -w-inl
	/* TCustomRVItemInfo.Create */ inline __fastcall virtual TRVControlItemInfo(Classes::TPersistent* RVData
		) : TRVRectItemInfo(RVData) { }
	#pragma option pop
	
};

#pragma pack(pop)

class DELPHICLASS TRVGraphicItemInfo;
#pragma pack(push, 4)
class 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);
	DYNAMIC void __fastcall Assign(TCustomRVItemInfo* Source);
	DYNAMIC 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);
	DYNAMIC void __fastcall SaveToHTML(Classes::TStream* Stream, Classes::TPersistent* RVData, int ItemNo
		, const AnsiString Text, const AnsiString Path, const AnsiString imgSavePrefix, int &imgSaveNo, Graphics::TColor 
		CurrentFileColor, Rvstyle::TRVSaveOptions SaveOptions, bool UseCSS, Rvclasses::TRVList* Bullets);
	DYNAMIC bool __fastcall ReadRVFLine(const AnsiString s, Classes::TPersistent* RVData, int ReadType, 
		int LineNo, AnsiString &Name, TRVFReadMode &ReadMode, TRVFReadState &ReadState);
	DYNAMIC void __fastcall SaveRVF(Classes::TStream* Stream, Classes::TPersistent* RVData, int ItemNo, 
		int ParaNo, const AnsiString Name, TRVMultiDrawItemPart* Part);
	DYNAMIC void __fastcall SaveRTF(Classes::TStream* Stream, Classes::TPersistent* RVData, int ItemNo, 
		const 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);
	DYNAMIC void __fastcall MovingToUndoList(int ItemNo, System::TObject* RVData, System::TObject* AContainerUndoItem
		);
public:
	#pragma option push -w-inl
	/* TCustomRVItemInfo.Create */ inline __fastcall virtual TRVGraphicItemInfo(Classes::TPersistent* RVData
		) : TRVRectItemInfo(RVData) { }
	#pragma option pop
	
};

#pragma pack(pop)

typedef TMetaClass*TRVGraphicItemInfoClass;

class DELPHICLASS TRVHotGraphicItemInfo;
#pragma pack(push, 4)
class 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);
	DYNAMIC void __fastcall Execute(Classes::TPersistent* RVData);
public:
	#pragma option push -w-inl
	/* TRVGraphicItemInfo.Destroy */ inline __fastcall virtual ~TRVHotGraphicItemInfo(void) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TCustomRVItemInfo.Create */ inline __fastcall virtual TRVHotGraphicItemInfo(Classes::TPersistent* 
		RVData) : TRVGraphicItemInfo(RVData) { }
	#pragma option pop
	
};

#pragma pack(pop)

class DELPHICLASS TRVBulletItemInfo;
#pragma pack(push, 4)
class PASCALIMPLEMENTATION TRVBulletItemInfo : public TRVRectItemInfo 
{
	typedef TRVRectItemInfo inherited;
	
protected:
	virtual int __fastcall GetHeight(void);
	virtual int __fastcall GetWidth(void);
	virtual int __fastcall GetImageIndex(bool Hot);
	DYNAMIC 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);
	DYNAMIC void __fastcall SaveToHTML(Classes::TStream* Stream, Classes::TPersistent* RVData, int ItemNo
		, const AnsiString Text, const AnsiString Path, const AnsiString imgSavePrefix, int &imgSaveNo, Graphics::TColor 
		CurrentFileColor, Rvstyle::TRVSaveOptions SaveOptions, bool UseCSS, Rvclasses::TRVList* Bullets);
	DYNAMIC 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);
	DYNAMIC bool __fastcall ReadRVFHeader(char * &P, Classes::TPersistent* RVData);
	DYNAMIC bool __fastcall ReadRVFLine(const AnsiString s, Classes::TPersistent* RVData, int ReadType, 
		int LineNo, AnsiString &Name, TRVFReadMode &ReadMode, TRVFReadState &ReadState);
	DYNAMIC void __fastcall SaveRVF(Classes::TStream* Stream, Classes::TPersistent* RVData, int ItemNo, 
		int ParaNo, const AnsiString Name, TRVMultiDrawItemPart* Part);
	DYNAMIC void __fastcall SaveRTF(Classes::TStream* Stream, Classes::TPersistent* RVData, int ItemNo, 
		const 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:
	#pragma option push -w-inl
	/* TCustomRVItemInfo.Create */ inline __fastcall virtual TRVBulletItemInfo(Classes::TPersistent* RVData
		) : TRVRectItemInfo(RVData) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TPersistent.Destroy */ inline __fastcall virtual ~TRVBulletItemInfo(void) { }
	#pragma option pop
	
};

#pragma pack(pop)

class DELPHICLASS TRVHotspotItemInfo;
#pragma pack(push, 4)
class PASCALIMPLEMENTATION TRVHotspotItemInfo : public TRVBulletItemInfo 
{
	typedef TRVBulletItemInfo inherited;
	
protected:
	virtual int __fastcall GetImageIndex(bool Hot);
	DYNAMIC AnsiString __fastcall SaveRVFHeaderTail(Classes::TPersistent* RVData);
	
public:
	int HotImageIndex;
	__fastcall TRVHotspotItemInfo(Classes::TPersistent* RVData, int AImageIndex, int AHotImageIndex, Controls::TImageList* 
		AImageList, Rvstyle::TRVVAlign AVAlign);
	DYNAMIC void __fastcall Assign(TCustomRVItemInfo* Source);
	DYNAMIC bool __fastcall ReadRVFHeader(char * &P, Classes::TPersistent* RVData);
	DYNAMIC void __fastcall SaveRVF(Classes::TStream* Stream, Classes::TPersistent* RVData, int ItemNo, 
		int ParaNo, const AnsiString Name, TRVMultiDrawItemPart* Part);
	virtual bool __fastcall GetBoolValueEx(TRVItemBoolPropertyEx Prop, Rvstyle::TRVStyle* RVStyle);
	DYNAMIC void __fastcall Execute(Classes::TPersistent* RVData);
public:
	#pragma option push -w-inl
	/* TCustomRVItemInfo.Create */ inline __fastcall virtual TRVHotspotItemInfo(Classes::TPersistent* RVData
		) : TRVBulletItemInfo(RVData) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TPersistent.Destroy */ inline __fastcall virtual ~TRVHotspotItemInfo(void) { }
	#pragma option pop
	
};

#pragma pack(pop)

class DELPHICLASS TRVBreakItemInfo;
#pragma pack(push, 4)
class PASCALIMPLEMENTATION TRVBreakItemInfo : public TRVFullLineItemInfo 
{
	typedef TRVFullLineItemInfo inherited;
	
protected:
	DYNAMIC AnsiString __fastcall SaveRVFHeaderTail(Classes::TPersistent* RVData);
	
public:
	Byte LineWidth;
	Rvstyle::TRVBreakStyle Style;
	Graphics::TColor Color;
	__fastcall TRVBreakItemInfo(Classes::TPersistent* RVData, Byte ALineWidth, Rvstyle::TRVBreakStyle AStyle
		, Graphics::TColor AColor);
	DYNAMIC 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);
	DYNAMIC AnsiString __fastcall AsText(int LineWidth, Classes::TPersistent* RVData, const AnsiString 
		Text, const AnsiString Path, bool TextOnly, bool Unicode);
	DYNAMIC void __fastcall SaveToHTML(Classes::TStream* Stream, Classes::TPersistent* RVData, int ItemNo
		, const AnsiString Text, const AnsiString Path, const AnsiString imgSavePrefix, int &imgSaveNo, Graphics::TColor 
		CurrentFileColor, Rvstyle::TRVSaveOptions SaveOptions, bool UseCSS, Rvclasses::TRVList* Bullets);
	DYNAMIC bool __fastcall ReadRVFHeader(char * &P, Classes::TPersistent* RVData);
	DYNAMIC void __fastcall SaveRVF(Classes::TStream* Stream, Classes::TPersistent* RVData, int ItemNo, 
		int ParaNo, const AnsiString Name, TRVMultiDrawItemPart* Part);
	DYNAMIC void __fastcall SaveRTF(Classes::TStream* Stream, Classes::TPersistent* RVData, int ItemNo, 
		const AnsiString Name, double TwipsPerPixel, int Level, Rvclasses::TRVColorList* ColorList, Rvclasses::TRVIntegerList* 
		StyleToFont, Rvclasses::TRVIntegerList* FontToStyle);
	DYNAMIC void __fastcall FillRTFColorTable(Rvclasses::TRVColorList* ColorList);
	virtual bool __fastcall GetBoolValue(TRVItemBoolProperty Prop);
public:
	#pragma option push -w-inl
	/* TCustomRVItemInfo.Create */ inline __fastcall virtual TRVBreakItemInfo(Classes::TPersistent* RVData
		) : TRVFullLineItemInfo(RVData) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TPersistent.Destroy */ inline __fastcall virtual ~TRVBreakItemInfo(void) { }
	#pragma option pop
	
};

#pragma pack(pop)

//-- var, const, procedure ---------------------------------------------------
extern PACKAGE TMetaClass*RichViewTextItemClass;
static const Shortint RVItemOptionsMask = 0xf;
extern PACKAGE void __fastcall RegisterRichViewItemClass(int StyleNo, TMetaClass* ItemClass);
extern PACKAGE TCustomRVItemInfo* __fastcall CreateRichViewItem(int StyleNo, Classes::TPersistent* RVData
	);
extern PACKAGE TCustomRVItemInfo* __fastcall RV_DuplicateItem(TCustomRVItemInfo* Source, Classes::TPersistent* 
	RVData, bool TagsArePChars);

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

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