// CodeGear C++Builder
// Copyright (c) 1995, 2014 by Embarcadero Technologies, Inc.
// All rights reserved

// (DO NOT EDIT: machine generated header) 'XSSIEPhyRow.pas' rev: 28.00 (Windows)

#ifndef XssiephyrowHPP
#define XssiephyrowHPP

#pragma delphiheader begin
#pragma option push
#pragma option -w-      // All warnings off
#pragma option -Vx      // Zero-length empty class member 
#pragma pack(push,8)
#include <System.hpp>	// Pascal unit
#include <SysInit.hpp>	// Pascal unit
#include <System.Classes.hpp>	// Pascal unit
#include <System.SysUtils.hpp>	// Pascal unit
#include <System.Contnrs.hpp>	// Pascal unit
#include <System.Math.hpp>	// Pascal unit
#include <XSSIEUtils.hpp>	// Pascal unit
#include <XSSIEDocProps.hpp>	// Pascal unit
#include <XSSIECharRun.hpp>	// Pascal unit

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

namespace Xssiephyrow
{
//-- type declarations -------------------------------------------------------
enum DECLSPEC_DENUM TAXWPhyRowFlag : unsigned char { aprfDirty, aprfComplex, aprfFirst, aprfLast, aprfDebug };

typedef System::Set<TAXWPhyRowFlag, TAXWPhyRowFlag::aprfDirty, TAXWPhyRowFlag::aprfDebug> TAXWPhyRowFlags;

class DELPHICLASS TAXWPhyRow;
class PASCALIMPLEMENTATION TAXWPhyRow : public System::TObject
{
	typedef System::TObject inherited;
	
protected:
	double FHeight;
	double FWidth;
	double FXOffset;
	double FY;
	double FAscent;
	double FDescent;
	Xssiecharrun::TAXWCharRun* FCR1;
	Xssiecharrun::TAXWCharRun* FCR2;
	int FCRPos1;
	int FCRPos2;
	int FLogPos1;
	TAXWPhyRowFlags FFlags;
	int FBreakCharCount;
	
public:
	__fastcall TAXWPhyRow(void);
	void __fastcall Assign(TAXWPhyRow* Row);
	bool __fastcall Empty(void);
	double __fastcall RowHeight(void);
	int __fastcall Len(void);
	bool __fastcall SameCR(void);
	int __fastcall FirstPos(void);
	int __fastcall LastPos(void);
	__property double Height = {read=FHeight, write=FHeight};
	__property double Ascent = {read=FAscent, write=FAscent};
	__property double Descent = {read=FDescent, write=FDescent};
	__property double Width = {read=FWidth, write=FWidth};
	__property double XOffset = {read=FXOffset, write=FXOffset};
	__property double Y = {read=FY, write=FY};
	__property int BreakCharCount = {read=FBreakCharCount, write=FBreakCharCount, nodefault};
	__property Xssiecharrun::TAXWCharRun* CR1 = {read=FCR1, write=FCR1};
	__property Xssiecharrun::TAXWCharRun* CR2 = {read=FCR2, write=FCR2};
	__property int CRPos1 = {read=FCRPos1, write=FCRPos1, nodefault};
	__property int CRPos2 = {read=FCRPos2, write=FCRPos2, nodefault};
	__property int LogPos1 = {read=FLogPos1, write=FLogPos1, nodefault};
	__property TAXWPhyRowFlags Flags = {read=FFlags, write=FFlags, nodefault};
public:
	/* TObject.Destroy */ inline __fastcall virtual ~TAXWPhyRow(void) { }
	
};


class DELPHICLASS TAXWPhyRowComplex;
class PASCALIMPLEMENTATION TAXWPhyRowComplex : public TAXWPhyRow
{
	typedef TAXWPhyRow inherited;
	
private:
	typedef System::DynamicArray<Xssieutils::TBreakCharData> _TAXWPhyRowComplex__1;
	
	
private:
	Xssieutils::TBreakCharData __fastcall GetBreakWidth(int Index);
	int __fastcall GetBreakWidthsCount(void);
	
protected:
	_TAXWPhyRowComplex__1 FBreakWidths;
	int FIteratePos;
	
public:
	__fastcall TAXWPhyRowComplex(Xssieutils::TBreakCharData *Widths, const int Widths_High);
	void __fastcall BeginIterate(void);
	double __fastcall IterateNext(int CharCount);
	__property Xssieutils::TBreakCharData BreakWidth[int Index] = {read=GetBreakWidth};
	__property int BreakWidthsCount = {read=GetBreakWidthsCount, nodefault};
public:
	/* TObject.Destroy */ inline __fastcall virtual ~TAXWPhyRowComplex(void) { }
	
};


class DELPHICLASS TAXWPhyRows;
class PASCALIMPLEMENTATION TAXWPhyRows : public System::Contnrs::TObjectList
{
	typedef System::Contnrs::TObjectList inherited;
	
public:
	TAXWPhyRow* operator[](int Index) { return Items[Index]; }
	
protected:
	double FWidth;
	double FHeight;
	TAXWPhyRow* __fastcall GetItems(int Index);
	
public:
	__fastcall TAXWPhyRows(void);
	virtual void __fastcall Clear(void);
	HIDESBASE TAXWPhyRow* __fastcall Add(void);
	int __fastcall FindRow(int Pos);
	void __fastcall Replace(int Index, TAXWPhyRow* Row);
	void __fastcall ClearFirstLast(void);
	void __fastcall SetFirstLast(void);
	void __fastcall UpdateArea(void);
	HIDESBASE TAXWPhyRow* __fastcall Last(void);
	__property double Width = {read=FWidth};
	__property double Height = {read=FHeight};
	__property TAXWPhyRow* Items[int Index] = {read=GetItems/*, default*/};
public:
	/* TList.Destroy */ inline __fastcall virtual ~TAXWPhyRows(void) { }
	
};


//-- var, const, procedure ---------------------------------------------------
}	/* namespace Xssiephyrow */
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_XSSIEPHYROW)
using namespace Xssiephyrow;
#endif
#pragma pack(pop)
#pragma option pop

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