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

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

#ifndef uecLegendPanelHPP
#define uecLegendPanelHPP

#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 <Vcl.Forms.hpp>
#include <System.SysUtils.hpp>
#include <System.Classes.hpp>
#include <Vcl.Graphics.hpp>
#include <Vcl.Controls.hpp>
#include <Vcl.StdCtrls.hpp>
#include <Vcl.ExtCtrls.hpp>
#include <uecNativeMapControl.hpp>
#include <UECMapUtil.hpp>
#include <System.UITypes.hpp>

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

namespace Ueclegendpanel
{
//-- forward type declarations -----------------------------------------------
class DELPHICLASS TPanelCustomLegende;
class DELPHICLASS TItemLegend;
class DELPHICLASS TPanelLegend;
class DELPHICLASS TLegendComponent;
//-- type declarations -------------------------------------------------------
enum DECLSPEC_DENUM TVisualStyle : unsigned char { vsFrame, vsFillRect, vsSolidLine, vsDotLine, vsDashLine, vsDashDotLine };

class PASCALIMPLEMENTATION TPanelCustomLegende : public Vcl::Extctrls::TPanel
{
	typedef Vcl::Extctrls::TPanel inherited;
	
private:
	System::Uitypes::TColor FBorderColor;
	TVisualStyle FStyle;
	int FWeight;
	void __fastcall setStyle(const TVisualStyle AValue);
	void __fastcall setWeight(const int AValue);
	void __fastcall setBorderColor(const System::Uitypes::TColor AColor);
	HIDESBASE MESSAGE void __fastcall WMEraseBkgnd(Winapi::Messages::TWMEraseBkgnd &Message);
	
protected:
	virtual void __fastcall Paint();
	
public:
	__property System::Uitypes::TColor BorderColor = {read=FBorderColor, write=setBorderColor, nodefault};
	__property TVisualStyle Style = {read=FStyle, write=setStyle, nodefault};
	__property int Weight = {read=FWeight, write=setWeight, nodefault};
public:
	/* TCustomPanel.Create */ inline __fastcall virtual TPanelCustomLegende(System::Classes::TComponent* AOwner) : Vcl::Extctrls::TPanel(AOwner) { }
	
public:
	/* TCustomControl.Destroy */ inline __fastcall virtual ~TPanelCustomLegende() { }
	
public:
	/* TWinControl.CreateParented */ inline __fastcall TPanelCustomLegende(HWND ParentWindow) : Vcl::Extctrls::TPanel(ParentWindow) { }
	
};


enum DECLSPEC_DENUM TVisualAlignment : unsigned char { valLeft, valRight };

class PASCALIMPLEMENTATION TItemLegend : public Vcl::Extctrls::TPanel
{
	typedef Vcl::Extctrls::TPanel inherited;
	
private:
	System::Classes::TNotifyEvent FOnItemCheckBoxChange;
	System::Classes::TNotifyEvent FOnItemClick;
	System::Uitypes::TColor FVisualColor;
	Vcl::Stdctrls::TCheckBox* FCheckBox;
	TPanelCustomLegende* FColor;
	TPanelCustomLegende* FSepa;
	TPanelCustomLegende* FPCaption;
	Vcl::Stdctrls::TLabel* FCaption;
	Vcl::Extctrls::TImage* FImage;
	System::TObject* FTagObject;
	TVisualAlignment FVisualAlignment;
	System::Classes::TAlignment FItemAlignment;
	System::Uitypes::TColor __fastcall getColor();
	HIDESBASE void __fastcall setColor(const System::Uitypes::TColor AColor);
	System::Uitypes::TColor __fastcall getBorderColor();
	void __fastcall setBorderColor(const System::Uitypes::TColor AColor);
	Vcl::Graphics::TGraphic* __fastcall getGraphic();
	void __fastcall setGraphic(Vcl::Graphics::TGraphic* const AGraphic);
	System::UnicodeString __fastcall getCaption();
	void __fastcall setCaption(const System::UnicodeString ACaption);
	void __fastcall setVisualStyle(const TVisualStyle AValue);
	TVisualStyle __fastcall getVisualStyle();
	void __fastcall setVisualWeight(const int AValue);
	int __fastcall getVisualWeight();
	void __fastcall setItemAlignment(const System::Classes::TAlignment AValue);
	void __fastcall setVisualAlignment(const TVisualAlignment AValue);
	void __fastcall setVisualWidth(const int AValue);
	int __fastcall getVisualWidth();
	void __fastcall setFontSize(const int AValue);
	int __fastcall getFontSize();
	void __fastcall setFontName(const System::UnicodeString AValue);
	System::UnicodeString __fastcall getFontName();
	void __fastcall setFontColor(const System::Uitypes::TColor AValue);
	System::Uitypes::TColor __fastcall getFontColor();
	void __fastcall setItemHeight(const int AValue);
	int __fastcall getItemHeight();
	void __fastcall setItemChecked(const bool AValue);
	bool __fastcall getItemChecked();
	void __fastcall setItemCheckBox(const bool AValue);
	bool __fastcall getItemCheckBox();
	void __fastcall setItemCursor(const System::Uitypes::TCursor AValue);
	System::Uitypes::TCursor __fastcall getItemCursor();
	int __fastcall MinHeight();
	void __fastcall doclick(System::TObject* Sender);
	void __fastcall doCheckBox(System::TObject* Sender);
	
public:
	__fastcall virtual TItemLegend(System::Classes::TComponent* AOwner);
	bool __fastcall isGraphic();
	__property System::Uitypes::TColor ItemColor = {read=getColor, write=setColor, nodefault};
	__property System::Uitypes::TColor ItemBorderColor = {read=getBorderColor, write=setBorderColor, nodefault};
	__property System::UnicodeString ItemCaption = {read=getCaption, write=setCaption};
	__property bool ItemChecked = {read=getItemChecked, write=setItemChecked, nodefault};
	__property bool ItemCheckBox = {read=getItemCheckBox, write=setItemCheckBox, nodefault};
	__property Vcl::Graphics::TGraphic* ItemGraphic = {read=getGraphic, write=setGraphic};
	__property TVisualStyle ItemVisualStyle = {read=getVisualStyle, write=setVisualStyle, nodefault};
	__property int ItemVisualWidth = {read=getVisualWidth, write=setVisualWidth, nodefault};
	__property int ItemVisualWeight = {read=getVisualWeight, write=setVisualWeight, nodefault};
	__property TVisualAlignment ItemVisualAlignment = {read=FVisualAlignment, write=setVisualAlignment, nodefault};
	__property System::Classes::TAlignment ItemAlignment = {read=FItemAlignment, write=setItemAlignment, nodefault};
	__property int ItemFontSize = {read=getFontSize, write=setFontSize, nodefault};
	__property System::UnicodeString ItemFontName = {read=getFontName, write=setFontName};
	__property System::Uitypes::TColor ItemFontColor = {read=getFontColor, write=setFontColor, nodefault};
	__property int ItemHeight = {read=getItemHeight, write=setItemHeight, nodefault};
	__property System::Uitypes::TCursor ItemCursor = {read=getItemCursor, write=setItemCursor, nodefault};
	__property System::TObject* ItemObject = {read=FTagObject, write=FTagObject};
public:
	/* TCustomControl.Destroy */ inline __fastcall virtual ~TItemLegend() { }
	
public:
	/* TWinControl.CreateParented */ inline __fastcall TItemLegend(HWND ParentWindow) : Vcl::Extctrls::TPanel(ParentWindow) { }
	
};


class PASCALIMPLEMENTATION TPanelLegend : public TPanelCustomLegende
{
	typedef TPanelCustomLegende inherited;
	
private:
	Vcl::Forms::TScrollBox* FScrollBox;
	Vcl::Stdctrls::TLabel* FFooter;
	Vcl::Stdctrls::TLabel* FTitle;
	System::Classes::TList* FList;
	System::Classes::TNotifyEvent FOnItemClick;
	System::Classes::TNotifyEvent FOnItemCheckBoxChange;
	int FItemHeight;
	System::Classes::TAlignment FItemAlignment;
	TVisualAlignment FVisualAlignment;
	int FVisualWidth;
	int FVisualWeight;
	int FFontSize;
	bool FItemCheckBox;
	int FXYRadius;
	void __fastcall doClick(System::TObject* Sender);
	void __fastcall doCheckBoxChange(System::TObject* Sender);
	void __fastcall setOnItemClick(const System::Classes::TNotifyEvent AValue);
	void __fastcall setVisualAlignment(const TVisualAlignment AValue);
	void __fastcall setItemCheckBox(const bool AValue);
	void __fastcall setItemAlignment(const System::Classes::TAlignment AValue);
	void __fastcall setItemHeight(const int AValue);
	void __fastcall setVisualWidth(const int AValue);
	void __fastcall setVisualWeight(const int AValue);
	void __fastcall setFontSize(const int AValue);
	void __fastcall setTitleFontSize(const int AValue);
	int __fastcall getTitleFontSize();
	System::UnicodeString __fastcall getTitleFontName();
	void __fastcall setTitleFontName(const System::UnicodeString AValue);
	System::Uitypes::TColor __fastcall getFontColor();
	void __fastcall setFontColor(const System::Uitypes::TColor AValue);
	System::UnicodeString __fastcall getTitle();
	void __fastcall setTitle(const System::UnicodeString ATitle);
	System::Classes::TAlignment __fastcall getTitleAlignment();
	void __fastcall setTitleAlignment(const System::Classes::TAlignment AValue);
	System::Classes::TAlignment __fastcall getFooterAlignment();
	void __fastcall setFooterAlignment(const System::Classes::TAlignment AValue);
	System::UnicodeString __fastcall getFooter();
	void __fastcall setFooter(const System::UnicodeString ATitle);
	void __fastcall setFooterFontSize(const int AValue);
	int __fastcall getFooterFontSize();
	int __fastcall getCount();
	TItemLegend* __fastcall getItem(int index);
	void __fastcall setXYRadius(const int Value);
	
public:
	__fastcall virtual TPanelLegend(System::Classes::TComponent* AOwner);
	__fastcall virtual ~TPanelLegend();
	TItemLegend* __fastcall Add(const System::UnicodeString ACaption, const System::Uitypes::TColor AColor, const TVisualStyle AStyle = (TVisualStyle)(0x1), System::TObject* const AObject = (System::TObject*)(0x0))/* overload */;
	TItemLegend* __fastcall Add(const System::UnicodeString ACaption, Vcl::Graphics::TGraphic* const AGraphic, System::TObject* const AObject = (System::TObject*)(0x0))/* overload */;
	void __fastcall Delete(int index);
	__property int Count = {read=getCount, nodefault};
	__property TItemLegend* Items[int Index] = {read=getItem};
	__property TVisualAlignment VisualAlignment = {read=FVisualAlignment, write=setVisualAlignment, nodefault};
	__property int VisualWidth = {read=FVisualWidth, write=setVisualWidth, nodefault};
	__property int VisualWeight = {read=FVisualWeight, write=setVisualWeight, nodefault};
	__property System::Classes::TAlignment ItemAlignment = {read=FItemAlignment, write=setItemAlignment, nodefault};
	__property bool ItemCheckBox = {read=FItemCheckBox, write=setItemCheckBox, nodefault};
	__property int ItemHeight = {read=FItemHeight, write=setItemHeight, nodefault};
	__property int ItemFontSize = {read=FFontSize, write=setFontSize, nodefault};
	__property int TitleFontSize = {read=getTitleFontSize, write=setTitleFontSize, nodefault};
	__property int FooterFontSize = {read=getFooterFontSize, write=setFooterFontSize, nodefault};
	__property System::UnicodeString FontName = {read=getTitleFontName, write=setTitleFontName};
	__property System::Uitypes::TColor FontColor = {read=getFontColor, write=setFontColor, nodefault};
	__property System::UnicodeString Title = {read=getTitle, write=setTitle};
	__property System::Classes::TAlignment TitleAlignment = {read=getTitleAlignment, write=setTitleAlignment, nodefault};
	__property System::UnicodeString Footer = {read=getFooter, write=setFooter};
	__property System::Classes::TAlignment FooterAlignment = {read=getFooterAlignment, write=setFooterAlignment, nodefault};
	__property int XYRadius = {read=FXYRadius, write=setXYRadius, nodefault};
	__property System::Classes::TNotifyEvent OnItemClick = {read=FOnItemClick, write=setOnItemClick};
	__property System::Classes::TNotifyEvent OnItemCheckBoxChange = {read=FOnItemCheckBoxChange, write=FOnItemCheckBoxChange};
public:
	/* TWinControl.CreateParented */ inline __fastcall TPanelLegend(HWND ParentWindow) : TPanelCustomLegende(ParentWindow) { }
	
};


#pragma pack(push,4)
class PASCALIMPLEMENTATION TLegendComponent : public Uecnativemapcontrol::TECCustomTool
{
	typedef Uecnativemapcontrol::TECCustomTool inherited;
	
private:
	TPanelLegend* FLegend;
	
public:
	__fastcall virtual TLegendComponent(Uecnativemapcontrol::TNativeMapControl* Map)/* overload */;
	__fastcall virtual ~TLegendComponent();
	__property TPanelLegend* Legend = {read=FLegend};
public:
	/* TECCustomTool.Create */ inline __fastcall virtual TLegendComponent(Uecnativemapcontrol::TNativeMapControl* Map, const System::UnicodeString AName)/* overload */ : Uecnativemapcontrol::TECCustomTool(Map, AName) { }
	
};

#pragma pack(pop)

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

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