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

// (DO NOT EDIT: machine generated header) 'RVUndo.pas' rev: 3.00

#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 <SysInit.hpp>
#include <System.hpp>

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

namespace Rvundo
{
//-- type declarations -------------------------------------------------------
enum TRVUndoAction { rvuDeleteItem, rvuDeleteItems, rvuDeleteSubstring, rvuInsertItem, rvuInsertItems, 
	rvuInsertSubstring, rvuNewLine, rvuBR, rvuPara, rvuPageBreak, rvuTyping, rvuTag, rvuStyleNo, rvuCheckpoint, 
	rvuModifyItem, rvuChangeText, rvuChangeVAlign };

class DELPHICLASS TRVUndoInfo;
class DELPHICLASS TRVUndoList;
class 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 PASCALIMPLEMENTATION TRVUndoInfo : public System::TObject 
{
	typedef System::TObject inherited;
	
public:
	TRVUndoAction Action;
	TRVUndoList* FUndoList;
	__fastcall virtual TRVUndoInfo(void);
	DYNAMIC bool __fastcall RequiresFullReformat1(Rvrvdata::TRichViewRVData* RVData);
	DYNAMIC bool __fastcall RequiresFullReformat2(Rvrvdata::TRichViewRVData* RVData);
	DYNAMIC bool __fastcall RequiresFormat(void);
	DYNAMIC void __fastcall Undo(Rvrvdata::TRichViewRVData* RVData) = 0;
	DYNAMIC void __fastcall SetItemsRange(int &StartItem, int &EndItem, Rvrvdata::TRichViewRVData* RVData
		);
	DYNAMIC int __fastcall ItemsAdded(void);
	Crvfdata::TCustomRVFormattedData* __fastcall GetUndoListOwnerRVData(void);
public:
	/* TObject.Destroy */ __fastcall virtual ~TRVUndoInfo(void) { }
	
};

typedef System::TMetaClass*TRVUndoInfoClass;

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

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

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

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

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

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

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

class DELPHICLASS TRVUndoStringItemListInfo;
class PASCALIMPLEMENTATION TRVUndoStringItemListInfo : public Rvundo::TRVUndoInfo 
{
	typedef Rvundo::TRVUndoInfo inherited;
	
public:
	Classes::TStringList* List;
	__fastcall virtual TRVUndoStringItemListInfo(void);
	__fastcall virtual ~TRVUndoStringItemListInfo(void);
};

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

class DELPHICLASS TRVUndoListInfo;
class PASCALIMPLEMENTATION TRVUndoListInfo : public Rvundo::TRVUndoInfo 
{
	typedef Rvundo::TRVUndoInfo inherited;
	
public:
	Classes::TList* List;
	__fastcall virtual TRVUndoListInfo(void);
	__fastcall virtual ~TRVUndoListInfo(void);
};

class DELPHICLASS TRVUndoParaListInfo;
class PASCALIMPLEMENTATION TRVUndoParaListInfo : public Rvundo::TRVUndoListInfo 
{
	typedef Rvundo::TRVUndoListInfo inherited;
	
private:
	bool FR;
	
public:
	int StartItemNo;
	DYNAMIC bool __fastcall RequiresFullReformat2(Rvrvdata::TRichViewRVData* RVData);
	DYNAMIC void __fastcall Undo(Rvrvdata::TRichViewRVData* RVData);
	DYNAMIC 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 DELPHICLASS TRVUndoParaInfo;
class PASCALIMPLEMENTATION TRVUndoParaInfo : public Rvundo::TRVUndoItemNoInfo 
{
	typedef Rvundo::TRVUndoItemNoInfo inherited;
	
private:
	bool FR;
	
public:
	int ParaNo;
	int Count;
	DYNAMIC bool __fastcall RequiresFullReformat2(Rvrvdata::TRichViewRVData* RVData);
	DYNAMIC void __fastcall Undo(Rvrvdata::TRichViewRVData* RVData);
	DYNAMIC 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 DELPHICLASS TRVUndoStyleNoInfo;
class PASCALIMPLEMENTATION TRVUndoStyleNoInfo : public Rvundo::TRVUndoItemNoInfo 
{
	typedef Rvundo::TRVUndoItemNoInfo inherited;
	
private:
	int OldWidth;
	
public:
	int WasStyleNo;
	DYNAMIC void __fastcall Undo(Rvrvdata::TRichViewRVData* RVData);
	DYNAMIC bool __fastcall RequiresFullReformat2(Rvrvdata::TRichViewRVData* RVData);
public:
	/* TRVUndoItemNoInfo.Create */ __fastcall virtual TRVUndoStyleNoInfo(void) : Rvundo::TRVUndoItemNoInfo(
		) { }
	
public:
	/* TObject.Destroy */ __fastcall virtual ~TRVUndoStyleNoInfo(void) { }
	
};

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

class DELPHICLASS TRVUndoModifyItemTerminator;
class PASCALIMPLEMENTATION TRVUndoModifyItemTerminator : public Rvundo::TRVUndoModifyItemProps 
{
	typedef Rvundo::TRVUndoModifyItemProps inherited;
	
public:
	bool Opening;
	__fastcall virtual TRVUndoModifyItemTerminator(void);
	DYNAMIC void __fastcall Undo(Rvrvdata::TRichViewRVData* RVData);
public:
	/* TObject.Destroy */ __fastcall virtual ~TRVUndoModifyItemTerminator(void) { }
	
};

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

class DELPHICLASS TRVUndoModifyItemIntProperties;
class PASCALIMPLEMENTATION TRVUndoModifyItemIntProperties : public Rvundo::TRVUndoModifyItemProps 
{
	typedef Rvundo::TRVUndoModifyItemProps inherited;
	
public:
	Classes::TStringList* PropList;
	__fastcall virtual TRVUndoModifyItemIntProperties(void);
	__fastcall virtual ~TRVUndoModifyItemIntProperties(void);
	DYNAMIC void __fastcall Undo(Rvrvdata::TRichViewRVData* RVData);
};

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

class DELPHICLASS TRVUndoInfos;
class 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
