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

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

#ifndef Fmx_TmsnavbarHPP
#define Fmx_TmsnavbarHPP

#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.Math.hpp>	// Pascal unit
#include <System.UITypes.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 <FMX.StdCtrls.hpp>	// Pascal unit
#include <System.UIConsts.hpp>	// Pascal unit
#include <FMX.Styles.hpp>	// Pascal unit
#include <System.Generics.Collections.hpp>	// Pascal unit
#include <FMX.Graphics.hpp>	// Pascal unit
#include <System.Generics.Defaults.hpp>	// Pascal unit

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

namespace Fmx
{
namespace Tmsnavbar
{
//-- type declarations -------------------------------------------------------
class DELPHICLASS TTMSFMXNavBarButtonShape;
class DELPHICLASS TTMSFMXNavBarPanel;
class PASCALIMPLEMENTATION TTMSFMXNavBarButtonShape : public Fmx::Objects::TRectangle
{
	typedef Fmx::Objects::TRectangle inherited;
	
private:
	TTMSFMXNavBarPanel* FNavBarPanel;
	Fmx::Graphics::TBrush* FFillDown;
	Fmx::Graphics::TBrush* FStrokeDown;
	Fmx::Graphics::TBrush* FStrokeHot;
	Fmx::Graphics::TBrush* FFillHot;
	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);
	
protected:
	virtual void __fastcall DoMouseEnter(void);
	virtual void __fastcall DoMouseLeave(void);
	virtual void __fastcall Click(void);
	Fmx::Tmsbitmap::TTMSFMXBitmap* __fastcall ShapeImage(void);
	__property bool IsHot = {read=GetIsHot, nodefault};
	__property TTMSFMXNavBarPanel* NavBarPanel = {read=FNavBarPanel, write=FNavBarPanel};
	
public:
	__fastcall virtual TTMSFMXNavBarButtonShape(System::Classes::TComponent* AOwner);
	__fastcall virtual ~TTMSFMXNavBarButtonShape(void);
	virtual void __fastcall Paint(void);
	
__published:
	__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 DELPHICLASS TNavBarScroller;
#pragma pack(push,4)
class PASCALIMPLEMENTATION TNavBarScroller : public System::TObject
{
	typedef System::TObject inherited;
	
private:
	int FMin;
	int FMax;
	int FPosition;
	bool FVisible;
	void __fastcall SetMax(const int Value);
	void __fastcall SetMin(const int Value);
	void __fastcall SetPosition(const int Value);
	void __fastcall SetVisible(const bool Value);
	
public:
	__fastcall TNavBarScroller(void);
	bool __fastcall CanGoForward(void);
	bool __fastcall CanGoBack(void);
	__property int Min = {read=FMin, write=SetMin, nodefault};
	__property int Max = {read=FMax, write=SetMax, nodefault};
	__property int Position = {read=FPosition, write=SetPosition, nodefault};
	__property bool Visible = {read=FVisible, write=SetVisible, nodefault};
public:
	/* TObject.Destroy */ inline __fastcall virtual ~TNavBarScroller(void) { }
	
};

#pragma pack(pop)

class DELPHICLASS TTMSFMXNavBarPanelSection;
class DELPHICLASS TTMSFMXNavBarPanelSectionShape;
#pragma pack(push,4)
class PASCALIMPLEMENTATION TTMSFMXNavBarPanelSection : public System::Classes::TCollectionItem
{
	typedef System::Classes::TCollectionItem inherited;
	
private:
	int FHeight;
	System::UnicodeString FCaption;
	int FTag;
	Fmx::Controls::TControl* FControl;
	TTMSFMXNavBarPanelSectionShape* FSectionShape;
	void __fastcall SetCaption(const System::UnicodeString Value);
	void __fastcall SetHeight(const int Value);
	void __fastcall SetControl(Fmx::Controls::TControl* const Value);
	
protected:
	TTMSFMXNavBarPanel* __fastcall GetOwnerPanel(void);
	void __fastcall UpdateCaption(void);
	void __fastcall UpdateControlBounds(void);
	__property TTMSFMXNavBarPanelSectionShape* SectionShape = {read=FSectionShape, write=FSectionShape};
	
public:
	__fastcall virtual TTMSFMXNavBarPanelSection(System::Classes::TCollection* Collection);
	__fastcall virtual ~TTMSFMXNavBarPanelSection(void);
	virtual void __fastcall Assign(System::Classes::TPersistent* Source);
	
__published:
	__property System::UnicodeString Caption = {read=FCaption, write=SetCaption};
	__property Fmx::Controls::TControl* Control = {read=FControl, write=SetControl};
	__property int Height = {read=FHeight, write=SetHeight, default=48};
	__property int Tag = {read=FTag, write=FTag, default=0};
};

#pragma pack(pop)

class DELPHICLASS TTMSFMXNavBarPanelSections;
#pragma pack(push,4)
class PASCALIMPLEMENTATION TTMSFMXNavBarPanelSections : public Fmx::Tmsbasecontrol::TTMSFMXBaseCollection
{
	typedef Fmx::Tmsbasecontrol::TTMSFMXBaseCollection inherited;
	
public:
	TTMSFMXNavBarPanelSection* operator[](int Index) { return Items[Index]; }
	
private:
	TTMSFMXNavBarPanel* FOwner;
	HIDESBASE TTMSFMXNavBarPanelSection* __fastcall GetItem(int Index);
	HIDESBASE void __fastcall SetItem(int Index, TTMSFMXNavBarPanelSection* const Value);
	
protected:
	DYNAMIC System::Classes::TPersistent* __fastcall GetOwner(void);
	
public:
	__fastcall TTMSFMXNavBarPanelSections(TTMSFMXNavBarPanel* AOwner);
	HIDESBASE TTMSFMXNavBarPanelSection* __fastcall Add(void);
	HIDESBASE TTMSFMXNavBarPanelSection* __fastcall Insert(int Index);
	__property TTMSFMXNavBarPanelSection* Items[int Index] = {read=GetItem, write=SetItem/*, default*/};
public:
	/* TCollection.Destroy */ inline __fastcall virtual ~TTMSFMXNavBarPanelSections(void) { }
	
};

#pragma pack(pop)

class PASCALIMPLEMENTATION TTMSFMXNavBarPanelSectionShape : public Fmx::Objects::TRoundRect
{
	typedef Fmx::Objects::TRoundRect inherited;
	
private:
	TTMSFMXNavBarPanel* FNavBarPanel;
	
protected:
	Fmx::Tmshtmltext::TTMSFMXHTMLText* __fastcall ShapeCaption(void);
	__property TTMSFMXNavBarPanel* NavBarPanel = {read=FNavBarPanel, write=FNavBarPanel};
	
public:
	__fastcall virtual TTMSFMXNavBarPanelSectionShape(System::Classes::TComponent* AOwner);
	__fastcall virtual ~TTMSFMXNavBarPanelSectionShape(void);
	virtual void __fastcall Paint(void);
	
__published:
	__property Fill;
	__property Stroke;
	__property StrokeThickness = {default=0};
};


class DELPHICLASS TTMSFMXNavBar;
class DELPHICLASS TTMSFMXNavBarTabShape;
class DELPHICLASS TTMSFMXNavBarTabButtonShape;
class PASCALIMPLEMENTATION TTMSFMXNavBarPanel : public Fmx::Stdctrls::TPanel
{
	typedef Fmx::Stdctrls::TPanel inherited;
	
private:
	bool FUpdatingParent;
	TTMSFMXNavBar* FNavBar;
	System::UnicodeString FCaption;
	TTMSFMXNavBarTabShape* FTab;
	TTMSFMXNavBarPanelSections* FSections;
	bool FInternalBoundSet;
	TTMSFMXNavBarTabButtonShape* FTabButton;
	Fmx::Graphics::TBitmap* FBitmap;
	System::UnicodeString FBitmapName;
	System::UnicodeString FSmallBitmapName;
	int FPanelIndex;
	void __fastcall SetCaption(const System::UnicodeString Value);
	void __fastcall SetNavBar(TTMSFMXNavBar* const Value);
	void __fastcall SetSections(TTMSFMXNavBarPanelSections* const Value);
	bool __fastcall GetIsSelected(void);
	void __fastcall SetBitmap(Fmx::Graphics::TBitmap* const Value);
	void __fastcall SetBitmapName(const System::UnicodeString Value);
	void __fastcall BitmapChanged(System::TObject* Sender);
	void __fastcall SetSmallBitmapName(const System::UnicodeString Value);
	int __fastcall GetPanelIndex(void);
	void __fastcall SetPanelIndex(const int Value);
	
protected:
	virtual void __fastcall ApplyStyle(void);
	DYNAMIC void __fastcall SetParentComponent(System::Classes::TComponent* Value);
	virtual void __fastcall ReadState(System::Classes::TReader* Reader);
	virtual void __fastcall Notification(System::Classes::TComponent* AComponent, System::Classes::TOperation Operation);
	virtual void __fastcall SetVisible(const bool Value);
	Fmx::Tmsbitmap::TTMSFMXBitmap* __fastcall ShapeLeftRectangleImage(void);
	Fmx::Objects::TRectangle* __fastcall ShapeLeftRectangle(void);
	Fmx::Tmsbitmap::TTMSFMXBitmap* __fastcall TabButtonShapeImage(void);
	Fmx::Objects::TText* __fastcall ShapeCaption(void);
	void __fastcall AssignBitmapContainer(void);
	void __fastcall UpdateBitmap(void);
	void __fastcall UpdateCaption(void);
	void __fastcall UpdateAllSections(void);
	void __fastcall UpdateSectionsPos(void);
	void __fastcall UpdateControlBounds(void);
	void __fastcall SetSelected(void);
	void __fastcall CloneChildren(Fmx::Types::TFmxObject* Source, Fmx::Types::TFmxObject* Destination);
	bool __fastcall IsSection(Fmx::Types::TFmxObject* AObject);
	TTMSFMXNavBarPanelSectionShape* __fastcall AsSection(Fmx::Types::TFmxObject* AObject);
	TTMSFMXNavBarPanelSectionShape* __fastcall DoesSectionExist(Fmx::Controls::TControl* ParentElement, System::UnicodeString SecName);
	void __fastcall AddSection(TTMSFMXNavBarPanelSection* ASection)/* overload */;
	void __fastcall AddSection(TTMSFMXNavBarPanelSection* ASection, Fmx::Controls::TControl* SecElement, Fmx::Controls::TControl* ParentElement)/* overload */;
	void __fastcall ClearSections(Fmx::Controls::TControl* ParentElement);
	HIDESBASE bool __fastcall IsVisible(void);
	TTMSFMXNavBarPanelSectionShape* __fastcall GetSectionShape(TTMSFMXNavBarPanelSection* Section);
	__property TTMSFMXNavBarTabShape* Tab = {read=FTab, write=FTab};
	__property TTMSFMXNavBarTabButtonShape* TabButton = {read=FTabButton, write=FTabButton};
	
public:
	__fastcall virtual TTMSFMXNavBarPanel(System::Classes::TComponent* AOwner);
	__fastcall virtual ~TTMSFMXNavBarPanel(void);
	virtual void __fastcall SetBounds(float X, float Y, float AWidth, float AHeight);
	__property TTMSFMXNavBar* NavBar = {read=FNavBar, write=SetNavBar};
	__property bool IsSelected = {read=GetIsSelected, nodefault};
	
__published:
	__property System::UnicodeString Caption = {read=FCaption, write=SetCaption};
	__property System::UnicodeString BitmapName = {read=FBitmapName, write=SetBitmapName};
	__property System::UnicodeString SmallBitmapName = {read=FSmallBitmapName, write=SetSmallBitmapName};
	__property TTMSFMXNavBarPanelSections* Sections = {read=FSections, write=SetSections};
	__property Fmx::Graphics::TBitmap* Bitmap = {read=FBitmap, write=SetBitmap};
	__property int PanelIndex = {read=GetPanelIndex, write=SetPanelIndex, nodefault};
};


enum DECLSPEC_DENUM TSizeGripStyle : unsigned char { gsNone, gsDots };

class DELPHICLASS TTMSFMXNavBarSplitterShape;
class PASCALIMPLEMENTATION TTMSFMXNavBarSplitterShape : public Fmx::Objects::TRectangle
{
	typedef Fmx::Objects::TRectangle inherited;
	
private:
	TTMSFMXNavBar* FNavBar;
	Fmx::Graphics::TBrush* FFillHot;
	Fmx::Graphics::TBrush* FStrokeHot;
	System::Types::TPointF FDownPos;
	System::Types::TPointF FMovePos;
	int FOldSplitterPos;
	int FDefTabHeight;
	TSizeGripStyle FSizeGrip;
	System::Uitypes::TAlphaColor FSizeGripColor;
	void __fastcall SetFillHot(Fmx::Graphics::TBrush* const Value);
	void __fastcall SetStrokeHot(Fmx::Graphics::TBrush* const Value);
	bool __fastcall GetIsHot(void);
	void __fastcall SetSizeGrip(const TSizeGripStyle Value);
	void __fastcall SetSizeGripColor(const System::Uitypes::TAlphaColor Value);
	
protected:
	virtual void __fastcall DoMouseEnter(void);
	virtual void __fastcall DoMouseLeave(void);
	virtual void __fastcall Click(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);
	__property TTMSFMXNavBar* NavBar = {read=FNavBar, write=FNavBar};
	
public:
	__fastcall virtual TTMSFMXNavBarSplitterShape(System::Classes::TComponent* AOwner);
	__fastcall virtual ~TTMSFMXNavBarSplitterShape(void);
	virtual void __fastcall Paint(void);
	__property bool IsHot = {read=GetIsHot, nodefault};
	
__published:
	__property TSizeGripStyle SizeGrip = {read=FSizeGrip, write=SetSizeGrip, default=1};
	__property System::Uitypes::TAlphaColor SizeGripColor = {read=FSizeGripColor, write=SetSizeGripColor, default=-16777216};
	__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 TTMSFMXNavBarTabShape : public Fmx::Objects::TRectangle
{
	typedef Fmx::Objects::TRectangle inherited;
	
private:
	TTMSFMXNavBarPanel* FNavBarPanel;
	Fmx::Graphics::TBrush* FFillSelected;
	Fmx::Graphics::TBrush* FStrokeSelected;
	Fmx::Graphics::TBrush* FStrokeHot;
	Fmx::Graphics::TBrush* FFillHot;
	void __fastcall SetFillSelected(Fmx::Graphics::TBrush* const Value);
	void __fastcall SetStrokeSelected(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);
	bool __fastcall GetIsSelected(void);
	
protected:
	virtual void __fastcall DoMouseEnter(void);
	virtual void __fastcall DoMouseLeave(void);
	virtual void __fastcall Click(void);
	Fmx::Objects::TRectangle* __fastcall ShapeLeftRectangle(void);
	Fmx::Tmsbitmap::TTMSFMXBitmap* __fastcall ShapeLeftRectangleImage(void);
	__property bool IsHot = {read=GetIsHot, nodefault};
	__property TTMSFMXNavBarPanel* NavBarPanel = {read=FNavBarPanel, write=FNavBarPanel};
	
public:
	__fastcall virtual TTMSFMXNavBarTabShape(System::Classes::TComponent* AOwner);
	__fastcall virtual ~TTMSFMXNavBarTabShape(void);
	virtual void __fastcall Paint(void);
	Fmx::Objects::TText* __fastcall ShapeCaption(void);
	__property bool IsSelected = {read=GetIsSelected, nodefault};
	
__published:
	__property Fmx::Graphics::TBrush* StrokeSelected = {read=FStrokeSelected, write=SetStrokeSelected};
	__property Fmx::Graphics::TBrush* FillSelected = {read=FFillSelected, write=SetFillSelected};
	__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 TTMSFMXNavBarTabButtonShape : public Fmx::Objects::TRectangle
{
	typedef Fmx::Objects::TRectangle inherited;
	
private:
	TTMSFMXNavBarPanel* FNavBarPanel;
	Fmx::Graphics::TBrush* FFillSelected;
	Fmx::Graphics::TBrush* FStrokeSelected;
	Fmx::Graphics::TBrush* FStrokeHot;
	Fmx::Graphics::TBrush* FFillHot;
	void __fastcall SetFillSelected(Fmx::Graphics::TBrush* const Value);
	void __fastcall SetStrokeSelected(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);
	bool __fastcall GetIsSelected(void);
	
protected:
	virtual void __fastcall DoMouseEnter(void);
	virtual void __fastcall DoMouseLeave(void);
	virtual void __fastcall Click(void);
	Fmx::Tmsbitmap::TTMSFMXBitmap* __fastcall ShapeImage(void);
	__property bool IsHot = {read=GetIsHot, nodefault};
	__property TTMSFMXNavBarPanel* NavBarPanel = {read=FNavBarPanel, write=FNavBarPanel};
	
public:
	__fastcall virtual TTMSFMXNavBarTabButtonShape(System::Classes::TComponent* AOwner);
	__fastcall virtual ~TTMSFMXNavBarTabButtonShape(void);
	virtual void __fastcall Paint(void);
	__property bool IsSelected = {read=GetIsSelected, nodefault};
	
__published:
	__property Fmx::Graphics::TBrush* StrokeSelected = {read=FStrokeSelected, write=SetStrokeSelected};
	__property Fmx::Graphics::TBrush* FillSelected = {read=FFillSelected, write=SetFillSelected};
	__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;
};


typedef void __fastcall (__closure *TPanelActivate)(System::TObject* Sender, int OldActivePanel, int NewActivePanel, bool &Allow);

typedef System::Generics::Collections::TList__1<TTMSFMXNavBarPanel*>* TPanelList;

class PASCALIMPLEMENTATION TTMSFMXNavBar : public Fmx::Tmsbasecontrol::TTMSFMXBaseControl
{
	typedef Fmx::Tmsbasecontrol::TTMSFMXBaseControl inherited;
	
private:
	System::Generics::Collections::TList__1<TTMSFMXNavBarPanel*>* FPanels;
	int FUpdateCount;
	Fmx::Tmsbitmapcontainer::TTMSFMXBitmapContainer* FBitmapContainer;
	int FActiveTabIndex;
	bool FInternalCall;
	TPanelActivate FOnPanelActivate;
	System::Classes::TNotifyEvent FOnChange;
	int FMinPanelHeight;
	int FSplitterPosition;
	bool FCaptionVisible;
	bool FShowSplitter;
	TNavBarScroller* FTabButtonScroller;
	System::UnicodeString FDefaultCaption;
	void __fastcall OnContainerResize(System::TObject* Sender);
	System::UnicodeString __fastcall GetVersion(void);
	int __fastcall GetVersionNr(void);
	void __fastcall SetVersion(const System::UnicodeString Value);
	TTMSFMXNavBarPanel* __fastcall GetPanel(int Index);
	int __fastcall GetPanelCount(void);
	TTMSFMXNavBarPanel* __fastcall GetActivePanel(void);
	void __fastcall SetActivePanel(TTMSFMXNavBarPanel* const Value);
	int __fastcall GetActiveTabIndex(void);
	void __fastcall SetActiveTabIndex(const int Value);
	void __fastcall SetMinPanelHeight(const int Value);
	void __fastcall SetSplitterPosition(const int Value);
	void __fastcall SetCaptionVisible(const bool Value);
	void __fastcall SetShowSplitter(const bool Value);
	void __fastcall ScrollLeftBtnClick(System::TObject* Sender);
	void __fastcall ScrollRightBtnClick(System::TObject* Sender);
	void __fastcall AssignEvents(void);
	void __fastcall SetBitmapContainer(Fmx::Tmsbitmapcontainer::TTMSFMXBitmapContainer* const Value);
	void __fastcall SetDefaultCaption(const System::UnicodeString Value);
	void __fastcall UpdatePanelIndex(void);
	
protected:
	virtual void __fastcall Notification(System::Classes::TComponent* AComponent, System::Classes::TOperation Operation);
	virtual NativeUInt __fastcall GetInstance(void);
	virtual void __fastcall ApplyStyle(void);
	bool __fastcall IsTab(Fmx::Types::TFmxObject* AObject);
	TTMSFMXNavBarTabShape* __fastcall AsTab(Fmx::Types::TFmxObject* AObject);
	TTMSFMXNavBarTabShape* __fastcall DoesTabExist(Fmx::Controls::TControl* ParentElement, System::UnicodeString TabName);
	bool __fastcall IsTabButton(Fmx::Types::TFmxObject* AObject);
	TTMSFMXNavBarTabButtonShape* __fastcall AsTabButton(Fmx::Types::TFmxObject* AObject);
	TTMSFMXNavBarTabButtonShape* __fastcall DoesTabButtonExist(Fmx::Controls::TControl* ParentElement, System::UnicodeString TabButtonName);
	void __fastcall CloneChildren(Fmx::Types::TFmxObject* Source, Fmx::Types::TFmxObject* Destination);
	bool __fastcall CanClone(Fmx::Types::TFmxObject* Source);
	void __fastcall AddTab(TTMSFMXNavBarPanel* APanel)/* overload */;
	void __fastcall AddTab(TTMSFMXNavBarPanel* APanel, Fmx::Controls::TControl* TabElement, Fmx::Controls::TControl* ParentElement)/* overload */;
	void __fastcall ClearTabs(Fmx::Controls::TControl* ParentElement);
	void __fastcall AddTabButton(TTMSFMXNavBarPanel* APanel)/* overload */;
	void __fastcall AddTabButton(TTMSFMXNavBarPanel* APanel, Fmx::Controls::TControl* TabButtonElement, Fmx::Controls::TControl* ParentElement)/* overload */;
	void __fastcall ClearTabButtons(Fmx::Controls::TControl* ParentElement);
	Fmx::Controls::TControl* __fastcall GetContainer(void);
	Fmx::Controls::TControl* __fastcall GetDefaultTabShape(void);
	Fmx::Controls::TControl* __fastcall GetDefaultTabButtonShape(void);
	Fmx::Controls::TControl* __fastcall GetDefaultSectionShape(void);
	Fmx::Controls::TControl* __fastcall GetSplitter(void);
	Fmx::Controls::TControl* __fastcall GetHeader(void);
	Fmx::Objects::TText* __fastcall GetHeaderText(void);
	Fmx::Controls::TControl* __fastcall GetFooter(void);
	TTMSFMXNavBarButtonShape* __fastcall GetRightScrollButton(void);
	TTMSFMXNavBarButtonShape* __fastcall GetLeftScrollButton(void);
	System::Types::TRectF __fastcall GetPanelRect(void);
	System::Types::TRectF __fastcall GetSplitterRect(void);
	int __fastcall GetTabHeight(void);
	System::Types::TRectF __fastcall GetContainerRect(void);
	int __fastcall GetVisiblePanelCount(void);
	void __fastcall UpdateSplitterPosCount(void);
	void __fastcall UpdateCaption(void);
	void __fastcall UpdateAllTabs(void);
	void __fastcall UpdateTabsAndSplitter(void);
	void __fastcall UpdateTabButtonScroller(void);
	void __fastcall UpdateBitmaps(void);
	void __fastcall SetPanelsBound(void);
	virtual void __fastcall DoChange(void);
	void __fastcall ShowNavBarPanel(int PanelIndex);
	System::Generics::Collections::TList__1<TTMSFMXNavBarPanel*>* __fastcall GetVisiblePanelList(void);
	virtual void __fastcall Resize(void);
	virtual void __fastcall SetWidth(const float Value);
	
public:
	__fastcall virtual TTMSFMXNavBar(System::Classes::TComponent* AOwner);
	__fastcall virtual ~TTMSFMXNavBar(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);
	virtual TTMSFMXNavBarPanel* __fastcall CreatePanel(void);
	int __fastcall AddPanel(TTMSFMXNavBarPanel* APanel)/* overload */;
	TTMSFMXNavBarPanel* __fastcall AddPanel(System::UnicodeString PanelCaption)/* overload */;
	TTMSFMXNavBarPanel* __fastcall InsertPanel(int Index);
	void __fastcall RemovePanel(TTMSFMXNavBarPanel* APanel);
	int __fastcall IndexOfPanel(TTMSFMXNavBarPanel* APanel);
	void __fastcall MovePanel(int FromIndex, int ToIndex);
	void __fastcall SelectNextPanel(void);
	void __fastcall SelectPreviousPanel(void);
	int __fastcall FindNextPanelIndex(int CurIndex, bool GoForward);
	TTMSFMXNavBarPanel* __fastcall FindNextPanel(TTMSFMXNavBarPanel* CurPanel, bool GoForward);
	__property TTMSFMXNavBarPanel* Panels[int Index] = {read=GetPanel};
	__property int PanelCount = {read=GetPanelCount, nodefault};
	__property TTMSFMXNavBarPanel* ActivePanel = {read=GetActivePanel, write=SetActivePanel};
	
__published:
	__property int ActiveTabIndex = {read=GetActiveTabIndex, write=SetActiveTabIndex, nodefault};
	__property Fmx::Tmsbitmapcontainer::TTMSFMXBitmapContainer* BitmapContainer = {read=FBitmapContainer, write=SetBitmapContainer};
	__property bool CaptionVisible = {read=FCaptionVisible, write=SetCaptionVisible, default=1};
	__property System::UnicodeString DefaultCaption = {read=FDefaultCaption, write=SetDefaultCaption};
	__property int MinPanelHeight = {read=FMinPanelHeight, write=SetMinPanelHeight, default=100};
	__property System::UnicodeString Version = {read=GetVersion, write=SetVersion};
	__property int SplitterPosition = {read=FSplitterPosition, write=SetSplitterPosition, nodefault};
	__property bool ShowSplitter = {read=FShowSplitter, write=SetShowSplitter, default=1};
	__property TPanelActivate OnPanelActivate = {read=FOnPanelActivate, write=FOnPanelActivate};
	__property System::Classes::TNotifyEvent OnChange = {read=FOnChange, write=FOnChange};
};


//-- 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(0x0);
static const System::Int8 DEFAULT_TABHEIGHT = System::Int8(0x23);
static const System::Int8 DEFAULT_TABBUTTONHEIGHT = System::Int8(0x1e);
static const System::Int8 DEFAULT_TABBUTTONWIDTH = System::Int8(0x12);
static const System::Int8 DEFAULT_SPLITTERHEIGHT = System::Int8(0x7);
static const System::Int8 DEFAULT_SECCAPTIONHEIGHT = System::Int8(0x10);
}	/* namespace Tmsnavbar */
}	/* namespace Fmx */
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_FMX_TMSNAVBAR)
using namespace Fmx::Tmsnavbar;
#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_TmsnavbarHPP
