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

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

#ifndef Fmx_TmspanelHPP
#define Fmx_TmspanelHPP

#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>	// Pascal unit
#include <SysInit.hpp>	// Pascal unit
#include <System.SysUtils.hpp>	// Pascal unit
#include <System.Classes.hpp>	// Pascal unit
#include <FMX.Types.hpp>	// Pascal unit
#include <FMX.Controls.hpp>	// Pascal unit
#include <FMX.Objects.hpp>	// Pascal unit
#include <System.Types.hpp>	// Pascal unit
#include <System.UITypes.hpp>	// Pascal unit
#include <FMX.Ani.hpp>	// Pascal unit
#include <FMX.TMSBaseControl.hpp>	// Pascal unit
#include <FMX.TMSBitmapContainer.hpp>	// Pascal unit
#include <FMX.TMSHTMLText.hpp>	// Pascal unit
#include <FMX.TMSBitmap.hpp>	// Pascal unit
#include <System.UIConsts.hpp>	// Pascal unit
#include <FMX.Styles.hpp>	// Pascal unit
#include <FMX.Graphics.hpp>	// Pascal unit
#include <System.Math.Vectors.hpp>	// Pascal unit

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

namespace Fmx
{
namespace Tmspanel
{
//-- type declarations -------------------------------------------------------
enum DECLSPEC_DENUM TPanelButtonType : unsigned char { pbtClose, pbtMinMax };

class DELPHICLASS TTMSFMXPanelButtonShape;
class DELPHICLASS TTMSFMXPanel;
class PASCALIMPLEMENTATION TTMSFMXPanelButtonShape : public Fmx::Objects::TRoundRect
{
	typedef Fmx::Objects::TRoundRect inherited;
	
private:
	TTMSFMXPanel* FPanel;
	Fmx::Graphics::TBrush* FFillDown;
	Fmx::Graphics::TBrush* FStrokeDown;
	Fmx::Graphics::TBrush* FStrokeHot;
	Fmx::Graphics::TBrush* FFillHot;
	TPanelButtonType FButtonType;
	bool FMinimized;
	System::Uitypes::TAlphaColor FSignColor;
	void __fastcall SetFillDown(Fmx::Graphics::TBrush* const Value);
	void __fastcall SetStrokeDown(Fmx::Graphics::TBrush* const Value);
	bool __fastcall GetIsHot(void);
	void __fastcall SetFillHot(Fmx::Graphics::TBrush* const Value);
	void __fastcall SetStrokeHot(Fmx::Graphics::TBrush* const Value);
	void __fastcall SetMinimized(const bool Value);
	
protected:
	virtual void __fastcall DoMouseEnter(void);
	virtual void __fastcall DoMouseLeave(void);
	virtual void __fastcall MouseDown(System::Uitypes::TMouseButton Button, System::Classes::TShiftState Shift, float X, float Y);
	virtual void __fastcall MouseMove(System::Classes::TShiftState Shift, float X, float Y);
	virtual void __fastcall MouseUp(System::Uitypes::TMouseButton Button, System::Classes::TShiftState Shift, float X, float Y);
	virtual void __fastcall Click(void);
	__property bool IsHot = {read=GetIsHot, nodefault};
	__property TTMSFMXPanel* Panel = {read=FPanel, write=FPanel};
	__property bool Minimized = {read=FMinimized, write=SetMinimized, default=0};
	
public:
	__fastcall virtual TTMSFMXPanelButtonShape(System::Classes::TComponent* AOwner);
	__fastcall virtual ~TTMSFMXPanelButtonShape(void);
	virtual void __fastcall Paint(void);
	
__published:
	__property TPanelButtonType ButtonType = {read=FButtonType, write=FButtonType, default=0};
	__property System::Uitypes::TAlphaColor SignColor = {read=FSignColor, write=FSignColor, nodefault};
	__property Fmx::Graphics::TBrush* StrokeDown = {read=FStrokeDown, write=SetStrokeDown};
	__property Fmx::Graphics::TBrush* FillDown = {read=FFillDown, write=SetFillDown};
	__property Fmx::Graphics::TBrush* StrokeHot = {read=FStrokeHot, write=SetStrokeHot};
	__property Fmx::Graphics::TBrush* FillHot = {read=FFillHot, write=SetFillHot};
	__property Fill;
	__property Stroke;
	__property StrokeThickness = {default=0};
	__property StrokeCap;
	__property StrokeDash;
	__property StrokeJoin;
};


class PASCALIMPLEMENTATION TTMSFMXPanel : public Fmx::Tmsbasecontrol::TTMSFMXBaseControl
{
	typedef Fmx::Tmsbasecontrol::TTMSFMXBaseControl inherited;
	
private:
	int FUpdateCount;
	Fmx::Tmsbitmapcontainer::TTMSFMXBitmapContainer* FBitmapContainer;
	bool FCollaps;
	bool FStyleApplied;
	float FFullHeight;
	bool FFooterVisibled;
	bool FContainerVisibled;
	System::UnicodeString FText;
	System::UnicodeString FCaption;
	System::UnicodeString FFooterText;
	System::Classes::TNotifyEvent FOnMaximize;
	System::Classes::TNotifyEvent FOnMinimize;
	System::Classes::TNotifyEvent FOnClose;
	Fmx::Tmshtmltext::TTMSFMXHTMLTextAnchorClickEvent FOnCaptionAnchorClick;
	Fmx::Tmshtmltext::TTMSFMXHTMLTextAnchorClickEvent FOnFooterTextAnchorClick;
	Fmx::Tmshtmltext::TTMSFMXHTMLTextAnchorClickEvent FOnTextAnchorClick;
	void __fastcall OnContainerResize(System::TObject* Sender);
	void __fastcall OnMinMaxBtnClick(System::TObject* Sender);
	void __fastcall OnCloseBtnClick(System::TObject* Sender);
	void __fastcall OnCollapsAnimFinished(System::TObject* Sender);
	System::UnicodeString __fastcall GetVersion(void);
	int __fastcall GetVersionNr(void);
	void __fastcall SetVersion(const System::UnicodeString Value);
	void __fastcall SetBitmapContainer(Fmx::Tmsbitmapcontainer::TTMSFMXBitmapContainer* const Value);
	void __fastcall SetCollaps(const bool Value);
	void __fastcall SetText(const System::UnicodeString Value);
	void __fastcall SetCaption(const System::UnicodeString Value);
	void __fastcall SetFooterText(const System::UnicodeString Value);
	void __fastcall DoCollaps(const bool Value, bool Animate = true);
	
protected:
	virtual void __fastcall Notification(System::Classes::TComponent* AComponent, System::Classes::TOperation Operation);
	virtual NativeUInt __fastcall GetInstance(void);
	virtual void __fastcall ApplyStyle(void);
	Fmx::Controls::TControl* __fastcall GetContainer(void);
	Fmx::Controls::TControl* __fastcall GetHeader(void);
	Fmx::Tmshtmltext::TTMSFMXHTMLText* __fastcall GetHeaderText(void);
	int __fastcall GetHeaderHeight(void);
	int __fastcall GetFooterHeight(void);
	Fmx::Controls::TControl* __fastcall GetFooter(void);
	Fmx::Tmshtmltext::TTMSFMXHTMLText* __fastcall GetFooterText(void);
	TTMSFMXPanelButtonShape* __fastcall GetCloseBtn(void);
	TTMSFMXPanelButtonShape* __fastcall GetMinMaxBtn(void);
	Fmx::Tmshtmltext::TTMSFMXHTMLText* __fastcall GetContainerText(void);
	Fmx::Ani::TFloatAnimation* __fastcall CollapsAnimation(void);
	System::Types::TRectF __fastcall GetContainerRect(void);
	virtual void __fastcall Resize(void);
	virtual void __fastcall SetWidth(const float Value);
	virtual void __fastcall SetHeight(const float Value);
	void __fastcall UpdateCaption(void);
	void __fastcall UpdateText(void);
	void __fastcall UpdateFooterText(void);
	void __fastcall AssignEvents(void);
	void __fastcall AssignBitmapContainer(void);
	void __fastcall DoAnchorClickHeader(System::TObject* Sender, System::UnicodeString AAnchor);
	void __fastcall DoAnchorClickFooter(System::TObject* Sender, System::UnicodeString AAnchor);
	void __fastcall DoAnchorClickContainerText(System::TObject* Sender, System::UnicodeString AAnchor);
	
public:
	__fastcall virtual TTMSFMXPanel(System::Classes::TComponent* AOwner);
	__fastcall virtual ~TTMSFMXPanel(void);
	virtual void __fastcall BeginUpdate(void);
	virtual void __fastcall EndUpdate(void);
	virtual void __fastcall SetBounds(float X, float Y, float AWidth, float AHeight);
	int __fastcall GetUpdateCount(void);
	
__published:
	__property Fmx::Tmsbitmapcontainer::TTMSFMXBitmapContainer* BitmapContainer = {read=FBitmapContainer, write=SetBitmapContainer};
	__property System::UnicodeString Caption = {read=FCaption, write=SetCaption};
	__property bool Collaps = {read=FCollaps, write=SetCollaps, default=0};
	__property System::UnicodeString Text = {read=FText, write=SetText};
	__property System::UnicodeString FooterText = {read=FFooterText, write=SetFooterText};
	__property System::UnicodeString Version = {read=GetVersion, write=SetVersion};
	__property System::Classes::TNotifyEvent OnClose = {read=FOnClose, write=FOnClose};
	__property System::Classes::TNotifyEvent OnMinimize = {read=FOnMinimize, write=FOnMinimize};
	__property System::Classes::TNotifyEvent OnMaximize = {read=FOnMaximize, write=FOnMaximize};
	__property Fmx::Tmshtmltext::TTMSFMXHTMLTextAnchorClickEvent OnCaptionAnchorClick = {read=FOnCaptionAnchorClick, write=FOnCaptionAnchorClick};
	__property Fmx::Tmshtmltext::TTMSFMXHTMLTextAnchorClickEvent OnTextAnchorClick = {read=FOnTextAnchorClick, write=FOnTextAnchorClick};
	__property Fmx::Tmshtmltext::TTMSFMXHTMLTextAnchorClickEvent OnFooterTextAnchorClick = {read=FOnFooterTextAnchorClick, write=FOnFooterTextAnchorClick};
};


//-- var, const, procedure ---------------------------------------------------
static const System::Int8 MAJ_VER = System::Int8(0x1);
static const System::Int8 MIN_VER = System::Int8(0x5);
static const System::Int8 REL_VER = System::Int8(0x0);
static const System::Int8 BLD_VER = System::Int8(0x2);
}	/* namespace Tmspanel */
}	/* namespace Fmx */
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_FMX_TMSPANEL)
using namespace Fmx::Tmspanel;
#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_TmspanelHPP
