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

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

#ifndef uecNativeMiniMapHPP
#define 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 <Winapi.Windows.hpp>
#include <Winapi.Messages.hpp>
#include <System.SysUtils.hpp>
#include <System.Variants.hpp>
#include <System.Classes.hpp>
#include <Vcl.Graphics.hpp>
#include <Vcl.Controls.hpp>
#include <Vcl.Forms.hpp>
#include <Vcl.Dialogs.hpp>
#include <UECMapUtil.hpp>
#include <uecNativeMapControl.hpp>
#include <Vcl.ExtCtrls.hpp>
#include <Vcl.StdCtrls.hpp>
#include <uecNativeShape.hpp>
#include <uecNativeTileServer.hpp>
#include <System.UITypes.hpp>

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

namespace Uecnativeminimap
{
//-- forward type declarations -----------------------------------------------
class DELPHICLASS TECNativeMiniMap;
//-- type declarations -------------------------------------------------------
class PASCALIMPLEMENTATION TECNativeMiniMap : public Vcl::Extctrls::TCustomPanel
{
	typedef Vcl::Extctrls::TCustomPanel inherited;
	
private:
	Uecnativemapcontrol::TECNativeMap* FMap;
	Uecnativemapcontrol::TECNativeMap* FMiniMap;
	Uecmaputil::TNativeMapObserver* FObserver;
	System::Uitypes::TColor FBorderColor;
	System::Uitypes::TColor FColor;
	Uecmaputil::TTileServer FTileServer;
	bool FLoupe;
	int FDeltaPosX;
	int FDeltaPosY;
	__int64 FLastTickLoupe;
	System::Byte FBorderSize;
	System::Byte FDeltaZoom;
	System::Byte FViewOpacity;
	Uecnativeshape::TECShapePolygone* FMiniPolygone;
	Uecmaputil::TAnchorPosition FPosition;
	void __fastcall CopyMapParam();
	HIDESBASE void __fastcall setColor(System::Uitypes::TColor value);
	void __fastcall setPosition(const Uecmaputil::TAnchorPosition value);
	void __fastcall setViewOpacity(System::Byte value);
	void __fastcall setDeltaZoom(System::Byte value);
	void __fastcall setLoupe(bool value);
	void __fastcall setMap(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(Uecmaputil::TTileServer value);
	Uecnativetileserver::TTileServerInfo* __fastcall getTileServerInfo();
	void __fastcall setBorderColor(const System::Uitypes::TColor value);
	void __fastcall setBorderSize(const System::Byte value);
	void __fastcall setDeltaPosX(const int value);
	void __fastcall setDeltaPosY(const int value);
	Vcl::Graphics::TBitmap* __fastcall getScreenShot();
	
public:
	__fastcall virtual TECNativeMiniMap(System::Classes::TComponent* AOwner);
	__fastcall virtual ~TECNativeMiniMap();
	void __fastcall setTileHeader(const System::UnicodeString Name, const System::UnicodeString Value);
	
__published:
	__property Uecnativemapcontrol::TECNativeMap* Map = {read=FMap, write=setMap};
	__property System::Uitypes::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 Uecmaputil::TAnchorPosition AnchorPosition = {read=FPosition, write=setPosition, nodefault};
	__property Uecmaputil::TTileServer TileServer = {read=FTileServer, write=setTileServer, nodefault};
	__property Uecnativetileserver::TTileServerInfo* TileServerInfo = {read=getTileServerInfo};
	__property System::Uitypes::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 Vcl::Graphics::TBitmap* ScreenShot = {read=getScreenShot};
public:
	/* TWinControl.CreateParented */ inline __fastcall TECNativeMiniMap(HWND ParentWindow) : Vcl::Extctrls::TCustomPanel(ParentWindow) { }
	
};


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

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