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

// (DO NOT EDIT: machine generated header) 'FMX.uecNativeMiniMap.pas' rev: 36.00 (Windows)

#ifndef Fmx_UecnativeminimapHPP
#define Fmx_UecnativeminimapHPP

#pragma delphiheader begin
#pragma option push
#if defined(__BORLANDC__) && !defined(__clang__)
#pragma option -w-      // All warnings off
#pragma option -Vx      // Zero-length empty class member 
#endif
#pragma pack(push,8)
#include <System.hpp>
#include <SysInit.hpp>
#include <System.SysUtils.hpp>
#include <System.Types.hpp>
#include <System.UITypes.hpp>
#include <System.Rtti.hpp>
#include <System.Classes.hpp>
#include <FMX.Types.hpp>
#include <FMX.Controls.hpp>
#include <FMX.Forms.hpp>
#include <FMX.Objects.hpp>
#include <System.UIConsts.hpp>
#include <FMX.uecNativeTileServer.hpp>
#include <FMX.uecMapUtil.hpp>
#include <FMX.uecNativeMapControl.hpp>
#include <FMX.Graphics.hpp>
#include <FMX.uecNativeShape.hpp>

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

namespace Fmx
{
namespace Uecnativeminimap
{
//-- forward type declarations -----------------------------------------------
class DELPHICLASS TECNativeMiniMap;
//-- type declarations -------------------------------------------------------
class PASCALIMPLEMENTATION TECNativeMiniMap : public Fmx::Objects::TShape
{
	typedef Fmx::Objects::TShape inherited;
	
private:
	Fmx::Objects::TRectangle* FRectangle;
	Fmx::Uecnativemapcontrol::TECNativeMap* FMap;
	Fmx::Uecnativemapcontrol::TECNativeMap* FMiniMap;
	Fmx::Uecmaputil::TNativeMapObserver* FObserver;
	Fmx::Uecmaputil::TColor FBorderColor;
	Fmx::Uecmaputil::TColor FColor;
	Fmx::Uecmaputil::TTileServer FTileServer;
	bool FLoupe;
	int FDeltaPosX;
	int FDeltaPosY;
	__int64 FLastTickLoupe;
	System::Byte FBorderSize;
	System::Byte FDeltaZoom;
	System::Byte FViewOpacity;
	Fmx::Uecnativeshape::TECShapePolygone* FMiniPolygone;
	Fmx::Uecmaputil::TAnchorPosition FPosition;
	void __fastcall CopyMapParam();
	void __fastcall setColor(Fmx::Uecmaputil::TColor value);
	HIDESBASE void __fastcall setPosition(const Fmx::Uecmaputil::TAnchorPosition value);
	void __fastcall setViewOpacity(System::Byte value);
	void __fastcall setDeltaZoom(System::Byte value);
	void __fastcall setLoupe(bool value);
	void __fastcall setMap(Fmx::Uecnativemapcontrol::TECNativeMap* const value);
	void __fastcall WM_Subject_Free(System::TObject* sender);
	void __fastcall WM_Subject_Size(System::TObject* sender);
	void __fastcall WM_Subject_Move(System::TObject* sender);
	void __fastcall WM_Subject_EndMove(System::TObject* sender);
	void __fastcall WM_Subject_Rotate(System::TObject* sender);
	void __fastcall WM_Subject_MouseMove(System::TObject* sender);
	void __fastcall WM_Subject_Bounds(System::TObject* sender);
	void __fastcall WM_Subject_TileServer(System::TObject* sender);
	void __fastcall UpdateMiniMap();
	void __fastcall minimapMapMove(System::TObject* sender, const double Lat, const double Lng);
	void __fastcall minimapMapClick(System::TObject* sender, const double Lat, const double Lng);
	void __fastcall minimapChangeMapZoom(System::TObject* sender);
	void __fastcall setTileServer(Fmx::Uecmaputil::TTileServer value);
	Fmx::Uecnativetileserver::TTileServerInfo* __fastcall getTileServerInfo();
	void __fastcall setBorderColor(const Fmx::Uecmaputil::TColor value);
	void __fastcall setBorderSize(const System::Byte value);
	void __fastcall setDeltaPosX(const int value);
	void __fastcall setDeltaPosY(const int value);
	Fmx::Graphics::TBitmap* __fastcall getScreenShot();
	
protected:
	virtual void __fastcall Paint();
	
public:
	__fastcall virtual TECNativeMiniMap(System::Classes::TComponent* AOwner);
	__fastcall virtual ~TECNativeMiniMap();
	void __fastcall setTileHeader(const System::UnicodeString Name, const System::UnicodeString Value);
	virtual bool __fastcall PointInObject(float x, float y);
	
__published:
	__property Fmx::Uecnativemapcontrol::TECNativeMap* Map = {read=FMap, write=setMap};
	__property Fmx::Uecmaputil::TColor BorderColor = {read=FBorderColor, write=setBorderColor, nodefault};
	__property System::Byte BorderSize = {read=FBorderSize, write=setBorderSize, nodefault};
	__property int XMargin = {read=FDeltaPosX, write=setDeltaPosX, nodefault};
	__property int YMargin = {read=FDeltaPosY, write=setDeltaPosY, nodefault};
	__property Fmx::Uecmaputil::TAnchorPosition AnchorPosition = {read=FPosition, write=setPosition, nodefault};
	__property Fmx::Uecmaputil::TTileServer TileServer = {read=FTileServer, write=setTileServer, nodefault};
	__property Fmx::Uecnativetileserver::TTileServerInfo* TileServerInfo = {read=getTileServerInfo};
	__property Fmx::Uecmaputil::TColor ViewColor = {read=FColor, write=setColor, nodefault};
	__property System::Byte ViewOpacity = {read=FViewOpacity, write=setViewOpacity, nodefault};
	__property System::Byte DeltaZoom = {read=FDeltaZoom, write=setDeltaZoom, nodefault};
	__property bool Loupe = {read=FLoupe, write=setLoupe, nodefault};
	__property Fmx::Graphics::TBitmap* ScreenShot = {read=getScreenShot};
};


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