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

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

#ifndef Fmx_TmsbitmapHPP
#define Fmx_TmsbitmapHPP

#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.Classes.hpp>	// Pascal unit
#include <System.Types.hpp>	// Pascal unit
#include <System.SysUtils.hpp>	// Pascal unit
#include <System.UITypes.hpp>	// Pascal unit
#include <FMX.Types.hpp>	// Pascal unit
#include <FMX.TMSBaseControl.hpp>	// Pascal unit
#include <FMX.Objects.hpp>	// Pascal unit
#include <FMX.TMSBitmapContainer.hpp>	// Pascal unit
#include <FMX.Controls.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 Tmsbitmap
{
//-- type declarations -------------------------------------------------------
typedef System::DynamicArray<bool> Fmx_Tmsbitmap__1;

typedef System::DynamicArray<System::DynamicArray<bool> > TBool2DArray;

class DELPHICLASS TTMSFMXCustomBitmap;
class PASCALIMPLEMENTATION TTMSFMXCustomBitmap : public Fmx::Tmsbasecontrol::TTMSFMXBaseShape
{
	typedef Fmx::Tmsbasecontrol::TTMSFMXBaseShape inherited;
	
private:
	Fmx::Tmsbitmapcontainer::TTMSFMXBitmapContainer* FBitmapContainer;
	System::UnicodeString FBitmapName;
	bool FStretch;
	Fmx::Graphics::TBitmap* FBitmap;
	Fmx::Objects::TImage* FLinkedImage;
	bool FCropping;
	bool FCenter;
	bool FAutoSize;
	bool FAspectRatio;
	bool FHighSpeed;
	System::Classes::TShiftState FShiftState;
	System::UnicodeString __fastcall GetVersion(void);
	int __fastcall GetVersionNr(void);
	void __fastcall SetVersion(const System::UnicodeString Value);
	void __fastcall SetBitmapName(const System::UnicodeString Value);
	void __fastcall SetBitmapContainer(Fmx::Tmsbitmapcontainer::TTMSFMXBitmapContainer* const Value);
	void __fastcall SetStretch(const bool Value);
	void __fastcall SetBitmap(Fmx::Graphics::TBitmap* const Value);
	void __fastcall SetLinkedImage(Fmx::Objects::TImage* const Value);
	void __fastcall SetCropping(const bool Value);
	void __fastcall SetCenter(const bool Value);
	void __fastcall SetAutoSize(const bool Value);
	void __fastcall SetAspectRatio(const bool Value);
	void __fastcall SetHighSpeed(const bool Value);
	
protected:
	virtual void __fastcall MouseUp(System::Uitypes::TMouseButton Button, System::Classes::TShiftState Shift, float X, float Y);
	virtual void __fastcall Notification(System::Classes::TComponent* AComponent, System::Classes::TOperation Operation);
	void __fastcall BitmapChanged(System::TObject* Sender);
	__property bool AspectRatio = {read=FAspectRatio, write=SetAspectRatio, default=1};
	__property System::UnicodeString Version = {read=GetVersion, write=SetVersion};
	__property Fmx::Objects::TImage* LinkedImage = {read=FLinkedImage, write=SetLinkedImage};
	__property Fmx::Graphics::TBitmap* Bitmap = {read=FBitmap, write=SetBitmap};
	__property System::UnicodeString BitmapName = {read=FBitmapName, write=SetBitmapName};
	__property Fmx::Tmsbitmapcontainer::TTMSFMXBitmapContainer* BitmapContainer = {read=FBitmapContainer, write=SetBitmapContainer};
	__property bool Stretch = {read=FStretch, write=SetStretch, default=0};
	__property bool Cropping = {read=FCropping, write=SetCropping, default=0};
	__property bool Center = {read=FCenter, write=SetCenter, default=1};
	__property bool AutoSize = {read=FAutoSize, write=SetAutoSize, default=0};
	__property bool HighSpeed = {read=FHighSpeed, write=SetHighSpeed, default=1};
	
public:
	__property System::Classes::TShiftState ShiftState = {read=FShiftState, write=FShiftState, nodefault};
	Fmx::Graphics::TBitmap* __fastcall GetPaintBitmap(void);
	System::Types::TRectF __fastcall GetPaintRectangle(void);
	__fastcall virtual TTMSFMXCustomBitmap(System::Classes::TComponent* AOwner);
	__fastcall virtual ~TTMSFMXCustomBitmap(void);
	virtual void __fastcall Paint(void);
	Fmx::Graphics::TBitmap* __fastcall GetBitmap(void);
	void __fastcall GetAspectSize(float &x, float &y, float &w, float &h, float ow, float oh, float nw, float nh);
	System::Math::Vectors::TPolygon __fastcall MagicWand(float X, float Y, float Tolerance = 1.000000E-01f, float DensityValue = 5.000000E+01f, float DensityMax = 5.000000E+01f);
};


class DELPHICLASS TTMSFMXBitmap;
class PASCALIMPLEMENTATION TTMSFMXBitmap : public TTMSFMXCustomBitmap
{
	typedef TTMSFMXCustomBitmap inherited;
	
__published:
	__property AspectRatio = {default=1};
	__property Version = {default=0};
	__property LinkedImage;
	__property Bitmap;
	__property BitmapName = {default=0};
	__property BitmapContainer;
	__property Stretch = {default=0};
	__property Cropping = {default=0};
	__property Center = {default=1};
	__property AutoSize = {default=0};
	__property HighSpeed = {default=1};
	__property Position;
	__property Width;
	__property Height;
	__property Visible = {default=1};
	__property ClipChildren = {default=0};
public:
	/* TTMSFMXCustomBitmap.Create */ inline __fastcall virtual TTMSFMXBitmap(System::Classes::TComponent* AOwner) : TTMSFMXCustomBitmap(AOwner) { }
	/* TTMSFMXCustomBitmap.Destroy */ inline __fastcall virtual ~TTMSFMXBitmap(void) { }
	
};


//-- 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);
extern DELPHI_PACKAGE System::Math::Vectors::TPolygon __fastcall GetMagicWandPolygon(Fmx::Graphics::TBitmap* ABitmap, float X, float Y, float Tolerance = 1.000000E-01f, float DensityValue = 5.000000E+01f, float DensityMax = 5.000000E+01f);
}	/* namespace Tmsbitmap */
}	/* namespace Fmx */
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_FMX_TMSBITMAP)
using namespace Fmx::Tmsbitmap;
#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_TmsbitmapHPP
