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

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

#ifndef Fmx_TmswebgmapsmarkersHPP
#define Fmx_TmswebgmapsmarkersHPP

#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.Graphics.hpp>
#include <System.StrUtils.hpp>
#include <FMX.TMSWebGMapsCommon.hpp>
#include <FMX.TMSWebGMapsConst.hpp>
#include <FMX.TMSWebGMapsCommonFunctions.hpp>
#include <FMX.TMSWebGMapsClusters.hpp>
#include <System.UITypes.hpp>
#include <System.UIConsts.hpp>

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

namespace Fmx
{
namespace Tmswebgmapsmarkers
{
//-- forward type declarations -----------------------------------------------
class DELPHICLASS TMapLabel;
class DELPHICLASS TSubMarker;
class DELPHICLASS TSubMarkers;
class DELPHICLASS TMarker;
class DELPHICLASS TMarkers;
//-- type declarations -------------------------------------------------------
class PASCALIMPLEMENTATION TMapLabel : public System::Classes::TPersistent
{
	typedef System::Classes::TPersistent inherited;
	
private:
	System::Uitypes::TAlphaColor FBorderColor;
	System::Uitypes::TAlphaColor FColor;
	Fmx::Graphics::TFont* FFont;
	System::Uitypes::TAlphaColor FFontColor;
	int FMargin;
	System::UnicodeString FText;
	System::Classes::TCollectionItem* FOwner;
	int FOffsetTop;
	int FOffsetLeft;
	void __fastcall SetBorderColor(const System::Uitypes::TAlphaColor Value);
	void __fastcall SetColor(const System::Uitypes::TAlphaColor Value);
	void __fastcall SetFontColor(const System::Uitypes::TAlphaColor Value);
	void __fastcall SetFont(Fmx::Graphics::TFont* const Value);
	void __fastcall SetText(const System::UnicodeString Value);
	void __fastcall SetOwner(System::Classes::TCollectionItem* const Value);
	void __fastcall SetMargin(const int Value);
	void __fastcall SetOffsetLeft(const int Value);
	void __fastcall SetOffsetTop(const int Value);
	
protected:
	__property System::Classes::TCollectionItem* Owner = {read=FOwner, write=SetOwner};
	void __fastcall FontChanged(System::TObject* Sender);
	
public:
	__fastcall TMapLabel(System::Classes::TCollectionItem* CollectionItem);
	__fastcall virtual ~TMapLabel(void);
	virtual void __fastcall Assign(System::Classes::TPersistent* Source);
	__property int OffsetLeft = {read=FOffsetLeft, write=SetOffsetLeft, nodefault};
	__property int OffsetTop = {read=FOffsetTop, write=SetOffsetTop, nodefault};
	
__published:
	__property System::UnicodeString Text = {read=FText, write=SetText};
	__property System::Uitypes::TAlphaColor Color = {read=FColor, write=SetColor, default=-1};
	__property System::Uitypes::TAlphaColor BorderColor = {read=FBorderColor, write=SetBorderColor, default=-16777216};
	__property int Margin = {read=FMargin, write=SetMargin, default=2};
	__property Fmx::Graphics::TFont* Font = {read=FFont, write=SetFont};
	__property System::Uitypes::TAlphaColor FontColor = {read=FFontColor, write=SetFontColor, default=-16777216};
};


class PASCALIMPLEMENTATION TSubMarker : public System::Classes::TCollectionItem
{
	typedef System::Classes::TCollectionItem inherited;
	
private:
	Fmx::Controls::TControl* FWebGMaps;
	System::UnicodeString FTitle;
	System::UnicodeString FIcon;
	bool FVisible;
	bool FClickable;
	int FTag;
	System::UnicodeString FData;
	Fmx::Tmswebgmapscommon::TMarkerIconColor FIconColor;
	int FLineWidth;
	System::Uitypes::TAlphaColor FLineColor;
	int FLineOpacity;
	int FRadius;
	void __fastcall SetIcon(const System::UnicodeString Value);
	void __fastcall SetTitle(const System::UnicodeString Value);
	void __fastcall SetVisible(const bool Value);
	void __fastcall SetClickable(const bool Value);
	void __fastcall SetTag(const int Value);
	void __fastcall SetIconColor(const Fmx::Tmswebgmapscommon::TMarkerIconColor Value);
	
public:
	__fastcall virtual TSubMarker(System::Classes::TCollection* Collection);
	__fastcall virtual ~TSubMarker(void);
	virtual void __fastcall Assign(System::Classes::TPersistent* Source);
	
__published:
	__property bool Clickable = {read=FClickable, write=SetClickable, nodefault};
	__property System::UnicodeString Data = {read=FData, write=FData};
	__property System::UnicodeString Icon = {read=FIcon, write=SetIcon};
	__property Fmx::Tmswebgmapscommon::TMarkerIconColor IconColor = {read=FIconColor, write=SetIconColor, default=1};
	__property int Tag = {read=FTag, write=SetTag, default=0};
	__property System::UnicodeString Title = {read=FTitle, write=SetTitle};
	__property bool Visible = {read=FVisible, write=SetVisible, nodefault};
	__property System::Uitypes::TAlphaColor LineColor = {read=FLineColor, write=FLineColor, default=-16777216};
	__property int LineWidth = {read=FLineWidth, write=FLineWidth, default=1};
	__property int LineOpacity = {read=FLineOpacity, write=FLineOpacity, default=255};
	__property int Radius = {read=FRadius, write=FRadius, default=100};
};


class PASCALIMPLEMENTATION TSubMarkers : public System::Classes::TCollection
{
	typedef System::Classes::TCollection inherited;
	
public:
	TSubMarker* operator[](int index) { return this->Items[index]; }
	
private:
	Fmx::Controls::TControl* FWebGMaps;
	HIDESBASE TSubMarker* __fastcall GetItem(int Index);
	HIDESBASE void __fastcall SetItem(int Index, TSubMarker* Value);
	
protected:
	DYNAMIC System::Classes::TPersistent* __fastcall GetOwner(void);
	
public:
	__fastcall TSubMarkers(Fmx::Controls::TControl* AWebGMaps);
	__fastcall virtual ~TSubMarkers(void);
	HIDESBASE TSubMarker* __fastcall Add(System::UnicodeString Title, System::UnicodeString Icon = System::UnicodeString(), Fmx::Tmswebgmapscommon::TMarkerIconColor IconColor = (Fmx::Tmswebgmapscommon::TMarkerIconColor)(0x1), bool Visible = true, System::Uitypes::TAlphaColor LineColor = (System::Uitypes::TAlphaColor)(0xff000000), int LineWidth = 0x1, int LineOpacity = 0xff, int Radius = 0x64)/* overload */;
	HIDESBASE TSubMarker* __fastcall Add(void)/* overload */;
	__property TSubMarker* Items[int index] = {read=GetItem, write=SetItem/*, default*/};
};


class PASCALIMPLEMENTATION TMarker : public System::Classes::TCollectionItem
{
	typedef System::Classes::TCollectionItem inherited;
	
private:
	Fmx::Controls::TControl* FWebGMaps;
	double FLatitude;
	bool FDraggable;
	System::UnicodeString FTitle;
	double FLongitude;
	System::UnicodeString FIcon;
	bool FVisible;
	bool FClickable;
	bool FFlat;
	bool FInitialDropAnimation;
	int FZindex;
	TMapLabel* FMapLabel;
	int FTag;
	System::UnicodeString FData;
	int FClusterIndex;
	Fmx::Tmswebgmapsclusters::TMapCluster* FCluster;
	Fmx::Tmswebgmapsclusters::TClusterItem* FClusterItem;
	Fmx::Tmswebgmapscommon::TMarkerIconColor FIconColor;
	int FIconHeight;
	int FIconWidth;
	int FIconZoomHeight;
	int FIconZoomWidth;
	Fmx::Tmswebgmapscommon::TMarkerIconState FMarkerIconState;
	System::UnicodeString FText;
	TSubMarkers* FSubMarkers;
	void __fastcall SetDraggable(const bool Value);
	void __fastcall SetIcon(const System::UnicodeString Value);
	void __fastcall SetLatitude(const double Value);
	void __fastcall SetLongitude(const double Value);
	void __fastcall SetTitle(const System::UnicodeString Value);
	void __fastcall SetVisible(const bool Value);
	void __fastcall SetClickable(const bool Value);
	void __fastcall SetFlat(const bool Value);
	void __fastcall SetInitialDropAnimation(const bool Value);
	void __fastcall SetZindex(const int Value);
	void __fastcall SetMapLabel(TMapLabel* const Value);
	void __fastcall SetTag(const int Value);
	void __fastcall SetClusterIndex(const int Value);
	void __fastcall SetCluster(Fmx::Tmswebgmapsclusters::TMapCluster* const Value);
	void __fastcall SetClusterItem(Fmx::Tmswebgmapsclusters::TClusterItem* const Value);
	void __fastcall SetIconColor(const Fmx::Tmswebgmapscommon::TMarkerIconColor Value);
	void __fastcall SetIconHeight(const int Value);
	void __fastcall SetIconWidth(const int Value);
	void __fastcall SetIconZoomHeight(const int Value);
	void __fastcall SetIconZoomWidth(const int Value);
	void __fastcall SetMarkerIconState(const Fmx::Tmswebgmapscommon::TMarkerIconState Value);
	void __fastcall SetText(const System::UnicodeString Value);
	
public:
	__fastcall virtual TMarker(System::Classes::TCollection* Collection);
	__fastcall virtual ~TMarker(void);
	virtual void __fastcall Assign(System::Classes::TPersistent* Source);
	
__published:
	__property bool Clickable = {read=FClickable, write=SetClickable, nodefault};
	__property Fmx::Tmswebgmapsclusters::TMapCluster* Cluster = {read=FCluster, write=SetCluster};
	__property Fmx::Tmswebgmapsclusters::TClusterItem* ClusterItem = {read=FClusterItem, write=SetClusterItem};
	__property int ClusterIndex = {read=FClusterIndex, write=SetClusterIndex, default=-1};
	__property System::UnicodeString Data = {read=FData, write=FData};
	__property bool Draggable = {read=FDraggable, write=SetDraggable, nodefault};
	__property double Latitude = {read=FLatitude, write=SetLatitude};
	__property double Longitude = {read=FLongitude, write=SetLongitude};
	__property System::UnicodeString Icon = {read=FIcon, write=SetIcon};
	__property Fmx::Tmswebgmapscommon::TMarkerIconColor IconColor = {read=FIconColor, write=SetIconColor, default=1};
	__property int IconWidth = {read=FIconWidth, write=SetIconWidth, default=-1};
	__property int IconHeight = {read=FIconHeight, write=SetIconHeight, default=-1};
	__property int IconZoomWidth = {read=FIconZoomWidth, write=SetIconZoomWidth, default=-1};
	__property int IconZoomHeight = {read=FIconZoomHeight, write=SetIconZoomHeight, default=-1};
	__property Fmx::Tmswebgmapscommon::TMarkerIconState IconState = {read=FMarkerIconState, write=SetMarkerIconState, default=0};
	__property bool Flat = {read=FFlat, write=SetFlat, nodefault};
	__property bool InitialDropAnimation = {read=FInitialDropAnimation, write=SetInitialDropAnimation, nodefault};
	__property TMapLabel* MapLabel = {read=FMapLabel, write=SetMapLabel};
	__property TSubMarkers* SubMarkers = {read=FSubMarkers, write=FSubMarkers};
	__property int Tag = {read=FTag, write=SetTag, default=0};
	__property System::UnicodeString Text = {read=FText, write=SetText};
	__property System::UnicodeString Title = {read=FTitle, write=SetTitle};
	__property bool Visible = {read=FVisible, write=SetVisible, nodefault};
	__property int Zindex = {read=FZindex, write=SetZindex, nodefault};
};


class PASCALIMPLEMENTATION TMarkers : public System::Classes::TCollection
{
	typedef System::Classes::TCollection inherited;
	
public:
	TMarker* operator[](int index) { return this->Items[index]; }
	
private:
	Fmx::Tmswebgmapscommonfunctions::TBounds* FBounds;
	Fmx::Controls::TControl* FWebGMaps;
	HIDESBASE TMarker* __fastcall GetItem(int Index);
	HIDESBASE void __fastcall SetItem(int Index, TMarker* Value);
	
protected:
	DYNAMIC System::Classes::TPersistent* __fastcall GetOwner(void);
	virtual void __fastcall Update(System::Classes::TCollectionItem* Item);
	virtual void __fastcall Notify(System::Classes::TCollectionItem* Item, System::Classes::TCollectionNotification Action);
	void __fastcall LoadFromPOIStreamInt(System::Classes::TStream* AStream, Fmx::Tmswebgmapscommon::TMarkerIconColor MarkerColor, System::UnicodeString Icon);
	
public:
	__fastcall TMarkers(Fmx::Controls::TControl* AWebGMaps);
	__fastcall virtual ~TMarkers(void);
	void __fastcall LoadFromPOIStream(System::Classes::TStream* AStream)/* overload */;
	void __fastcall LoadFromPOIStream(System::Classes::TStream* AStream, Fmx::Tmswebgmapscommon::TMarkerIconColor MarkerColor)/* overload */;
	void __fastcall LoadFromPOIStream(System::Classes::TStream* AStream, System::UnicodeString Icon)/* overload */;
	void __fastcall LoadFromPOI(System::UnicodeString AFileName)/* overload */;
	void __fastcall LoadFromPOI(System::UnicodeString AFileName, Fmx::Tmswebgmapscommon::TMarkerIconColor MarkerColor)/* overload */;
	void __fastcall LoadFromPOI(System::UnicodeString AFileName, System::UnicodeString Icon)/* overload */;
	void __fastcall SaveToPOI(System::UnicodeString AFileName);
	void __fastcall SaveToPOIStream(System::Classes::TStream* AStream);
	HIDESBASE TMarker* __fastcall Add(double Latitude, double Longitude, System::UnicodeString Title, System::UnicodeString Icon, bool Draggable, bool Visible, bool Clickable, bool Flat, bool InitialDropAnimation, int zIndex, Fmx::Tmswebgmapscommon::TMarkerIconColor IconColor, int IconWidth = 0xffffffff, int IconHeight = 0xffffffff, int IconZoomWidth = 0xffffffff, int IconZoomHeight = 0xffffffff, System::UnicodeString Text = System::UnicodeString())/* overload */;
	HIDESBASE TMarker* __fastcall Add(double Latitude, double Longitude, System::UnicodeString Title, System::UnicodeString Icon, bool Draggable, bool Visible, bool Clickable, bool Flat, bool InitialDropAnimation, int zIndex, int IconWidth, int IconHeight, int IconZoomWidth = 0xffffffff, int IconZoomHeight = 0xffffffff)/* overload */;
	HIDESBASE TMarker* __fastcall Add(double Latitude, double Longitude, System::UnicodeString Title, System::UnicodeString Icon, bool Draggable, bool Visible, bool Clickable, bool Flat, bool InitialDropAnimation, int zIndex)/* overload */;
	HIDESBASE TMarker* __fastcall Add(double Latitude, double Longitude, System::UnicodeString Title = System::UnicodeString(), System::UnicodeString Text = System::UnicodeString())/* overload */;
	HIDESBASE TMarker* __fastcall Add(double Latitude, double Longitude, System::UnicodeString Title, Fmx::Tmswebgmapscommon::TMarkerIconColor IconColor)/* overload */;
	HIDESBASE TMarker* __fastcall Add(void)/* overload */;
	__property TMarker* Items[int index] = {read=GetItem, write=SetItem/*, default*/};
	Fmx::Tmswebgmapscommonfunctions::TBounds* __fastcall Bounds(void);
};


//-- var, const, procedure ---------------------------------------------------
}	/* namespace Tmswebgmapsmarkers */
}	/* namespace Fmx */
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_FMX_TMSWEBGMAPSMARKERS)
using namespace Fmx::Tmswebgmapsmarkers;
#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_TmswebgmapsmarkersHPP
