//----------------------------------------------------------------------------
// RVUndo.hpp - bcbdcc32 generated hdr (DO NOT EDIT) rev: 0
// From: RVUndo.pas
//----------------------------------------------------------------------------
#ifndef RVUndoHPP
#define RVUndoHPP
//----------------------------------------------------------------------------
#include <RichView.hpp>
#include <RVRVData.hpp>
#include <CRVFData.hpp>
#include <CRVData.hpp>
#include <RVStyle.hpp>
#include <RVEdit.hpp>
#include <RVItem.hpp>
#include <RVClasses.hpp>
#include <Classes.hpp>
#include <SysUtils.hpp>
#include <System.hpp>
namespace Rvundo
{
//-- type declarations -------------------------------------------------------
enum TRVUndoAction { rvuDeleteItem, rvuDeleteItems, rvuDeleteSubstring, rvuInsertItem, rvuInsertItems, 
	rvuInsertSubstring, rvuNewLine, rvuBR, rvuPara, rvuPageBreak, rvuTyping, rvuTag, rvuStyleNo, rvuCheckpoint, 
	rvuModifyItem, rvuChangeText, rvuChangeVAlign };

class __declspec(delphiclass) TRVUndoInfo;
class __declspec(delphiclass) TRVUndoList;
class __declspec(pascalimplementation) TRVUndoList : public Rvclasses::TRVList
{
	typedef Rvclasses::TRVList inherited;
	
private:
	int FReformatLock;
	void __fastcall Pop(void);
	
public:
	Crvfdata::TCustomRVFormattedData* FRVData;
	int Limit;
	int GroupModeCount;
	__fastcall TRVUndoList(Crvfdata::TCustomRVFormattedData* ARVData);
	void __fastcall PopIfEmpty(void);
	bool __fastcall BeginItem(Rvedit::TRVUndoType UndoType, const System::AnsiString Caption, int CaretItemNo
		, int CaretOffs);
	void __fastcall EndItem(void);
	void __fastcall AddInfo(TRVUndoInfo* Info);
	void __fastcall AddTyping(int CaretItemNo, int CaretOffs, bool Unicode);
	void __fastcall AddUntyping(const System::AnsiString c, int CaretItemNo, int CaretOffs);
	void __fastcall Undo(Rvrvdata::TRichViewRVData* RVData);
	void __fastcall Redo(Rvrvdata::TRichViewRVData* RVData);
	Rvedit::TRVUndoType __fastcall CurrentUndoType(void);
	System::AnsiString __fastcall CurrentUndoCaption(void);
	void __fastcall LockRFR(void);
	void __fastcall UnlockRFR(void);
public:
	/* TRVList.Destroy */ __fastcall virtual ~TRVUndoList(void) { }
	
};

class __declspec(pascalimplementation) TRVUndoInfo : public System::TObject
{
	typedef System::TObject inherited;
	
public:
	TRVUndoAction Action;
	TRVUndoList* FUndoList;
	__fastcall virtual TRVUndoInfo(void);
	virtual bool __fastcall RequiresFullReformat1(Rvrvdata::TRichViewRVData* RVData);
	virtual bool __fastcall RequiresFullReformat2(Rvrvdata::TRichViewRVData* RVData);
	virtual bool __fastcall RequiresFormat(void);
	virtual void __fastcall Undo(Rvrvdata::TRichViewRVData* RVData);
	virtual void __fastcall SetItemsRange(int &StartItem, int &EndItem, Rvrvdata::TRichViewRVData* RVData
		);
	virtual int __fastcall ItemsAdded(void);
	Crvfdata::TCustomRVFormattedData* __fastcall GetUndoListOwnerRVData(void);
public:
	/* TObject.Destroy */ __fastcall virtual ~TRVUndoInfo(void) { }
	
};

typedef System::TMetaClass*TRVUndoInfoClass;

class __declspec(delphiclass) TRVUndoItemNoInfo;
class __declspec(pascalimplementation) TRVUndoItemNoInfo : public TRVUndoInfo
{
	typedef TRVUndoInfo inherited;
	
public:
	int ItemNo;
	int LastAffectedItemNo;
	__fastcall virtual TRVUndoItemNoInfo(void);
	virtual void __fastcall SetItemsRange(int &StartItem, int &EndItem, Rvrvdata::TRichViewRVData* RVData
		);
public:
	/* TObject.Destroy */ __fastcall virtual ~TRVUndoItemNoInfo(void) { }
	
};

class __declspec(delphiclass) TRVUndoChangeVAlignInfo;
class __declspec(pascalimplementation) TRVUndoChangeVAlignInfo : public TRVUndoItemNoInfo
{
	typedef TRVUndoItemNoInfo inherited;
	
public:
	TRVVAlign VAlign;
	virtual void __fastcall Undo(Rvrvdata::TRichViewRVData* RVData);
public:
	/* TRVUndoItemNoInfo.Create */ __fastcall virtual TRVUndoChangeVAlignInfo(void) : Rvundo::TRVUndoItemNoInfo(
		) { }
	
public:
	/* TObject.Destroy */ __fastcall virtual ~TRVUndoChangeVAlignInfo(void) { }
	
};

class __declspec(delphiclass) TRVUndoResizeInfo;
class __declspec(pascalimplementation) TRVUndoResizeInfo : public TRVUndoItemNoInfo
{
	typedef TRVUndoItemNoInfo inherited;
	
private:
	int OldWidth;
	
public:
	int Width;
	int Height;
	virtual bool __fastcall RequiresFullReformat2(Rvrvdata::TRichViewRVData* RVData);
	virtual void __fastcall Undo(Rvrvdata::TRichViewRVData* RVData);
public:
	/* TRVUndoItemNoInfo.Create */ __fastcall virtual TRVUndoResizeInfo(void) : Rvundo::TRVUndoItemNoInfo(
		) { }
	
public:
	/* TObject.Destroy */ __fastcall virtual ~TRVUndoResizeInfo(void) { }
	
};

class __declspec(delphiclass) TRVUndoStringInfo;
class __declspec(pascalimplementation) TRVUndoStringInfo : public TRVUndoItemNoInfo
{
	typedef TRVUndoItemNoInfo inherited;
	
public:
	System::AnsiString s;
public:
	/* TRVUndoItemNoInfo.Create */ __fastcall virtual TRVUndoStringInfo(void) : Rvundo::TRVUndoItemNoInfo(
		) { }
	
public:
	/* TObject.Destroy */ __fastcall virtual ~TRVUndoStringInfo(void) { }
	
};

class __declspec(delphiclass) TRVUndoChangeTextInfo;
class __declspec(pascalimplementation) TRVUndoChangeTextInfo : public TRVUndoStringInfo
{
	typedef TRVUndoStringInfo inherited;
	
private:
	int OldWidth;
	
public:
	virtual void __fastcall Undo(Rvrvdata::TRichViewRVData* RVData);
	virtual bool __fastcall RequiresFullReformat2(Rvrvdata::TRichViewRVData* RVData);
public:
	/* TRVUndoItemNoInfo.Create */ __fastcall virtual TRVUndoChangeTextInfo(void) : Rvundo::TRVUndoStringInfo(
		) { }
	
public:
	/* TObject.Destroy */ __fastcall virtual ~TRVUndoChangeTextInfo(void) { }
	
};

class __declspec(delphiclass) TRVUndoSubStringInfo;
class __declspec(pascalimplementation) TRVUndoSubStringInfo : public TRVUndoStringInfo
{
	typedef TRVUndoStringInfo inherited;
	
public:
	int Index;
public:
	/* TRVUndoItemNoInfo.Create */ __fastcall virtual TRVUndoSubStringInfo(void) : Rvundo::TRVUndoStringInfo(
		) { }
	
public:
	/* TObject.Destroy */ __fastcall virtual ~TRVUndoSubStringInfo(void) { }
	
};

class __declspec(delphiclass) TRVUndoItemInfo;
class __declspec(pascalimplementation) TRVUndoItemInfo : public TRVUndoStringInfo
{
	typedef TRVUndoStringInfo inherited;
	
public:
	Rvitem::TCustomRVItemInfo* Item;
	__fastcall virtual ~TRVUndoItemInfo(void);
public:
	/* TRVUndoItemNoInfo.Create */ __fastcall virtual TRVUndoItemInfo(void) : Rvundo::TRVUndoStringInfo(
		) { }
	
};

class __declspec(delphiclass) TRVUndoStringItemListInfo;
class __declspec(pascalimplementation) TRVUndoStringItemListInfo : public TRVUndoInfo
{
	typedef TRVUndoInfo inherited;
	
public:
	Classes::TStringList* List;
	__fastcall virtual TRVUndoStringItemListInfo(void);
	__fastcall virtual ~TRVUndoStringItemListInfo(void);
};

class __declspec(delphiclass) TRVUndoItemRangeInfo;
class __declspec(pascalimplementation) TRVUndoItemRangeInfo : public TRVUndoStringItemListInfo
{
	typedef TRVUndoStringItemListInfo inherited;
	
public:
	int StartItemNo;
	int LastAffectedItemNo;
	__fastcall virtual TRVUndoItemRangeInfo(void);
	virtual void __fastcall SetItemsRange(int &StartItem, int &EndItem, Rvrvdata::TRichViewRVData* RVData
		);
public:
	/* TRVUndoStringItemListInfo.Destroy */ __fastcall virtual ~TRVUndoItemRangeInfo(void) { }
	
};

class __declspec(delphiclass) TRVUndoListInfo;
class __declspec(pascalimplementation) TRVUndoListInfo : public TRVUndoInfo
{
	typedef TRVUndoInfo inherited;
	
public:
	Classes::TList* List;
	__fastcall virtual TRVUndoListInfo(void);
	__fastcall virtual ~TRVUndoListInfo(void);
};

class __declspec(delphiclass) TRVUndoParaListInfo;
class __declspec(pascalimplementation) TRVUndoParaListInfo : public TRVUndoListInfo
{
	typedef TRVUndoListInfo inherited;
	
private:
	bool FR;
	
public:
	int StartItemNo;
	virtual bool __fastcall RequiresFullReformat2(Rvrvdata::TRichViewRVData* RVData);
	virtual void __fastcall Undo(Rvrvdata::TRichViewRVData* RVData);
	virtual void __fastcall SetItemsRange(int &StartItem, int &EndItem, Rvrvdata::TRichViewRVData* RVData
		);
public:
	/* TRVUndoListInfo.Create */ __fastcall virtual TRVUndoParaListInfo(void) : Rvundo::TRVUndoListInfo(
		) { }
	/* TRVUndoListInfo.Destroy */ __fastcall virtual ~TRVUndoParaListInfo(void) { }
	
};

class __declspec(delphiclass) TRVUndoParaInfo;
class __declspec(pascalimplementation) TRVUndoParaInfo : public TRVUndoItemNoInfo
{
	typedef TRVUndoItemNoInfo inherited;
	
private:
	bool FR;
	
public:
	int ParaNo;
	int Count;
	virtual bool __fastcall RequiresFullReformat2(Rvrvdata::TRichViewRVData* RVData);
	virtual void __fastcall Undo(Rvrvdata::TRichViewRVData* RVData);
	virtual void __fastcall SetItemsRange(int &StartItem, int &EndItem, Rvrvdata::TRichViewRVData* RVData
		);
public:
	/* TRVUndoItemNoInfo.Create */ __fastcall virtual TRVUndoParaInfo(void) : Rvundo::TRVUndoItemNoInfo(
		) { }
	
public:
	/* TObject.Destroy */ __fastcall virtual ~TRVUndoParaInfo(void) { }
	
};

class __declspec(delphiclass) TRVUndoStyleNoInfo;
class __declspec(pascalimplementation) TRVUndoStyleNoInfo : public TRVUndoItemNoInfo
{
	typedef TRVUndoItemNoInfo inherited;
	
private:
	int OldWidth;
	
public:
	int WasStyleNo;
	virtual void __fastcall Undo(Rvrvdata::TRichViewRVData* RVData);
	virtual bool __fastcall RequiresFullReformat2(Rvrvdata::TRichViewRVData* RVData);
public:
	/* TRVUndoItemNoInfo.Create */ __fastcall virtual TRVUndoStyleNoInfo(void) : Rvundo::TRVUndoItemNoInfo(
		) { }
	
public:
	/* TObject.Destroy */ __fastcall virtual ~TRVUndoStyleNoInfo(void) { }
	
};

class __declspec(delphiclass) TRVUndoDeleteItemInfo;
class __declspec(pascalimplementation) TRVUndoDeleteItemInfo : public TRVUndoItemInfo
{
	typedef TRVUndoItemInfo inherited;
	
private:
	bool FR;
	
public:
	virtual bool __fastcall RequiresFullReformat2(Rvrvdata::TRichViewRVData* RVData);
	virtual void __fastcall Undo(Rvrvdata::TRichViewRVData* RVData);
	virtual int __fastcall ItemsAdded(void);
public:
	/* TRVUndoItemInfo.Destroy */ __fastcall virtual ~TRVUndoDeleteItemInfo(void) { }
	
public:
	/* TRVUndoItemNoInfo.Create */ __fastcall virtual TRVUndoDeleteItemInfo(void) : Rvundo::TRVUndoItemInfo(
		) { }
	
};

class __declspec(delphiclass) TRVUndoModifyItemInfo;
class __declspec(pascalimplementation) TRVUndoModifyItemInfo : public TRVUndoItemInfo
{
	typedef TRVUndoItemInfo inherited;
	
public:
	virtual bool __fastcall RequiresFullReformat1(Rvrvdata::TRichViewRVData* RVData);
	virtual void __fastcall Undo(Rvrvdata::TRichViewRVData* RVData);
public:
	/* TRVUndoItemInfo.Destroy */ __fastcall virtual ~TRVUndoModifyItemInfo(void) { }
	
public:
	/* TRVUndoItemNoInfo.Create */ __fastcall virtual TRVUndoModifyItemInfo(void) : Rvundo::TRVUndoItemInfo(
		) { }
	
};

class __declspec(delphiclass) TRVUndoNewLineInfo;
class __declspec(pascalimplementation) TRVUndoNewLineInfo : public TRVUndoItemNoInfo
{
	typedef TRVUndoItemNoInfo inherited;
	
private:
	bool FR;
	
public:
	bool WasSameAsPrev;
	int WasParaNo;
	virtual bool __fastcall RequiresFullReformat2(Rvrvdata::TRichViewRVData* RVData);
	virtual void __fastcall Undo(Rvrvdata::TRichViewRVData* RVData);
public:
	/* TRVUndoItemNoInfo.Create */ __fastcall virtual TRVUndoNewLineInfo(void) : Rvundo::TRVUndoItemNoInfo(
		) { }
	
public:
	/* TObject.Destroy */ __fastcall virtual ~TRVUndoNewLineInfo(void) { }
	
};

class __declspec(delphiclass) TRVUndoBRInfo;
class __declspec(pascalimplementation) TRVUndoBRInfo : public TRVUndoItemNoInfo
{
	typedef TRVUndoItemNoInfo inherited;
	
public:
	bool WasBR;
	virtual void __fastcall Undo(Rvrvdata::TRichViewRVData* RVData);
public:
	/* TRVUndoItemNoInfo.Create */ __fastcall virtual TRVUndoBRInfo(void) : Rvundo::TRVUndoItemNoInfo()
		 { }
	
public:
	/* TObject.Destroy */ __fastcall virtual ~TRVUndoBRInfo(void) { }
	
};

class __declspec(delphiclass) TRVUndoPageBreakInfo;
class __declspec(pascalimplementation) TRVUndoPageBreakInfo : public TRVUndoItemNoInfo
{
	typedef TRVUndoItemNoInfo inherited;
	
public:
	bool WasPageBreak;
	virtual void __fastcall Undo(Rvrvdata::TRichViewRVData* RVData);
public:
	/* TRVUndoItemNoInfo.Create */ __fastcall virtual TRVUndoPageBreakInfo(void) : Rvundo::TRVUndoItemNoInfo(
		) { }
	
public:
	/* TObject.Destroy */ __fastcall virtual ~TRVUndoPageBreakInfo(void) { }
	
};

class __declspec(delphiclass) TRVUndoDeleteItemsInfo;
class __declspec(pascalimplementation) TRVUndoDeleteItemsInfo : public TRVUndoItemRangeInfo
{
	typedef TRVUndoItemRangeInfo inherited;
	
private:
	int EndItemNo;
	bool FR;
	
public:
	virtual bool __fastcall RequiresFullReformat2(Rvrvdata::TRichViewRVData* RVData);
	virtual void __fastcall Undo(Rvrvdata::TRichViewRVData* RVData);
	virtual int __fastcall ItemsAdded(void);
public:
	/* TRVUndoItemRangeInfo.Create */ __fastcall virtual TRVUndoDeleteItemsInfo(void) : Rvundo::TRVUndoItemRangeInfo(
		) { }
	
public:
	/* TRVUndoStringItemListInfo.Destroy */ __fastcall virtual ~TRVUndoDeleteItemsInfo(void) { }
	
};

class __declspec(delphiclass) TRVUndoDeleteSubstringInfo;
class __declspec(pascalimplementation) TRVUndoDeleteSubstringInfo : public TRVUndoSubStringInfo
{
	typedef TRVUndoSubStringInfo inherited;
	
private:
	int OldWidth;
	
public:
	virtual void __fastcall Undo(Rvrvdata::TRichViewRVData* RVData);
	virtual bool __fastcall RequiresFullReformat2(Rvrvdata::TRichViewRVData* RVData);
public:
	/* TRVUndoItemNoInfo.Create */ __fastcall virtual TRVUndoDeleteSubstringInfo(void) : Rvundo::TRVUndoSubStringInfo(
		) { }
	
public:
	/* TObject.Destroy */ __fastcall virtual ~TRVUndoDeleteSubstringInfo(void) { }
	
};

class __declspec(delphiclass) TRVUndoInsertSubstringInfo;
class __declspec(pascalimplementation) TRVUndoInsertSubstringInfo : public TRVUndoItemNoInfo
{
	typedef TRVUndoItemNoInfo inherited;
	
private:
	int OldWidth;
	
public:
	int Index;
	int Length;
	virtual void __fastcall Undo(Rvrvdata::TRichViewRVData* RVData);
	virtual bool __fastcall RequiresFullReformat2(Rvrvdata::TRichViewRVData* RVData);
public:
	/* TRVUndoItemNoInfo.Create */ __fastcall virtual TRVUndoInsertSubstringInfo(void) : Rvundo::TRVUndoItemNoInfo(
		) { }
	
public:
	/* TObject.Destroy */ __fastcall virtual ~TRVUndoInsertSubstringInfo(void) { }
	
};

class __declspec(delphiclass) TRVRedoTypingInfo;
class __declspec(pascalimplementation) TRVRedoTypingInfo : public TRVUndoSubStringInfo
{
	typedef TRVUndoSubStringInfo inherited;
	
private:
	int OldWidth;
	
public:
	bool Unicode;
	virtual void __fastcall Undo(Rvrvdata::TRichViewRVData* RVData);
	virtual bool __fastcall RequiresFullReformat2(Rvrvdata::TRichViewRVData* RVData);
public:
	/* TRVUndoItemNoInfo.Create */ __fastcall virtual TRVRedoTypingInfo(void) : Rvundo::TRVUndoSubStringInfo(
		) { }
	
public:
	/* TObject.Destroy */ __fastcall virtual ~TRVRedoTypingInfo(void) { }
	
};

class __declspec(delphiclass) TRVUndoTypingInfo;
class __declspec(pascalimplementation) TRVUndoTypingInfo : public TRVUndoInsertSubstringInfo
{
	typedef TRVUndoInsertSubstringInfo inherited;
	
private:
	int OldWidth;
	
public:
	bool Unicode;
	virtual void __fastcall Undo(Rvrvdata::TRichViewRVData* RVData);
	virtual bool __fastcall RequiresFullReformat2(Rvrvdata::TRichViewRVData* RVData);
public:
	/* TRVUndoItemNoInfo.Create */ __fastcall virtual TRVUndoTypingInfo(void) : Rvundo::TRVUndoInsertSubstringInfo(
		) { }
	
public:
	/* TObject.Destroy */ __fastcall virtual ~TRVUndoTypingInfo(void) { }
	
};

class __declspec(delphiclass) TRVUndoInsertItemsInfo;
class __declspec(pascalimplementation) TRVUndoInsertItemsInfo : public TRVUndoItemNoInfo
{
	typedef TRVUndoItemNoInfo inherited;
	
private:
	bool FR;
	
public:
	int Count;
	virtual bool __fastcall RequiresFullReformat1(Rvrvdata::TRichViewRVData* RVData);
	virtual bool __fastcall RequiresFullReformat2(Rvrvdata::TRichViewRVData* RVData);
	virtual void __fastcall Undo(Rvrvdata::TRichViewRVData* RVData);
	virtual int __fastcall ItemsAdded(void);
public:
	/* TRVUndoItemNoInfo.Create */ __fastcall virtual TRVUndoInsertItemsInfo(void) : Rvundo::TRVUndoItemNoInfo(
		) { }
	
public:
	/* TObject.Destroy */ __fastcall virtual ~TRVUndoInsertItemsInfo(void) { }
	
};

class __declspec(delphiclass) TRVUndoInsertItemInfo;
class __declspec(pascalimplementation) TRVUndoInsertItemInfo : public TRVUndoItemNoInfo
{
	typedef TRVUndoItemNoInfo inherited;
	
private:
	bool FR;
	
public:
	virtual bool __fastcall RequiresFullReformat1(Rvrvdata::TRichViewRVData* RVData);
	virtual bool __fastcall RequiresFullReformat2(Rvrvdata::TRichViewRVData* RVData);
	virtual void __fastcall Undo(Rvrvdata::TRichViewRVData* RVData);
	virtual int __fastcall ItemsAdded(void);
public:
	/* TRVUndoItemNoInfo.Create */ __fastcall virtual TRVUndoInsertItemInfo(void) : Rvundo::TRVUndoItemNoInfo(
		) { }
	
public:
	/* TObject.Destroy */ __fastcall virtual ~TRVUndoInsertItemInfo(void) { }
	
};

class __declspec(delphiclass) TRVUndoTagInfo;
class __declspec(pascalimplementation) TRVUndoTagInfo : public TRVUndoItemNoInfo
{
	typedef TRVUndoItemNoInfo inherited;
	
public:
	int WasTag;
	bool TagsArePChars;
	virtual bool __fastcall RequiresFormat(void);
	virtual void __fastcall Undo(Rvrvdata::TRichViewRVData* RVData);
	__fastcall virtual ~TRVUndoTagInfo(void);
public:
	/* TRVUndoItemNoInfo.Create */ __fastcall virtual TRVUndoTagInfo(void) : Rvundo::TRVUndoItemNoInfo(
		) { }
	
};

class __declspec(delphiclass) TRVUndoAddCPInfo;
class __declspec(pascalimplementation) TRVUndoAddCPInfo : public TRVUndoItemNoInfo
{
	typedef TRVUndoItemNoInfo inherited;
	
public:
	virtual void __fastcall Undo(Rvrvdata::TRichViewRVData* RVData);
public:
	/* TRVUndoItemNoInfo.Create */ __fastcall virtual TRVUndoAddCPInfo(void) : Rvundo::TRVUndoItemNoInfo(
		) { }
	
public:
	/* TObject.Destroy */ __fastcall virtual ~TRVUndoAddCPInfo(void) { }
	
};

class __declspec(delphiclass) TRVUndoDeleteCPInfo;
class __declspec(pascalimplementation) TRVUndoDeleteCPInfo : public TRVUndoItemNoInfo
{
	typedef TRVUndoItemNoInfo inherited;
	
public:
	Rvitem::TRVCPInfo* Checkpoint;
	bool TagsArePChars;
	virtual void __fastcall Undo(Rvrvdata::TRichViewRVData* RVData);
	__fastcall virtual ~TRVUndoDeleteCPInfo(void);
public:
	/* TRVUndoItemNoInfo.Create */ __fastcall virtual TRVUndoDeleteCPInfo(void) : Rvundo::TRVUndoItemNoInfo(
		) { }
	
};

class __declspec(delphiclass) TRVUndoModifyItemProps;
class __declspec(pascalimplementation) TRVUndoModifyItemProps : public TRVUndoItemNoInfo
{
	typedef TRVUndoItemNoInfo inherited;
	
private:
	int OldW;
	
public:
	bool AffectWidth;
	bool AffectSize;
	System::TObject* SubObject;
	virtual System::TMetaClass* __fastcall GetOppositeClass(void);
	virtual bool __fastcall RequiresFormat(void);
	virtual bool __fastcall RequiresFullReformat1(Rvrvdata::TRichViewRVData* RVData);
	virtual bool __fastcall RequiresFullReformat2(Rvrvdata::TRichViewRVData* RVData);
	virtual void __fastcall SetOppositeUndoInfoProps(TRVUndoModifyItemProps* UndoInfo);
public:
	/* TRVUndoItemNoInfo.Create */ __fastcall virtual TRVUndoModifyItemProps(void) : Rvundo::TRVUndoItemNoInfo(
		) { }
	
public:
	/* TObject.Destroy */ __fastcall virtual ~TRVUndoModifyItemProps(void) { }
	
};

class __declspec(delphiclass) TRVUndoModifyItemTerminator;
class __declspec(pascalimplementation) TRVUndoModifyItemTerminator : public TRVUndoModifyItemProps
{
	typedef TRVUndoModifyItemProps inherited;
	
public:
	bool Opening;
	__fastcall virtual TRVUndoModifyItemTerminator(void);
	virtual void __fastcall Undo(Rvrvdata::TRichViewRVData* RVData);
public:
	/* TObject.Destroy */ __fastcall virtual ~TRVUndoModifyItemTerminator(void) { }
	
};

class __declspec(delphiclass) TRVUndoModifyItemIntProperty;
class __declspec(pascalimplementation) TRVUndoModifyItemIntProperty : public TRVUndoModifyItemProps
{
	typedef TRVUndoModifyItemProps inherited;
	
public:
	System::AnsiString PropertyName;
	long Value;
	virtual void __fastcall Undo(Rvrvdata::TRichViewRVData* RVData);
public:
	/* TRVUndoItemNoInfo.Create */ __fastcall virtual TRVUndoModifyItemIntProperty(void) : Rvundo::TRVUndoModifyItemProps(
		) { }
	
public:
	/* TObject.Destroy */ __fastcall virtual ~TRVUndoModifyItemIntProperty(void) { }
	
};

class __declspec(delphiclass) TRVUndoModifyItemIntProperties;
class __declspec(pascalimplementation) TRVUndoModifyItemIntProperties : public TRVUndoModifyItemProps
	
{
	typedef TRVUndoModifyItemProps inherited;
	
public:
	Classes::TStringList* PropList;
	__fastcall virtual TRVUndoModifyItemIntProperties(void);
	__fastcall virtual ~TRVUndoModifyItemIntProperties(void);
	virtual void __fastcall Undo(Rvrvdata::TRichViewRVData* RVData);
};

class __declspec(delphiclass) TRVCompositeUndo;
class __declspec(pascalimplementation) TRVCompositeUndo : public TRVUndoInfo
{
	typedef TRVUndoInfo inherited;
	
public:
	int ItemNo;
	bool IsRedo;
	TRVUndoList* UndoList;
	__fastcall virtual TRVCompositeUndo(void);
	__fastcall virtual ~TRVCompositeUndo(void);
	virtual void __fastcall Undo(Rvrvdata::TRichViewRVData* RVData);
	virtual void __fastcall SetItemsRange(int &StartItem, int &EndItem, Rvrvdata::TRichViewRVData* RVData
		);
	virtual bool __fastcall RequiresFormat(void);
};

class __declspec(delphiclass) TRVUndoInfos;
class __declspec(pascalimplementation) TRVUndoInfos : public Rvclasses::TRVList
{
	typedef Rvclasses::TRVList inherited;
	
private:
	void __fastcall PerformUndo(Rvrvdata::TRichViewRVData* RVData, bool Reformat);
	
public:
	System::AnsiString Caption;
	TRVUndoType UndoType;
	int CaretItemNo;
	int CaretOffs;
	void __fastcall Undo(Rvrvdata::TRichViewRVData* RVData, bool Reformat);
	void __fastcall Redo(Rvrvdata::TRichViewRVData* RVData, bool Reformat);
	bool __fastcall CanDelete(void);
public:
	/* TRVList.Destroy */ __fastcall virtual ~TRVUndoInfos(void) { }
	
public:
	/* TObject.Create */ __fastcall TRVUndoInfos(void) : Rvclasses::TRVList() { }
	
};

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

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