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

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

#ifndef Fmx_TmsbasecontrolHPP
#define Fmx_TmsbasecontrolHPP

#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 <FMX.Types.hpp>	// Pascal unit
#include <System.Types.hpp>	// Pascal unit
#include <FMX.Objects.hpp>	// Pascal unit
#include <System.Classes.hpp>	// Pascal unit
#include <FMX.Dialogs.hpp>	// Pascal unit
#include <System.UITypes.hpp>	// Pascal unit
#include <FMX.Controls.hpp>	// Pascal unit
#include <System.UIConsts.hpp>	// Pascal unit
#include <FMX.Styles.hpp>	// Pascal unit
#include <FMX.StdCtrls.hpp>	// Pascal unit
#include <FMX.Edit.hpp>	// Pascal unit
#include <FMX.Graphics.hpp>	// Pascal unit
#include <Winapi.Windows.hpp>	// Pascal unit

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

namespace Fmx
{
namespace Tmsbasecontrol
{
//-- type declarations -------------------------------------------------------
class DELPHICLASS TTMSFMXBaseShape;
class PASCALIMPLEMENTATION TTMSFMXBaseShape : public Fmx::Objects::TShape
{
	typedef Fmx::Objects::TShape inherited;
	
__published:
	__property RotationAngle = {default=0};
	__property RotationCenter;
	__property Align = {default=0};
	__property Position;
	__property Width;
	__property Height;
	__property Padding;
	__property Anchors;
	__property ClipChildren = {default=0};
	__property ClipParent = {default=0};
	__property Cursor = {default=0};
	__property DesignVisible = {default=1};
	__property DragMode = {default=0};
	__property EnableDragHighlight = {default=1};
	__property Enabled = {default=1};
	__property Fill;
	__property Locked = {default=0};
	__property HitTest = {default=1};
	__property Margins;
	__property Opacity;
	__property PopupMenu;
	__property Scale;
	__property StrokeThickness = {stored=false, default=0};
	__property StrokeCap = {stored=false};
	__property StrokeDash = {stored=false};
	__property StrokeJoin = {stored=false};
	__property Stroke;
	__property Visible = {default=1};
	__property OnApplyStyleLookup;
	__property OnDragEnter;
	__property OnDragLeave;
	__property OnDragOver;
	__property OnDragDrop;
	__property OnDragEnd;
	__property OnClick;
	__property OnDblClick;
	__property OnMouseDown;
	__property OnMouseMove;
	__property OnMouseUp;
	__property OnMouseWheel;
	__property OnMouseEnter;
	__property OnMouseLeave;
	__property OnPainting;
	__property OnPaint;
	__property OnResize;
public:
	/* TShape.Create */ inline __fastcall virtual TTMSFMXBaseShape(System::Classes::TComponent* AOwner) : Fmx::Objects::TShape(AOwner) { }
	/* TShape.Destroy */ inline __fastcall virtual ~TTMSFMXBaseShape(void) { }
	
};


class DELPHICLASS TTMSFMXBaseCollection;
#pragma pack(push,4)
class PASCALIMPLEMENTATION TTMSFMXBaseCollection : public System::Classes::TCollection
{
	typedef System::Classes::TCollection inherited;
	
__published:
	HIDESBASE void __fastcall Delete(int Index);
public:
	/* TCollection.Create */ inline __fastcall TTMSFMXBaseCollection(System::Classes::TCollectionItemClass ItemClass) : System::Classes::TCollection(ItemClass) { }
	/* TCollection.Destroy */ inline __fastcall virtual ~TTMSFMXBaseCollection(void) { }
	
};

#pragma pack(pop)

class DELPHICLASS TTMSFMXBaseControl;
class PASCALIMPLEMENTATION TTMSFMXBaseControl : public Fmx::Controls::TStyledControl
{
	typedef Fmx::Controls::TStyledControl inherited;
	
private:
	bool FAppliedStyle;
	Fmx::Graphics::TStrokeJoin FStrokeJoin;
	float FStrokeThickness;
	Fmx::Graphics::TStrokeCap FStrokeCap;
	Fmx::Graphics::TStrokeDash FStrokeDash;
	Fmx::Graphics::TBrush* FFill;
	Fmx::Graphics::TBrush* FStroke;
	void __fastcall SetFill(Fmx::Graphics::TBrush* const Value);
	void __fastcall SetStroke(Fmx::Graphics::TBrush* const Value);
	void __fastcall SetStrokeCap(const Fmx::Graphics::TStrokeCap Value);
	void __fastcall SetStrokeDash(const Fmx::Graphics::TStrokeDash Value);
	void __fastcall SetStrokeJoin(const Fmx::Graphics::TStrokeJoin Value);
	void __fastcall SetStrokeThickness(const float Value);
	
protected:
	virtual NativeUInt __fastcall GetInstance(void);
	virtual System::UnicodeString __fastcall GetClassStyleName(void);
	virtual void __fastcall ApplyAdditionalStyle(Fmx::Types::TFmxObject* AControl);
	virtual Fmx::Types::TFmxObject* __fastcall GetStyleObject(void)/* overload */;
	Fmx::Types::TFmxObject* __fastcall LoadFromAResource(void);
	__property Fmx::Graphics::TBrush* Fill = {read=FFill, write=SetFill};
	__property Fmx::Graphics::TBrush* Stroke = {read=FStroke, write=SetStroke};
	__property float StrokeThickness = {read=FStrokeThickness, write=SetStrokeThickness};
	__property Fmx::Graphics::TStrokeCap StrokeCap = {read=FStrokeCap, write=SetStrokeCap, default=0};
	__property Fmx::Graphics::TStrokeDash StrokeDash = {read=FStrokeDash, write=SetStrokeDash, default=0};
	__property Fmx::Graphics::TStrokeJoin StrokeJoin = {read=FStrokeJoin, write=SetStrokeJoin, default=0};
	virtual void __fastcall ApplyStyle(void);
	
public:
	__fastcall virtual TTMSFMXBaseControl(System::Classes::TComponent* AOwner);
	__fastcall virtual ~TTMSFMXBaseControl(void);
	virtual void __fastcall Paint(void);
	virtual void __fastcall Update(void);
	
__published:
	__property Align = {default=0};
	__property Anchors;
	__property CanParentFocus = {default=0};
	__property ClipChildren = {default=0};
	__property ClipParent = {default=0};
	__property Cursor = {default=0};
	__property DesignVisible = {default=1};
	__property DisableFocusEffect = {default=1};
	__property DragMode = {default=0};
	__property EnableDragHighlight = {default=1};
	__property Enabled = {default=1};
	__property Locked = {default=0};
	__property Height;
	__property HitTest = {default=1};
	__property Margins;
	__property Opacity;
	__property Padding;
	__property PopupMenu;
	__property Position;
	__property RotationAngle = {default=0};
	__property RotationCenter;
	__property Scale;
	__property StyleLookup;
	__property TabOrder = {default=-1};
	__property Visible = {default=1};
	__property Width;
	__property OnApplyStyleLookup;
	__property OnDragEnter;
	__property OnDragLeave;
	__property OnDragOver;
	__property OnDragDrop;
	__property OnDragEnd;
	__property OnKeyDown;
	__property OnKeyUp;
	__property OnCanFocus;
	__property OnClick;
	__property OnDblClick;
	__property OnEnter;
	__property OnExit;
	__property OnMouseDown;
	__property OnMouseMove;
	__property OnMouseUp;
	__property OnMouseWheel;
	__property OnMouseEnter;
	__property OnMouseLeave;
	__property OnPainting;
	__property OnPaint;
	__property OnResize;
/* Hoisted overloads: */
	
protected:
	inline Fmx::Types::TFmxObject* __fastcall  GetStyleObject(const bool Clone){ return Fmx::Controls::TStyledControl::GetStyleObject(Clone); }
	
};


//-- var, const, procedure ---------------------------------------------------
static const System::Int8 TMSPlatforms = System::Int8(0x5f);
extern DELPHI_PACKAGE bool __fastcall PointInRect(const System::Types::TPointF &P, const System::Types::TRectF &Rect);
extern DELPHI_PACKAGE void __fastcall CloneChildrenBase(Fmx::Types::TFmxObject* Source, Fmx::Types::TFmxObject* Destination);
extern DELPHI_PACKAGE bool __fastcall FindRCData(NativeUInt ModuleHandle, System::UnicodeString Name);
}	/* namespace Tmsbasecontrol */
}	/* namespace Fmx */
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_FMX_TMSBASECONTROL)
using namespace Fmx::Tmsbasecontrol;
#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_TmsbasecontrolHPP
