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

// (DO NOT EDIT: machine generated header) 'RVMarker.pas' rev: 5.00

#ifndef RVMarkerHPP
#define RVMarkerHPP

#pragma delphiheader begin
#pragma option push -w-
#pragma option push -Vx
#include <RVTypes.hpp>	// Pascal unit
#include <RVStr.hpp>	// Pascal unit
#include <RVClasses.hpp>	// Pascal unit
#include <RVUni.hpp>	// Pascal unit
#include <RVScroll.hpp>	// Pascal unit
#include <RVFMisc.hpp>	// Pascal unit
#include <DLines.hpp>	// Pascal unit
#include <RVStyle.hpp>	// Pascal unit
#include <RVItem.hpp>	// Pascal unit
#include <RVFuncs.hpp>	// Pascal unit
#include <Forms.hpp>	// Pascal unit
#include <Graphics.hpp>	// Pascal unit
#include <Controls.hpp>	// Pascal unit
#include <Classes.hpp>	// Pascal unit
#include <Windows.hpp>	// Pascal unit
#include <SysUtils.hpp>	// Pascal unit
#include <SysInit.hpp>	// Pascal unit
#include <System.hpp>	// Pascal unit

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

namespace Rvmarker
{
//-- type declarations -------------------------------------------------------
class DELPHICLASS TRVMarkerItemInfo;
class DELPHICLASS TRVMarkerList;
class PASCALIMPLEMENTATION TRVMarkerItemInfo : public Rvitem::TRVRectItemInfo 
{
	typedef Rvitem::TRVRectItemInfo inherited;
	
private:
	int FWidth;
	int FHeight;
	int FDescent;
	int FOverhang;
	int FCachedIndexInList;
	void __fastcall DoPaint(int x, int y, Graphics::TCanvas* Canvas, Rvitem::TRVItemDrawStates State, Rvstyle::TRVStyle* 
		Style, Dlines::TRVDrawLineInfo* dli, Rvstyle::TRVColorMode ColorMode);
	
protected:
	DYNAMIC AnsiString __fastcall SaveRVFHeaderTail(Classes::TPersistent* RVData);
	void __fastcall CalcSize(Graphics::TCanvas* Canvas, Classes::TPersistent* RVData, int &Width, int &
		Height, int &Desc, int &Overhang, Rvstyle::PRVScreenAndDevice sad, bool ForMinWidth, int &HShift, 
		int &SpaceBefore);
	void __fastcall CalcDisplayString(Rvstyle::TRVStyle* RVStyle, TRVMarkerList* List, int Index);
	virtual int __fastcall GetHeight(void);
	virtual int __fastcall GetWidth(void);
	Rvstyle::TRVListLevel* __fastcall GetLevelInfoEx(Rvstyle::TRVStyle* RVStyle, int LevelNo);
	DYNAMIC int __fastcall GetRVFExtraPropertyCount(void);
	DYNAMIC void __fastcall SaveRVFExtraProperties(Classes::TStream* Stream);
	
public:
	int ListNo;
	int Level;
	int Counter;
	bool Reset;
	int StartFrom;
	AnsiString DisplayString;
	bool NoHTMLImageSize;
	__fastcall TRVMarkerItemInfo(Classes::TPersistent* RVData, int AListNo, int ALevel, int AStartFrom, 
		bool AReset);
	__fastcall virtual TRVMarkerItemInfo(Classes::TPersistent* RVData);
	DYNAMIC void __fastcall Assign(Rvitem::TCustomRVItemInfo* Source);
	Rvstyle::TRVListLevel* __fastcall GetLevelInfo(Rvstyle::TRVStyle* RVStyle);
	virtual int __fastcall GetMinWidth(Rvstyle::PRVScreenAndDevice sad, Graphics::TCanvas* Canvas, Classes::TPersistent* 
		RVData);
	virtual bool __fastcall GetBoolValue(Rvitem::TRVItemBoolProperty Prop);
	virtual bool __fastcall GetBoolValueEx(Rvitem::TRVItemBoolPropertyEx Prop, Rvstyle::TRVStyle* RVStyle
		);
	virtual void __fastcall OnDocWidthChange(int DocWidth, Dlines::TRVDrawLineInfo* dli, bool Printing, 
		Graphics::TCanvas* Canvas, Classes::TPersistent* RVData, Rvstyle::PRVScreenAndDevice sad, int &HShift
		, int &Desc, bool NoCaching, bool Reformatting);
	virtual void __fastcall Paint(int x, int y, Graphics::TCanvas* Canvas, Rvitem::TRVItemDrawStates State
		, Rvstyle::TRVStyle* Style, Dlines::TRVDrawLineInfo* dli);
	virtual void __fastcall Print(Graphics::TCanvas* Canvas, int x, int y, int x2, bool Preview, bool Correction
		, const Rvstyle::TRVScreenAndDevice &sad, Rvscroll::TRVScroller* RichView, Dlines::TRVDrawLineInfo* 
		dli, int Part, Rvstyle::TRVColorMode ColorMode, Classes::TPersistent* RVData);
	virtual bool __fastcall PrintToBitmap(Graphics::TBitmap* Bkgnd, bool Preview, Rvscroll::TRVScroller* 
		RichView, Dlines::TRVDrawLineInfo* dli, int Part, Rvstyle::TRVColorMode ColorMode);
	DYNAMIC bool __fastcall ReadRVFHeaderTail(char * &P, Classes::TPersistent* RVData, bool UTF8Strings
		, bool &AssStyleNameUsed);
	DYNAMIC void __fastcall SaveRVF(Classes::TStream* Stream, Classes::TPersistent* RVData, int ItemNo, 
		int ParaNo, const AnsiString Name, Rvitem::TRVMultiDrawItemPart* Part, bool ForceSameAsPrev);
	DYNAMIC void __fastcall MovingToUndoList(int ItemNo, System::TObject* RVData, System::TObject* AContainerUndoItem
		);
	DYNAMIC void __fastcall MovingFromUndoList(int ItemNo, System::TObject* RVData);
	virtual int __fastcall GetImageWidth(Rvstyle::TRVStyle* RVStyle);
	virtual int __fastcall GetImageHeight(Rvstyle::TRVStyle* RVStyle);
	virtual int __fastcall GetLeftOverhang(void);
	void __fastcall HTMLOpenOrCloseTags(Classes::TStream* Stream, int OldLevelNo, int NewLevelNo, Rvstyle::TRVStyle* 
		RVStyle, bool UseCSS);
	void __fastcall SaveHTMLSpecial(Classes::TStream* Stream, TRVMarkerItemInfo* Prev, Rvstyle::TRVStyle* 
		RVStyle, bool UseCSS);
	DYNAMIC void __fastcall SaveToHTML(Classes::TStream* Stream, Classes::TPersistent* RVData, int ItemNo
		, const AnsiString Text, const AnsiString Path, const AnsiString imgSavePrefix, int &imgSaveNo, Graphics::TColor 
		CurrentFileColor, Rvstyle::TRVSaveOptions SaveOptions, bool UseCSS, Rvclasses::TRVList* Bullets);
	AnsiString __fastcall GetLICSS(Classes::TPersistent* RVData, int ItemNo, const AnsiString Path, const 
		AnsiString imgSavePrefix, int &imgSaveNo, Graphics::TColor CurrentFileColor, Rvstyle::TRVSaveOptions 
		SaveOptions, Rvclasses::TRVList* Bullets);
	DYNAMIC void __fastcall FillRTFTables(Rvclasses::TRVColorList* ColorList, Rvclasses::TRVIntegerList* 
		ListOverrideCountList, Classes::TPersistent* RVData);
	DYNAMIC void __fastcall SaveRTF(Classes::TStream* Stream, const AnsiString Path, Classes::TPersistent* 
		RVData, int ItemNo, double TwipsPerPixel, int Level, Rvclasses::TRVColorList* ColorList, Rvclasses::TRVIntegerList* 
		StyleToFont, Rvclasses::TRVIntegerList* ListOverrideOffsetsList1, Rvclasses::TRVIntegerList* ListOverrideOffsetsList2
		, Rvclasses::TRVList* FontTable);
	DYNAMIC void __fastcall MarkStylesInUse(Rvitem::TRVDeleteUnusedStylesData* Data);
	DYNAMIC void __fastcall UpdateStyles(Rvitem::TRVDeleteUnusedStylesData* Data);
	DYNAMIC AnsiString __fastcall AsText(int LineWidth, Classes::TPersistent* RVData, const AnsiString 
		Text, const AnsiString Path, bool TextOnly, bool Unicode);
	int __fastcall GetIndexInList(Classes::TList* List);
	DYNAMIC bool __fastcall SetExtraIntProperty(Rvitem::TRVExtraItemProperty Prop, int Value);
	DYNAMIC bool __fastcall GetExtraIntProperty(Rvitem::TRVExtraItemProperty Prop, int &Value);
public:
	#pragma option push -w-inl
	/* TCustomRVItemInfo.Destroy */ inline __fastcall virtual ~TRVMarkerItemInfo(void) { }
	#pragma option pop
	
};


class PASCALIMPLEMENTATION TRVMarkerList : public Classes::TList 
{
	typedef Classes::TList inherited;
	
public:
	TRVMarkerList* PrevMarkerList;
	int __fastcall InsertAfter(TRVMarkerItemInfo* InsertMe, TRVMarkerItemInfo* AfterMe);
	void __fastcall RecalcCounters(int StartFrom, Rvstyle::TRVStyle* RVStyle);
	bool __fastcall FindParentMarker(int Index, TRVMarkerItemInfo* Marker, TRVMarkerList* &ParentList, 
		int &ParentIndex);
	void __fastcall RecalcDisplayStrings(Rvstyle::TRVStyle* RVStyle);
	void __fastcall SaveToStream(Classes::TStream* Stream, int Count, bool IncludeSize);
	void __fastcall LoadFromStream(Classes::TStream* Stream, Classes::TPersistent* RVData, bool IncludeSize
		);
	void __fastcall SaveTextToStream(Classes::TStream* Stream, int Count);
	void __fastcall LoadText(const AnsiString s, Classes::TPersistent* RVData);
	void __fastcall LoadBinary(const AnsiString s, Classes::TPersistent* RVData);
public:
	#pragma option push -w-inl
	/* TList.Destroy */ inline __fastcall virtual ~TRVMarkerList(void) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TObject.Create */ inline __fastcall TRVMarkerList(void) : Classes::TList() { }
	#pragma option pop
	
};


//-- var, const, procedure ---------------------------------------------------
extern PACKAGE Rvstyle::TRVListLevel* __fastcall RVGetLevelInfo(Rvstyle::TRVStyle* RVStyle, int ListNo
	, int Level);

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

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