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

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

#ifndef RVUndoHPP
#define RVUndoHPP

#pragma delphiheader begin
#pragma option push -w-
#include <RVTypes.hpp>	// Pascal unit
#include <RichView.hpp>	// Pascal unit
#include <RVRVData.hpp>	// Pascal unit
#include <CRVFData.hpp>	// Pascal unit
#include <CRVData.hpp>	// Pascal unit
#include <RVStyle.hpp>	// Pascal unit
#include <RVEdit.hpp>	// Pascal unit
#include <RVItem.hpp>	// Pascal unit
#include <RVClasses.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 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 DELPHICLASS TRVUndoInfos;
#pragma pack(push, 4)
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 AnsiString 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 AnsiString 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);
	AnsiString __fastcall CurrentUndoCaption(void);
	void __fastcall LockRFR(void);
	void __fastcall UnlockRFR(void);
	void __fastcall SetUndoGroupMode(bool GroupUndo, Rvedit::TCustomRichViewEdit* Editor);
public:
	#pragma option push -w-inl
	/* TRVList.Destroy */ inline __fastcall virtual ~TRVUndoList(void) { }
	#pragma option pop
	
};

#pragma pack(pop)

#pragma pack(push, 4)
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:
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~TRVUndoInfo(void) { }
	#pragma option pop
	
};

#pragma pack(pop)

typedef TMetaClass*TRVUndoInfoClass;

class DELPHICLASS TRVUndoItemNoInfo;
#pragma pack(push, 4)
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:
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~TRVUndoItemNoInfo(void) { }
	#pragma option pop
	
};

#pragma pack(pop)

class DELPHICLASS TRVUndoReformateRange;
#pragma pack(push, 4)
class PASCALIMPLEMENTATION TRVUndoReformateRange : public TRVUndoItemNoInfo 
{
	typedef TRVUndoItemNoInfo inherited;
	
public:
	bool SuperReformat;
	DYNAMIC void __fastcall Undo(Rvrvdata::TRichViewRVData* RVData);
	DYNAMIC bool __fastcall RequiresSuperFormat(void);
public:
	#pragma option push -w-inl
	/* TRVUndoItemNoInfo.Create */ inline __fastcall virtual TRVUndoReformateRange(void) : TRVUndoItemNoInfo(
		) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~TRVUndoReformateRange(void) { }
	#pragma option pop
	
};

#pragma pack(pop)

class DELPHICLASS TRVUndoChangeVAlignInfo;
#pragma pack(push, 4)
class PASCALIMPLEMENTATION TRVUndoChangeVAlignInfo : public TRVUndoItemNoInfo 
{
	typedef TRVUndoItemNoInfo inherited;
	
public:
	Rvstyle::TRVVAlign VAlign;
	DYNAMIC void __fastcall Undo(Rvrvdata::TRichViewRVData* RVData);
public:
	#pragma option push -w-inl
	/* TRVUndoItemNoInfo.Create */ inline __fastcall virtual TRVUndoChangeVAlignInfo(void) : TRVUndoItemNoInfo(
		) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~TRVUndoChangeVAlignInfo(void) { }
	#pragma option pop
	
};

#pragma pack(pop)

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

#pragma pack(pop)

class DELPHICLASS TRVUndoRawStringInfo;
#pragma pack(push, 4)
class PASCALIMPLEMENTATION TRVUndoRawStringInfo : public TRVUndoItemNoInfo 
{
	typedef TRVUndoItemNoInfo inherited;
	
public:
	AnsiString s;
public:
	#pragma option push -w-inl
	/* TRVUndoItemNoInfo.Create */ inline __fastcall virtual TRVUndoRawStringInfo(void) : TRVUndoItemNoInfo(
		) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~TRVUndoRawStringInfo(void) { }
	#pragma option pop
	
};

#pragma pack(pop)

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

#pragma pack(pop)

class DELPHICLASS TRVUndoSubStringInfo;
#pragma pack(push, 4)
class PASCALIMPLEMENTATION TRVUndoSubStringInfo : public TRVUndoRawStringInfo 
{
	typedef TRVUndoRawStringInfo inherited;
	
public:
	int Index;
public:
	#pragma option push -w-inl
	/* TRVUndoItemNoInfo.Create */ inline __fastcall virtual TRVUndoSubStringInfo(void) : TRVUndoRawStringInfo(
		) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~TRVUndoSubStringInfo(void) { }
	#pragma option pop
	
};

#pragma pack(pop)

class DELPHICLASS TRVUndoItemInfo;
#pragma pack(push, 4)
class PASCALIMPLEMENTATION TRVUndoItemInfo : public TRVUndoRawStringInfo 
{
	typedef TRVUndoRawStringInfo inherited;
	
public:
	Rvitem::TCustomRVItemInfo* Item;
	__fastcall virtual ~TRVUndoItemInfo(void);
public:
	#pragma option push -w-inl
	/* TRVUndoItemNoInfo.Create */ inline __fastcall virtual TRVUndoItemInfo(void) : TRVUndoRawStringInfo(
		) { }
	#pragma option pop
	
};

#pragma pack(pop)

class DELPHICLASS TRVUndoReplaceItemInfo;
#pragma pack(push, 4)
class PASCALIMPLEMENTATION TRVUndoReplaceItemInfo : public TRVUndoItemInfo 
{
	typedef TRVUndoItemInfo inherited;
	
public:
	int ItemNo;
	DYNAMIC bool __fastcall RequiresFormat(void);
	DYNAMIC void __fastcall Undo(Rvrvdata::TRichViewRVData* RVData);
public:
	#pragma option push -w-inl
	/* TRVUndoItemInfo.Destroy */ inline __fastcall virtual ~TRVUndoReplaceItemInfo(void) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TRVUndoItemNoInfo.Create */ inline __fastcall virtual TRVUndoReplaceItemInfo(void) : TRVUndoItemInfo(
		) { }
	#pragma option pop
	
};

#pragma pack(pop)

class DELPHICLASS TRVUndoItemListInfo;
#pragma pack(push, 4)
class PASCALIMPLEMENTATION TRVUndoItemListInfo : public TRVUndoInfo 
{
	typedef TRVUndoInfo inherited;
	
public:
	Rvitem::TRVItemList* List;
	__fastcall virtual TRVUndoItemListInfo(void);
	__fastcall virtual ~TRVUndoItemListInfo(void);
};

#pragma pack(pop)

class DELPHICLASS TRVUndoItemRangeInfo;
#pragma pack(push, 4)
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:
	#pragma option push -w-inl
	/* TRVUndoItemListInfo.Destroy */ inline __fastcall virtual ~TRVUndoItemRangeInfo(void) { }
	#pragma option pop
	
};

#pragma pack(pop)

class DELPHICLASS TRVUndoListInfo;
#pragma pack(push, 4)
class PASCALIMPLEMENTATION TRVUndoListInfo : public TRVUndoInfo 
{
	typedef TRVUndoInfo inherited;
	
public:
	Rvclasses::TRVIntegerList* List;
	__fastcall virtual TRVUndoListInfo(void);
	__fastcall virtual ~TRVUndoListInfo(void);
};

#pragma pack(pop)

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

#pragma pack(pop)

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

#pragma pack(pop)

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

#pragma pack(pop)

class DELPHICLASS TRVUndoAssociatedTextStyleNoInfo;
#pragma pack(push, 4)
class PASCALIMPLEMENTATION TRVUndoAssociatedTextStyleNoInfo : public TRVUndoStyleNoInfo 
{
	typedef TRVUndoStyleNoInfo inherited;
	
public:
	DYNAMIC void __fastcall Undo(Rvrvdata::TRichViewRVData* RVData);
public:
	#pragma option push -w-inl
	/* TRVUndoItemNoInfo.Create */ inline __fastcall virtual TRVUndoAssociatedTextStyleNoInfo(void) : TRVUndoStyleNoInfo(
		) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~TRVUndoAssociatedTextStyleNoInfo(void) { }
	#pragma option pop
	
};

#pragma pack(pop)

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

#pragma pack(pop)

class DELPHICLASS TRVUndoModifyItemInfo;
#pragma pack(push, 4)
class PASCALIMPLEMENTATION TRVUndoModifyItemInfo : public TRVUndoItemInfo 
{
	typedef TRVUndoItemInfo inherited;
	
public:
	DYNAMIC bool __fastcall RequiresFullReformat1(Rvrvdata::TRichViewRVData* RVData);
	DYNAMIC void __fastcall Undo(Rvrvdata::TRichViewRVData* RVData);
public:
	#pragma option push -w-inl
	/* TRVUndoItemInfo.Destroy */ inline __fastcall virtual ~TRVUndoModifyItemInfo(void) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TRVUndoItemNoInfo.Create */ inline __fastcall virtual TRVUndoModifyItemInfo(void) : TRVUndoItemInfo(
		) { }
	#pragma option pop
	
};

#pragma pack(pop)

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

#pragma pack(pop)

class DELPHICLASS TRVUndoBRInfo;
#pragma pack(push, 4)
class PASCALIMPLEMENTATION TRVUndoBRInfo : public TRVUndoItemNoInfo 
{
	typedef TRVUndoItemNoInfo inherited;
	
public:
	bool WasBR;
	DYNAMIC void __fastcall Undo(Rvrvdata::TRichViewRVData* RVData);
public:
	#pragma option push -w-inl
	/* TRVUndoItemNoInfo.Create */ inline __fastcall virtual TRVUndoBRInfo(void) : TRVUndoItemNoInfo() { }
		
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~TRVUndoBRInfo(void) { }
	#pragma option pop
	
};

#pragma pack(pop)

class DELPHICLASS TRVUndoPageBreakInfo;
#pragma pack(push, 4)
class PASCALIMPLEMENTATION TRVUndoPageBreakInfo : public TRVUndoItemNoInfo 
{
	typedef TRVUndoItemNoInfo inherited;
	
public:
	bool WasPageBreak;
	DYNAMIC void __fastcall Undo(Rvrvdata::TRichViewRVData* RVData);
public:
	#pragma option push -w-inl
	/* TRVUndoItemNoInfo.Create */ inline __fastcall virtual TRVUndoPageBreakInfo(void) : TRVUndoItemNoInfo(
		) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~TRVUndoPageBreakInfo(void) { }
	#pragma option pop
	
};

#pragma pack(pop)

class DELPHICLASS TRVUndoClearTextFlowInfo;
#pragma pack(push, 4)
class PASCALIMPLEMENTATION TRVUndoClearTextFlowInfo : public TRVUndoItemNoInfo 
{
	typedef TRVUndoItemNoInfo inherited;
	
public:
	bool WasClearLeft;
	bool WasClearRight;
	DYNAMIC void __fastcall Undo(Rvrvdata::TRichViewRVData* RVData);
public:
	#pragma option push -w-inl
	/* TRVUndoItemNoInfo.Create */ inline __fastcall virtual TRVUndoClearTextFlowInfo(void) : TRVUndoItemNoInfo(
		) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~TRVUndoClearTextFlowInfo(void) { }
	#pragma option pop
	
};

#pragma pack(pop)

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

#pragma pack(pop)

class DELPHICLASS TRVUndoExtraStrProperty;
#pragma pack(push, 4)
class PASCALIMPLEMENTATION TRVUndoExtraStrProperty : public TRVUndoItemNoInfo 
{
	typedef TRVUndoItemNoInfo inherited;
	
public:
	AnsiString OldValue;
	Rvitem::TRVExtraItemStrProperty Prop;
	DYNAMIC void __fastcall Undo(Rvrvdata::TRichViewRVData* RVData);
	DYNAMIC bool __fastcall RequiresFormat(void);
public:
	#pragma option push -w-inl
	/* TRVUndoItemNoInfo.Create */ inline __fastcall virtual TRVUndoExtraStrProperty(void) : TRVUndoItemNoInfo(
		) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~TRVUndoExtraStrProperty(void) { }
	#pragma option pop
	
};

#pragma pack(pop)

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

#pragma pack(pop)

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

#pragma pack(pop)

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

#pragma pack(pop)

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

#pragma pack(pop)

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

#pragma pack(pop)

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

#pragma pack(pop)

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

#pragma pack(pop)

class DELPHICLASS TRVUndoTagInfo;
#pragma pack(push, 4)
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:
	#pragma option push -w-inl
	/* TRVUndoItemNoInfo.Create */ inline __fastcall virtual TRVUndoTagInfo(void) : TRVUndoItemNoInfo()
		 { }
	#pragma option pop
	
};

#pragma pack(pop)

class DELPHICLASS TRVUndoAddCPInfo;
#pragma pack(push, 4)
class PASCALIMPLEMENTATION TRVUndoAddCPInfo : public TRVUndoItemNoInfo 
{
	typedef TRVUndoItemNoInfo inherited;
	
public:
	DYNAMIC void __fastcall Undo(Rvrvdata::TRichViewRVData* RVData);
public:
	#pragma option push -w-inl
	/* TRVUndoItemNoInfo.Create */ inline __fastcall virtual TRVUndoAddCPInfo(void) : TRVUndoItemNoInfo(
		) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~TRVUndoAddCPInfo(void) { }
	#pragma option pop
	
};

#pragma pack(pop)

class DELPHICLASS TRVUndoDeleteCPInfo;
#pragma pack(push, 4)
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:
	#pragma option push -w-inl
	/* TRVUndoItemNoInfo.Create */ inline __fastcall virtual TRVUndoDeleteCPInfo(void) : TRVUndoItemNoInfo(
		) { }
	#pragma option pop
	
};

#pragma pack(pop)

class DELPHICLASS TRVUndoModifyItemProps;
#pragma pack(push, 4)
class PASCALIMPLEMENTATION TRVUndoModifyItemProps : public TRVUndoItemNoInfo 
{
	typedef TRVUndoItemNoInfo inherited;
	
private:
	int OldW;
	
public:
	bool AffectWidth;
	bool AffectSize;
	System::TObject* SubObject;
	virtual 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:
	#pragma option push -w-inl
	/* TRVUndoItemNoInfo.Create */ inline __fastcall virtual TRVUndoModifyItemProps(void) : TRVUndoItemNoInfo(
		) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~TRVUndoModifyItemProps(void) { }
	#pragma option pop
	
};

#pragma pack(pop)

class DELPHICLASS TRVUndoModifyItemTerminator;
#pragma pack(push, 4)
class PASCALIMPLEMENTATION TRVUndoModifyItemTerminator : public TRVUndoModifyItemProps 
{
	typedef TRVUndoModifyItemProps inherited;
	
public:
	bool Opening;
	__fastcall virtual TRVUndoModifyItemTerminator(void);
	DYNAMIC void __fastcall Undo(Rvrvdata::TRichViewRVData* RVData);
public:
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~TRVUndoModifyItemTerminator(void) { }
	#pragma option pop
	
};

#pragma pack(pop)

class DELPHICLASS TRVUndoModifyItemIntProperty;
#pragma pack(push, 4)
class PASCALIMPLEMENTATION TRVUndoModifyItemIntProperty : public TRVUndoModifyItemProps 
{
	typedef TRVUndoModifyItemProps inherited;
	
public:
	AnsiString PropertyName;
	int Value;
	DYNAMIC void __fastcall Undo(Rvrvdata::TRichViewRVData* RVData);
public:
	#pragma option push -w-inl
	/* TRVUndoItemNoInfo.Create */ inline __fastcall virtual TRVUndoModifyItemIntProperty(void) : TRVUndoModifyItemProps(
		) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~TRVUndoModifyItemIntProperty(void) { }
	#pragma option pop
	
};

#pragma pack(pop)

class DELPHICLASS TRVUndoModifyItemStrProperty;
#pragma pack(push, 4)
class PASCALIMPLEMENTATION TRVUndoModifyItemStrProperty : public TRVUndoModifyItemProps 
{
	typedef TRVUndoModifyItemProps inherited;
	
public:
	AnsiString PropertyName;
	AnsiString Value;
	DYNAMIC void __fastcall Undo(Rvrvdata::TRichViewRVData* RVData);
public:
	#pragma option push -w-inl
	/* TRVUndoItemNoInfo.Create */ inline __fastcall virtual TRVUndoModifyItemStrProperty(void) : TRVUndoModifyItemProps(
		) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~TRVUndoModifyItemStrProperty(void) { }
	#pragma option pop
	
};

#pragma pack(pop)

class DELPHICLASS TRVUndoModifyItemIntProperties;
#pragma pack(push, 4)
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);
};

#pragma pack(pop)

class DELPHICLASS TRVCompositeUndo;
#pragma pack(push, 4)
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:
	#pragma option push -w-inl
	/* TRVUndoInfo.Create */ inline __fastcall virtual TRVCompositeUndo(void) : TRVUndoInfo() { }
	#pragma option pop
	
};

#pragma pack(pop)

#pragma pack(push, 4)
class PASCALIMPLEMENTATION TRVUndoInfos : public Rvclasses::TRVList 
{
	typedef Rvclasses::TRVList inherited;
	
private:
	void __fastcall PerformUndo(Rvrvdata::TRichViewRVData* RVData, bool Reformat);
	
public:
	AnsiString 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:
	#pragma option push -w-inl
	/* TRVList.Destroy */ inline __fastcall virtual ~TRVUndoInfos(void) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TObject.Create */ inline __fastcall TRVUndoInfos(void) : Rvclasses::TRVList() { }
	#pragma option pop
	
};

#pragma pack(pop)

class DELPHICLASS TRVRedoList;
#pragma pack(push, 4)
class PASCALIMPLEMENTATION TRVRedoList : public TRVUndoList 
{
	typedef TRVUndoList inherited;
	
public:
	#pragma option push -w-inl
	/* TRVUndoList.Create */ inline __fastcall TRVRedoList(Crvfdata::TCustomRVFormattedData* ARVData) : 
		TRVUndoList(ARVData) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TRVList.Destroy */ inline __fastcall virtual ~TRVRedoList(void) { }
	#pragma option pop
	
};

#pragma pack(pop)

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

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

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