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

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

#ifndef Fmx_UecnativepanoramioHPP
#define Fmx_UecnativepanoramioHPP

#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 <System.SyncObjs.hpp>
#include <System.UIConsts.hpp>
#include <FMX.uecMapUtil.hpp>
#include <FMX.uecOpenMapQuestServices.hpp>
#include <FMX.Dialogs.hpp>
#include <FMX.Types.hpp>
#include <FMX.Controls.hpp>
#include <FMX.Forms.hpp>
#include <FMX.Objects.hpp>
#include <FMX.Platform.hpp>

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

namespace Fmx
{
namespace Uecnativepanoramio
{
//-- forward type declarations -----------------------------------------------
class DELPHICLASS TThreadedPoolPanoramio;
class DELPHICLASS TECNativePanoramio;
//-- type declarations -------------------------------------------------------
class PASCALIMPLEMENTATION TThreadedPoolPanoramio : public System::Classes::TThread
{
	typedef System::Classes::TThread inherited;
	
private:
	System::Classes::TNotifyEvent FEvent;
	System::Syncobjs::TEvent* StartEvent;
	System::UnicodeString FKey;
	System::UnicodeString FUrl;
	System::Classes::TStringList* FItems;
	bool FHasMore;
	bool FAbort;
	bool FInSearch;
	System::Classes::TStringStream* Stream;
	void __fastcall doExecute();
	
protected:
	virtual void __fastcall Execute();
	void __fastcall doEvent();
	
public:
	__fastcall TThreadedPoolPanoramio(bool ACreateSuspended, System::Classes::TNotifyEvent Event, System::Classes::TStringList* const Items);
	__fastcall virtual ~TThreadedPoolPanoramio();
	void __fastcall Abort();
	void __fastcall Search(const System::UnicodeString value);
	__property bool InSearch = {read=FInSearch, nodefault};
};


class PASCALIMPLEMENTATION TECNativePanoramio : public System::TObject
{
	typedef System::TObject inherited;
	
private:
	System::Syncobjs::TCriticalSection* CritSect;
	System::Classes::TStringList* FItems;
	double FLat;
	double FLng;
	double FRadius;
	double FLatSW;
	double FLngSW;
	double FLatNE;
	double FLngNE;
	int FClickIndex;
	int FStart;
	bool FLostCall;
	bool FHasMore;
	System::UnicodeString FSet;
	System::UnicodeString FTag;
	System::UnicodeString FUserId;
	TThreadedPoolPanoramio* FThread;
	Fmx::Uecmaputil::TStringDataCacheList* FCacheItems;
	System::Classes::TNotifyEvent FOnPanoramio;
	void __fastcall getSearch();
	System::UnicodeString __fastcall getOwnerId(int index);
	System::UnicodeString __fastcall getOwnerName(int index);
	System::UnicodeString __fastcall getPhotoDate(int index);
	System::UnicodeString __fastcall getPhotoId(int index);
	double __fastcall getLongitude(int index);
	double __fastcall getLatitude(int index);
	System::UnicodeString __fastcall getPhotoTitle(int index);
	System::UnicodeString __fastcall getPhotoUrl(int index);
	void __fastcall doThread(System::TObject* sender);
	
public:
	__fastcall TECNativePanoramio();
	__fastcall virtual ~TECNativePanoramio();
	void __fastcall SearchAt(const double lat, const double Lng, const double Radius);
	void __fastcall Search();
	void __fastcall NextSearch();
	bool __fastcall IsSearch();
	int __fastcall count();
	System::UnicodeString __fastcall PhotoSize(const int index, Fmx::Uecmaputil::TECPanoramioImageSize size);
	System::UnicodeString __fastcall HtmlCopyright(const int index);
	__property bool HasMore = {read=FHasMore, nodefault};
	__property System::UnicodeString owner_id[int index] = {read=getOwnerId};
	__property System::UnicodeString owner_name[int index] = {read=getOwnerName};
	__property System::UnicodeString photo_date[int index] = {read=getPhotoDate};
	__property System::UnicodeString photo_id[int index] = {read=getPhotoId};
	__property double photo_lng[int index] = {read=getLongitude};
	__property double photo_lat[int index] = {read=getLatitude};
	__property System::UnicodeString photo_title[int index] = {read=getPhotoTitle};
	__property System::UnicodeString photo_file_url[int index] = {read=getPhotoUrl};
	__property double LatSW = {read=FLatSW, write=FLatSW};
	__property double LngSW = {read=FLngSW, write=FLngSW};
	__property double LatNE = {read=FLatNE, write=FLatNE};
	__property double LngNE = {read=FLngNE, write=FLngNE};
	__property System::UnicodeString Tag = {read=FTag, write=FTag};
	__property System::UnicodeString UserId = {read=FUserId, write=FUserId};
	__property int ClickIndex = {read=FClickIndex, write=FClickIndex, nodefault};
	__property int Start = {read=FStart, nodefault};
	__property System::Classes::TNotifyEvent OnPanoramio = {read=FOnPanoramio, write=FOnPanoramio};
};


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