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

// (DO NOT EDIT: machine generated header) 'FMX.TMSWebGMapsPolylines.pas' rev: 32.00 (iOS)

#ifndef Fmx_TmswebgmapspolylinesHPP
#define Fmx_TmswebgmapspolylinesHPP

#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>
#include <SysInit.hpp>
#include <System.SysUtils.hpp>
#include <System.Classes.hpp>
#include <FMX.Controls.hpp>
#include <System.Types.hpp>
#include <FMX.TMSWebGMapsCommon.hpp>
#include <System.StrUtils.hpp>
#include <FMX.TMSWebGMapsConst.hpp>
#include <FMX.TMSWebGMapsCommonFunctions.hpp>
#include <FMX.Graphics.hpp>
#include <System.UITypes.hpp>
#include <System.UIConsts.hpp>

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

namespace Fmx
{
namespace Tmswebgmapspolylines
{
//-- forward type declarations -----------------------------------------------
class DELPHICLASS TSymbol;
class DELPHICLASS TSymbols;
class DELPHICLASS TPathItem;
class DELPHICLASS TPath;
class DELPHICLASS TPolyline;
class DELPHICLASS TPolylineItem;
class DELPHICLASS TPolylines;
//-- type declarations -------------------------------------------------------
class PASCALIMPLEMENTATION TSymbol : public System::Classes::TCollectionItem
{
	typedef System::Classes::TCollectionItem inherited;
	
private:
	TPolyline* FPolyline;
	Fmx::Tmswebgmapscommon::TSymbolType FSymbolType;
	int FOffset;
	Fmx::Tmswebgmapscommon::TDistanceType FRepeatType;
	int FRepeatValue;
	Fmx::Tmswebgmapscommon::TDistanceType FOffsetType;
	bool FFixedRotation;
	void __fastcall SetOffset(const int Value);
	void __fastcall SetSymbolType(const Fmx::Tmswebgmapscommon::TSymbolType Value);
	void __fastcall SetOffsetType(const Fmx::Tmswebgmapscommon::TDistanceType Value);
	void __fastcall SetRepeatValue(const int Value);
	void __fastcall SetFixedRotation(const bool Value);
	void __fastcall SetRepeatType(const Fmx::Tmswebgmapscommon::TDistanceType Value);
	
public:
	__fastcall virtual TSymbol(System::Classes::TCollection* Collection);
	__fastcall virtual ~TSymbol(void);
	virtual void __fastcall Assign(System::Classes::TPersistent* Source);
	
__published:
	__property Fmx::Tmswebgmapscommon::TSymbolType SymbolType = {read=FSymbolType, write=SetSymbolType, default=2};
	__property int Offset = {read=FOffset, write=SetOffset, default=0};
	__property Fmx::Tmswebgmapscommon::TDistanceType OffsetType = {read=FOffsetType, write=SetOffsetType, default=1};
	__property int RepeatValue = {read=FRepeatValue, write=SetRepeatValue, default=0};
	__property Fmx::Tmswebgmapscommon::TDistanceType RepeatType = {read=FRepeatType, write=SetRepeatType, default=1};
	__property bool FixedRotation = {read=FFixedRotation, write=SetFixedRotation, default=0};
};


class PASCALIMPLEMENTATION TSymbols : public System::Classes::TCollection
{
	typedef System::Classes::TCollection inherited;
	
public:
	TSymbol* operator[](int index) { return this->Items[index]; }
	
private:
	TPolyline* FOwner;
	HIDESBASE TSymbol* __fastcall GetItem(int Index);
	HIDESBASE void __fastcall SetItem(int Index, TSymbol* Value);
	
protected:
	DYNAMIC System::Classes::TPersistent* __fastcall GetOwner(void);
	virtual void __fastcall Update(System::Classes::TCollectionItem* Item);
	
public:
	__fastcall TSymbols(TPolyline* APolyline)/* overload */;
	__fastcall TSymbols(void)/* overload */;
	HIDESBASE TSymbol* __fastcall Add(void)/* overload */;
	__property TSymbol* Items[int index] = {read=GetItem, write=SetItem/*, default*/};
public:
	/* TCollection.Destroy */ inline __fastcall virtual ~TSymbols(void) { }
	
};


class PASCALIMPLEMENTATION TPathItem : public System::Classes::TCollectionItem
{
	typedef System::Classes::TCollectionItem inherited;
	
private:
	double FLatitude;
	double FLongitude;
	bool FIsWayPoint;
	void __fastcall SetLatitude(const double Value);
	void __fastcall SetLongitude(const double Value);
	
public:
	__property bool IsWayPoint = {read=FIsWayPoint, write=FIsWayPoint, default=0};
	__fastcall virtual TPathItem(System::Classes::TCollection* Collection);
	__fastcall virtual ~TPathItem(void);
	virtual void __fastcall Assign(System::Classes::TPersistent* Source);
	
__published:
	__property double Latitude = {read=FLatitude, write=SetLatitude};
	__property double Longitude = {read=FLongitude, write=SetLongitude};
};


class PASCALIMPLEMENTATION TPath : public System::Classes::TOwnedCollection
{
	typedef System::Classes::TOwnedCollection inherited;
	
public:
	TPathItem* operator[](int index) { return this->Items[index]; }
	
private:
	System::Classes::TPersistent* FOwner;
	HIDESBASE TPathItem* __fastcall GetItem(int Index);
	HIDESBASE void __fastcall SetItem(int Index, TPathItem* Value);
	
protected:
	DYNAMIC System::Classes::TPersistent* __fastcall GetOwner(void);
	virtual void __fastcall Update(System::Classes::TCollectionItem* Item);
	
public:
	__fastcall TPath(System::Classes::TPersistent* APersistent)/* overload */;
	__fastcall TPath(void)/* overload */;
	HIDESBASE TPathItem* __fastcall Add(void)/* overload */;
	HIDESBASE TPathItem* __fastcall Add(double Latitude, double Longitude)/* overload */;
	HIDESBASE TPathItem* __fastcall Add(Fmx::Tmswebgmapscommonfunctions::TLocation* Location)/* overload */;
	__property TPathItem* Items[int index] = {read=GetItem, write=SetItem/*, default*/};
public:
	/* TCollection.Destroy */ inline __fastcall virtual ~TPath(void) { }
	
};


class PASCALIMPLEMENTATION TPolyline : public System::Classes::TPersistent
{
	typedef System::Classes::TPersistent inherited;
	
private:
	int FZindex;
	int FOpacity;
	int FWidth;
	System::Uitypes::TAlphaColor FColor;
	bool FVisible;
	bool FGeodesic;
	bool FClickable;
	bool FEditable;
	TPath* FPath;
	TSymbols* FIcons;
	int FItemIndex;
	int FTag;
	System::Classes::TPersistent* FOwner;
	System::TObject* FTagObject;
	System::UnicodeString FTagString;
	System::Uitypes::TAlphaColor FHoverColor;
	void __fastcall SetClickable(const bool Value);
	void __fastcall SetColor(const System::Uitypes::TAlphaColor Value);
	void __fastcall SetEditable(const bool Value);
	void __fastcall SetOpacity(const int Value);
	void __fastcall SetVisible(const bool Value);
	void __fastcall SetZindex(const int Value);
	void __fastcall SetWidth(const int Value);
	void __fastcall SetPath(TPath* const Value);
	void __fastcall SetGeodesic(const bool Value);
	void __fastcall SetIcons(TSymbols* const Value);
	void __fastcall SetTag(const int Value);
	void __fastcall SetItemIndex(const int Value);
	void __fastcall SetTagObject(System::TObject* const Value);
	void __fastcall SetTagString(const System::UnicodeString Value);
	void __fastcall SetHoverColor(const System::Uitypes::TAlphaColor Value);
	
protected:
	DYNAMIC System::Classes::TPersistent* __fastcall GetOwner(void);
	
public:
	__fastcall TPolyline(System::Classes::TPersistent* AOwner);
	__fastcall virtual ~TPolyline(void);
	virtual void __fastcall Assign(System::Classes::TPersistent* Source);
	void __fastcall DecodeValues(System::UnicodeString s);
	__property int ItemIndex = {read=FItemIndex, write=SetItemIndex, nodefault};
	Fmx::Tmswebgmapscommonfunctions::TBounds* __fastcall PathBounds(void);
	
__published:
	__property bool Clickable = {read=FClickable, write=SetClickable, default=1};
	__property bool Editable = {read=FEditable, write=SetEditable, default=0};
	__property bool Geodesic = {read=FGeodesic, write=SetGeodesic, default=0};
	__property TSymbols* Icons = {read=FIcons, write=SetIcons};
	__property TPath* Path = {read=FPath, write=SetPath};
	__property System::Uitypes::TAlphaColor Color = {read=FColor, write=SetColor, default=-16776961};
	__property System::Uitypes::TAlphaColor HoverColor = {read=FHoverColor, write=SetHoverColor, default=-16776961};
	__property int Opacity = {read=FOpacity, write=SetOpacity, default=100};
	__property int Width = {read=FWidth, write=SetWidth, default=4};
	__property bool Visible = {read=FVisible, write=SetVisible, default=1};
	__property int Zindex = {read=FZindex, write=SetZindex, default=0};
	__property int Tag = {read=FTag, write=SetTag, default=0};
	__property System::UnicodeString TagString = {read=FTagString, write=SetTagString};
	__property System::TObject* TagObject = {read=FTagObject, write=SetTagObject};
};


class PASCALIMPLEMENTATION TPolylineItem : public System::Classes::TCollectionItem
{
	typedef System::Classes::TCollectionItem inherited;
	
private:
	TPolyline* FPolyline;
	void __fastcall SetPolyline(TPolyline* const Value);
	
public:
	__fastcall virtual TPolylineItem(System::Classes::TCollection* Collection);
	__fastcall virtual ~TPolylineItem(void);
	virtual void __fastcall Assign(System::Classes::TPersistent* Source);
	
__published:
	__property TPolyline* Polyline = {read=FPolyline, write=SetPolyline};
};


class PASCALIMPLEMENTATION TPolylines : public System::Classes::TOwnedCollection
{
	typedef System::Classes::TOwnedCollection inherited;
	
public:
	TPolylineItem* operator[](int index) { return this->Items[index]; }
	
private:
	Fmx::Controls::TControl* FWebGMaps;
	HIDESBASE TPolylineItem* __fastcall GetItem(int Index);
	HIDESBASE void __fastcall SetItem(int Index, TPolylineItem* Value);
	
protected:
	DYNAMIC System::Classes::TPersistent* __fastcall GetOwner(void);
	virtual void __fastcall Update(System::Classes::TCollectionItem* Item);
	
public:
	__fastcall TPolylines(Fmx::Controls::TControl* AWebGMaps);
	HIDESBASE TPolylineItem* __fastcall Add(bool Clickable, bool Editable, bool Geodesic, TSymbols* Icons, TPath* Path, System::Uitypes::TAlphaColor Color, int Opacity, int Width, bool Visible, int Zindex)/* overload */;
	HIDESBASE TPolylineItem* __fastcall Add(TPath* Path)/* overload */;
	HIDESBASE TPolylineItem* __fastcall Add(void)/* overload */;
	__property TPolylineItem* Items[int index] = {read=GetItem, write=SetItem/*, default*/};
	Fmx::Tmswebgmapscommonfunctions::TBounds* __fastcall Bounds(void);
public:
	/* TCollection.Destroy */ inline __fastcall virtual ~TPolylines(void) { }
	
};


//-- var, const, procedure ---------------------------------------------------
}	/* namespace Tmswebgmapspolylines */
}	/* namespace Fmx */
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_FMX_TMSWEBGMAPSPOLYLINES)
using namespace Fmx::Tmswebgmapspolylines;
#endif
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_FMX)
using namespace Fmx;
#endif
#pragma pack(pop)
#pragma option pop

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