// CodeGear C++Builder
// Copyright (c) 1995, 2008 by CodeGear
// All rights reserved

// (DO NOT EDIT: machine generated header) 'Rvundo.pas' rev: 20.00

#ifndef RvundoHPP
#define RvundoHPP

#pragma delphiheader begin
#pragma option push
#pragma option -w-      // All warnings off
#pragma option -Vx      // Zero-length empty class member functions
#pragma pack(push,8)
#include <System.hpp>	// Pascal unit
#include <Sysinit.hpp>	// Pascal unit
#include <Sysutils.hpp>	// Pascal unit
#include <Classes.hpp>	// Pascal unit
#include <Rvclasses.hpp>	// Pascal unit
#include <Rvitem.hpp>	// Pascal unit
#include <Rvedit.hpp>	// Pascal unit
#include <Rvstyle.hpp>	// Pascal unit
#include <Crvdata.hpp>	// Pascal unit
#include <Crvfdata.hpp>	// Pascal unit
#include <Rvrvdata.hpp>	// Pascal unit
#include <Richview.hpp>	// Pascal unit
#include <Rvtypes.hpp>	// Pascal unit

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

namespace Rvundo
{
//-- type declarations -------------------------------------------------------
#pragma option push -b-
enum TRVUndoAction { rvuMisc, rvuDeleteItem, rvuDeleteItems, rvuDeleteSubstring, rvuInsertItem, rvuInsertItems, rvuInsertSubstring, rvuNewLine, rvuBR, rvuPara, rvuPageBreak, rvuTyping, rvuTag, rvuStyleNo, rvuCheckpoint, rvuModifyItem, rvuChangeText, rvuChangeVAlign, rvuChangeListMarker };
#pragma option pop

class DELPHICLASS TRVUndoInfo;
class DELPHICLASS TRVUndoList;
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 bool __fastcall RequiresSuperFormat(void);
	DYNAMIC bool __fastcall RequiresFormattedDocBefore(void);
	DYNAMIC void __fastcall Undo(Rvrvdata::TRichViewRVData* RVData);
	DYNAMIC void __fastcall SetItemsRange(int &StartItem, int &EndItem, Rvrvdata::TRichViewRVData* RVData);
	DYNAMIC int __fastcall ItemsAdded(void);
	Crvfdata::TCustomRVFormattedData* __fastcall GetUndoListOwnerRVData(void);
public:
	/* TObject.Destroy */ inline __fastcall virtual ~TRVUndoInfo(void) { }
	
};


typedef TMetaClass* TRVUndoInfoClass;

class DELPHICLASS TRVUndoItemNoInfo;
class PASCALIMPLEMENTATION TRVUndoItemNoInfo : public TRVUndoInfo
{
	typedef 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 */ inline __fastcall virtual ~TRVUndoItemNoInfo(void) { }
	
};


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


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


class DELPHICLASS TRVUndoResizeInfo;
class PASCALIMPLEMENTATION TRVUndoResizeInfo : public TRVUndoItemNoInfo
{
	typedef 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 */ inline __fastcall virtual TRVUndoResizeInfo(void) : TRVUndoItemNoInfo() { }
	
public:
	/* TObject.Destroy */ inline __fastcall virtual ~TRVUndoResizeInfo(void) { }
	
};


class DELPHICLASS TRVUndoRawStringInfo;
class PASCALIMPLEMENTATION TRVUndoRawStringInfo : public TRVUndoItemNoInfo
{
	typedef TRVUndoItemNoInfo inherited;
	
public:
	Rvtypes::TRVRawByteString s;
public:
	/* TRVUndoItemNoInfo.Create */ inline __fastcall virtual TRVUndoRawStringInfo(void) : TRVUndoItemNoInfo() { }
	
public:
	/* TObject.Destroy */ inline __fastcall virtual ~TRVUndoRawStringInfo(void) { }
	
};


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


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


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


class DELPHICLASS TRVUndoReplaceItemInfo;
class PASCALIMPLEMENTATION TRVUndoReplaceItemInfo : public TRVUndoItemInfo
{
	typedef TRVUndoItemInfo inherited;
	
public:
	int ItemNo;
	DYNAMIC bool __fastcall RequiresFormat(void);
	DYNAMIC void __fastcall Undo(Rvrvdata::TRichViewRVData* RVData);
public:
	/* TRVUndoItemInfo.Destroy */ inline __fastcall virtual ~TRVUndoReplaceItemInfo(void) { }
	
public:
	/* TRVUndoItemNoInfo.Create */ inline __fastcall virtual TRVUndoReplaceItemInfo(void) : TRVUndoItemInfo() { }
	
};


class DELPHICLASS TRVUndoItemListInfo;
class PASCALIMPLEMENTATION TRVUndoItemListInfo : public TRVUndoInfo
{
	typedef TRVUndoInfo inherited;
	
public:
	Rvitem::TRVItemList* List;
	__fastcall virtual TRVUndoItemListInfo(void);
	__fastcall virtual ~TRVUndoItemListInfo(void);
};


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


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


class DELPHICLASS TRVUndoParaListInfo;
class PASCALIMPLEMENTATION TRVUndoParaListInfo : public TRVUndoListInfo
{
	typedef 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 */ inline __fastcall virtual TRVUndoParaListInfo(void) : TRVUndoListInfo() { }
	/* TRVUndoListInfo.Destroy */ inline __fastcall virtual ~TRVUndoParaListInfo(void) { }
	
};


class DELPHICLASS TRVUndoParaInfo;
class PASCALIMPLEMENTATION TRVUndoParaInfo : public TRVUndoItemNoInfo
{
	typedef 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 */ inline __fastcall virtual TRVUndoParaInfo(void) : TRVUndoItemNoInfo() { }
	
public:
	/* TObject.Destroy */ inline __fastcall virtual ~TRVUndoParaInfo(void) { }
	
};


class DELPHICLASS TRVUndoStyleNoInfo;
class PASCALIMPLEMENTATION TRVUndoStyleNoInfo : public TRVUndoItemNoInfo
{
	typedef 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 */ inline __fastcall virtual TRVUndoStyleNoInfo(void) : TRVUndoItemNoInfo() { }
	
public:
	/* TObject.Destroy */ inline __fastcall virtual ~TRVUndoStyleNoInfo(void) { }
	
};


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


class DELPHICLASS TRVUndoDeleteItemInfo;
class PASCALIMPLEMENTATION TRVUndoDeleteItemInfo : public TRVUndoItemInfo
{
	typedef 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 */ inline __fastcall virtual ~TRVUndoDeleteItemInfo(void) { }
	
public:
	/* TRVUndoItemNoInfo.Create */ inline __fastcall virtual TRVUndoDeleteItemInfo(void) : TRVUndoItemInfo() { }
	
};


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


class DELPHICLASS TRVUndoNewLineInfo;
class PASCALIMPLEMENTATION TRVUndoNewLineInfo : public TRVUndoItemNoInfo
{
	typedef 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 */ inline __fastcall virtual TRVUndoNewLineInfo(void) : TRVUndoItemNoInfo() { }
	
public:
	/* TObject.Destroy */ inline __fastcall virtual ~TRVUndoNewLineInfo(void) { }
	
};


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


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


class DELPHICLASS TRVUndoExtraIntProperty;
class PASCALIMPLEMENTATION TRVUndoExtraIntProperty : public TRVUndoItemNoInfo
{
	typedef TRVUndoItemNoInfo inherited;
	
private:
	int OldWidth;
	
public:
	int OldValue;
	Rvitem::TRVExtraItemProperty Prop;
	DYNAMIC void __fastcall Undo(Rvrvdata::TRichViewRVData* RVData);
	DYNAMIC bool __fastcall RequiresFullReformat2(Rvrvdata::TRichViewRVData* RVData);
public:
	/* TRVUndoItemNoInfo.Create */ inline __fastcall virtual TRVUndoExtraIntProperty(void) : TRVUndoItemNoInfo() { }
	
public:
	/* TObject.Destroy */ inline __fastcall virtual ~TRVUndoExtraIntProperty(void) { }
	
};


class DELPHICLASS TRVUndoExtraStrProperty;
class PASCALIMPLEMENTATION TRVUndoExtraStrProperty : public TRVUndoItemNoInfo
{
	typedef TRVUndoItemNoInfo inherited;
	
public:
	System::UnicodeString OldValue;
	Rvitem::TRVExtraItemStrProperty Prop;
	DYNAMIC void __fastcall Undo(Rvrvdata::TRichViewRVData* RVData);
	DYNAMIC bool __fastcall RequiresFormat(void);
public:
	/* TRVUndoItemNoInfo.Create */ inline __fastcall virtual TRVUndoExtraStrProperty(void) : TRVUndoItemNoInfo() { }
	
public:
	/* TObject.Destroy */ inline __fastcall virtual ~TRVUndoExtraStrProperty(void) { }
	
};


class DELPHICLASS TRVUndoDeleteItemsInfo;
class PASCALIMPLEMENTATION TRVUndoDeleteItemsInfo : public TRVUndoItemRangeInfo
{
	typedef 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 */ inline __fastcall virtual TRVUndoDeleteItemsInfo(void) : TRVUndoItemRangeInfo() { }
	
public:
	/* TRVUndoItemListInfo.Destroy */ inline __fastcall virtual ~TRVUndoDeleteItemsInfo(void) { }
	
};


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


class DELPHICLASS TRVUndoInsertSubstringInfo;
class PASCALIMPLEMENTATION TRVUndoInsertSubstringInfo : public TRVUndoItemNoInfo
{
	typedef 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 */ inline __fastcall virtual TRVUndoInsertSubstringInfo(void) : TRVUndoItemNoInfo() { }
	
public:
	/* TObject.Destroy */ inline __fastcall virtual ~TRVUndoInsertSubstringInfo(void) { }
	
};


class DELPHICLASS TRVRedoTypingInfo;
class PASCALIMPLEMENTATION TRVRedoTypingInfo : public TRVUndoSubStringInfo
{
	typedef 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 */ inline __fastcall virtual TRVRedoTypingInfo(void) : TRVUndoSubStringInfo() { }
	
public:
	/* TObject.Destroy */ inline __fastcall virtual ~TRVRedoTypingInfo(void) { }
	
};


class DELPHICLASS TRVUndoTypingInfo;
class PASCALIMPLEMENTATION TRVUndoTypingInfo : public TRVUndoInsertSubstringInfo
{
	typedef 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 */ inline __fastcall virtual TRVUndoTypingInfo(void) : TRVUndoInsertSubstringInfo() { }
	
public:
	/* TObject.Destroy */ inline __fastcall virtual ~TRVUndoTypingInfo(void) { }
	
};


class DELPHICLASS TRVUndoInsertItemsInfo;
class PASCALIMPLEMENTATION TRVUndoInsertItemsInfo : public TRVUndoItemNoInfo
{
	typedef 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 */ inline __fastcall virtual TRVUndoInsertItemsInfo(void) : TRVUndoItemNoInfo() { }
	
public:
	/* TObject.Destroy */ inline __fastcall virtual ~TRVUndoInsertItemsInfo(void) { }
	
};


class DELPHICLASS TRVUndoInsertItemInfo;
class PASCALIMPLEMENTATION TRVUndoInsertItemInfo : public TRVUndoItemNoInfo
{
	typedef 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 */ inline __fastcall virtual TRVUndoInsertItemInfo(void) : TRVUndoItemNoInfo() { }
	
public:
	/* TObject.Destroy */ inline __fastcall virtual ~TRVUndoInsertItemInfo(void) { }
	
};


class DELPHICLASS TRVUndoTagInfo;
class PASCALIMPLEMENTATION TRVUndoTagInfo : public TRVUndoItemNoInfo
{
	typedef 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 */ inline __fastcall virtual TRVUndoTagInfo(void) : TRVUndoItemNoInfo() { }
	
};


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


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


class DELPHICLASS TRVUndoModifyItemProps;
class PASCALIMPLEMENTATION TRVUndoModifyItemProps : public TRVUndoItemNoInfo
{
	typedef TRVUndoItemNoInfo inherited;
	
private:
	int OldW;
	
public:
	bool AffectWidth;
	bool AffectSize;
	System::TObject* SubObject;
	virtual TRVUndoInfoClass __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 */ inline __fastcall virtual TRVUndoModifyItemProps(void) : TRVUndoItemNoInfo() { }
	
public:
	/* TObject.Destroy */ inline __fastcall virtual ~TRVUndoModifyItemProps(void) { }
	
};


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


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


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


class DELPHICLASS TRVUndoModifyItemIntProperties;
class PASCALIMPLEMENTATION TRVUndoModifyItemIntProperties : public TRVUndoModifyItemProps
{
	typedef 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 TRVUndoInfo
{
	typedef TRVUndoInfo inherited;
	
public:
	int ItemNo;
	bool IsRedo;
	TRVUndoList* UndoList;
	__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);
public:
	/* TRVUndoInfo.Create */ inline __fastcall virtual TRVCompositeUndo(void) : TRVUndoInfo() { }
	
};


class DELPHICLASS TRVUndoInfos;
class PASCALIMPLEMENTATION TRVUndoInfos : public Rvclasses::TRVList
{
	typedef Rvclasses::TRVList inherited;
	
private:
	void __fastcall PerformUndo(Rvrvdata::TRichViewRVData* RVData, bool Reformat);
	
public:
	System::UnicodeString Caption;
	Rvedit::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);
	void __fastcall ChangeUndoList(TRVUndoList* UndoList);
public:
	/* TRVList.Destroy */ inline __fastcall virtual ~TRVUndoInfos(void) { }
	
public:
	/* TObject.Create */ inline __fastcall TRVUndoInfos(void) : Rvclasses::TRVList() { }
	
};


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::UnicodeString Caption, int CaretItemNo, int CaretOffs, Rvedit::TCustomRichViewEdit* Editor);
	void __fastcall EndItem(void);
	void __fastcall AddInfo(TRVUndoInfo* Info, Rvedit::TCustomRichViewEdit* Editor);
	void __fastcall AddInfos(TRVUndoInfos* Infos, Rvedit::TCustomRichViewEdit* Editor);
	void __fastcall AddTyping(int CaretItemNo, int CaretOffs, bool Unicode, Rvedit::TCustomRichViewEdit* Editor);
	void __fastcall AddUntyping(const Rvtypes::TRVRawByteString c, int CaretItemNo, int CaretOffs, Rvedit::TCustomRichViewEdit* Editor);
	void __fastcall Undo(Rvrvdata::TRichViewRVData* RVData);
	void __fastcall Redo(Rvrvdata::TRichViewRVData* RVData);
	Rvedit::TRVUndoType __fastcall CurrentUndoType(void);
	System::UnicodeString __fastcall CurrentUndoCaption();
	void __fastcall LockRFR(void);
	void __fastcall UnlockRFR(void);
	void __fastcall SetUndoGroupMode(bool GroupUndo, Rvedit::TCustomRichViewEdit* Editor);
public:
	/* TRVList.Destroy */ inline __fastcall virtual ~TRVUndoList(void) { }
	
};


class DELPHICLASS TRVRedoList;
class PASCALIMPLEMENTATION TRVRedoList : public TRVUndoList
{
	typedef TRVUndoList inherited;
	
public:
	/* TRVUndoList.Create */ inline __fastcall TRVRedoList(Crvfdata::TCustomRVFormattedData* ARVData) : TRVUndoList(ARVData) { }
	
public:
	/* TRVList.Destroy */ inline __fastcall virtual ~TRVRedoList(void) { }
	
};


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

}	/* namespace Rvundo */
using namespace Rvundo;
#pragma pack(pop)
#pragma option pop

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