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

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

#ifndef Fmx_TmsmatrixlabelHPP
#define Fmx_TmsmatrixlabelHPP

#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 <FMX.Objects.hpp>	// Pascal unit
#include <System.Classes.hpp>	// Pascal unit
#include <System.Types.hpp>	// Pascal unit
#include <System.SysUtils.hpp>	// Pascal unit
#include <System.Math.hpp>	// Pascal unit
#include <System.UITypes.hpp>	// Pascal unit
#include <System.UIConsts.hpp>	// Pascal unit
#include <FMX.TMSBaseControl.hpp>	// Pascal unit
#include <FMX.Controls.hpp>	// Pascal unit
#include <System.Rtti.hpp>	// Pascal unit
#include <FMX.Graphics.hpp>	// Pascal unit

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

namespace Fmx
{
namespace Tmsmatrixlabel
{
//-- type declarations -------------------------------------------------------
enum DECLSPEC_DENUM TMatrixLedStyle : unsigned char { ls9x13, ls14x20, ls19x27 };

enum DECLSPEC_DENUM TMatrixScrollDirection : unsigned char { msdRightToLeft, msdLeftToRight };

enum DECLSPEC_DENUM TMatrixTextStyle : unsigned char { tsUpperCase, tsLowerCase, tsAsIs, tsProperCase };

enum DECLSPEC_DENUM TVrAlignment : unsigned char { vaLeftJustify, vaRightJustify, vaCenter };

enum DECLSPEC_DENUM TVrOrientation : unsigned char { voVertical, voHorizontal };

class DELPHICLASS TLEDPalette;
class PASCALIMPLEMENTATION TLEDPalette : public System::Classes::TPersistent
{
	typedef System::Classes::TPersistent inherited;
	
public:
	System::Uitypes::TColor operator[](int Index) { return Colors[Index]; }
	
private:
	System::Uitypes::TAlphaColor FLow;
	System::Uitypes::TAlphaColor FHigh;
	int FUpdateCount;
	System::Classes::TNotifyEvent FOnChange;
	void __fastcall SetLow(System::Uitypes::TAlphaColor Value);
	void __fastcall SetHigh(System::Uitypes::TAlphaColor Value);
	virtual System::Uitypes::TColor __fastcall GetColors(int Index);
	
protected:
	void __fastcall Changed(void);
	
public:
	__fastcall TLEDPalette(void);
	virtual void __fastcall Assign(System::Classes::TPersistent* Source);
	void __fastcall BeginUpdate(void);
	void __fastcall EndUpdate(void);
	__property System::Classes::TNotifyEvent OnChange = {read=FOnChange, write=FOnChange};
	__property System::Uitypes::TColor Colors[int Index] = {read=GetColors/*, default*/};
	
__published:
	__property System::Uitypes::TAlphaColor Low = {read=FLow, write=SetLow, nodefault};
	__property System::Uitypes::TAlphaColor High = {read=FHigh, write=SetHigh, nodefault};
public:
	/* TPersistent.Destroy */ inline __fastcall virtual ~TLEDPalette(void) { }
	
};


class DELPHICLASS TLEDText;
class PASCALIMPLEMENTATION TLEDText : public Fmx::Tmsbasecontrol::TTMSFMXBaseShape
{
	typedef Fmx::Tmsbasecontrol::TTMSFMXBaseShape inherited;
	
private:
	System::UnicodeString FText;
	Fmx::Graphics::TFont* FFont;
	Fmx::Types::TTextAlign FVertTextAlign;
	Fmx::Types::TTextAlign FHorzTextAlign;
	bool FWordWrap;
	bool FAutoSize;
	bool FStretch;
	bool FLedsVisible;
	TMatrixTextStyle FTextStyle;
	TVrAlignment FAlignment;
	int FSpacing;
	int FLeds;
	TMatrixLedStyle FLedStyle;
	TVrOrientation FOrientation;
	int FPosition;
	int Fledw;
	int fLedh;
	System::UnicodeString FChars;
	System::UnicodeString FColors;
	System::WideChar FCurColor;
	TLEDPalette* FPalette;
	bool FAutoScroll;
	Fmx::Types::TTimer* FTimer;
	TMatrixScrollDirection FScrollDirection;
	int FMargin;
	void __fastcall OnPaletteChanged(System::TObject* Sender);
	void __fastcall OnTimerEvent(System::TObject* Sender);
	void __fastcall SetText(const System::UnicodeString Value);
	void __fastcall SetFont(Fmx::Graphics::TFont* const Value);
	void __fastcall SetHorzTextAlign(const Fmx::Types::TTextAlign Value);
	void __fastcall SetVertTextAlign(const Fmx::Types::TTextAlign Value);
	void __fastcall SetWordWrap(const bool Value);
	void __fastcall SetAutoSize(const bool Value);
	void __fastcall SetStretch(const bool Value);
	void __fastcall SetAlignment(const TVrAlignment Value);
	void __fastcall SetLeds(const int Value);
	void __fastcall SetLedStyle(const TMatrixLedStyle Value);
	void __fastcall SetLedsVisible(const bool Value);
	void __fastcall SetOrientation(const TVrOrientation Value);
	void __fastcall SetSpacing(const int Value);
	void __fastcall SetTextStyle(const TMatrixTextStyle Value);
	void __fastcall SetPalette(TLEDPalette* const Value);
	void __fastcall SetAutoScroll(const bool Value);
	int __fastcall GetTimeInterval(void);
	void __fastcall SetTimeInterval(const int Value);
	void __fastcall SetMargin(const int Value);
	
protected:
	virtual void __fastcall FontChanged(System::TObject* Sender);
	virtual void __fastcall Paint(void);
	virtual System::Rtti::TValue __fastcall GetData(void);
	virtual void __fastcall SetData(const System::Rtti::TValue &Value);
	void __fastcall AdjustSize(void);
	virtual void __fastcall LoadBitmaps(void);
	virtual void __fastcall Loaded(void);
	virtual void __fastcall AdjustControlSize(void);
	void __fastcall UpdateAlignment(void);
	void __fastcall Decode(System::UnicodeString S);
	void __fastcall PaintLed(float X, float Y, System::WideChar Ch, System::Uitypes::TAlphaColor AColor);
	void __fastcall PaintLeds(void);
	virtual void __fastcall DoScrollDone(void);
	virtual void __fastcall UpdateControlCanvas(void);
	__property bool AutoScroll = {read=FAutoScroll, write=SetAutoScroll, default=0};
	__property int TimeInterval = {read=GetTimeInterval, write=SetTimeInterval, default=500};
	__property TMatrixScrollDirection ScrollDirection = {read=FScrollDirection, write=FScrollDirection, default=0};
	
public:
	__fastcall virtual TLEDText(System::Classes::TComponent* AOwner);
	__fastcall virtual ~TLEDText(void);
	
__published:
	__property bool AutoSize = {read=FAutoSize, write=SetAutoSize, default=0};
	__property Fill;
	__property Fmx::Graphics::TFont* Font = {read=FFont, write=SetFont};
	__property Fmx::Types::TTextAlign HorzTextAlign = {read=FHorzTextAlign, write=SetHorzTextAlign, nodefault};
	__property Fmx::Types::TTextAlign VertTextAlign = {read=FVertTextAlign, write=SetVertTextAlign, nodefault};
	__property System::UnicodeString Text = {read=FText, write=SetText};
	__property bool Stretch = {read=FStretch, write=SetStretch, default=0};
	__property bool WordWrap = {read=FWordWrap, write=SetWordWrap, default=1};
	__property TMatrixTextStyle TextStyle = {read=FTextStyle, write=SetTextStyle, default=0};
	__property TVrOrientation Orientation = {read=FOrientation, write=SetOrientation, default=1};
	__property int Leds = {read=FLeds, write=SetLeds, default=15};
	__property int Spacing = {read=FSpacing, write=SetSpacing, default=2};
	__property TLEDPalette* Palette = {read=FPalette, write=SetPalette};
	__property TMatrixLedStyle LedStyle = {read=FLedStyle, write=SetLedStyle, default=1};
	__property bool LedsVisible = {read=FLedsVisible, write=SetLedsVisible, default=1};
	__property TVrAlignment Alignment = {read=FAlignment, write=SetAlignment, default=0};
	__property int Margin = {read=FMargin, write=SetMargin, default=10};
};


class DELPHICLASS TTMSFMXMatrixLabel;
class PASCALIMPLEMENTATION TTMSFMXMatrixLabel : public Fmx::Tmsbasecontrol::TTMSFMXBaseControl
{
	typedef Fmx::Tmsbasecontrol::TTMSFMXBaseControl inherited;
	
private:
	bool FAutoScroll;
	int FTimeInterval;
	TMatrixScrollDirection FScrollDirection;
	System::UnicodeString FText;
	void __fastcall SetAutoScroll(const bool Value);
	void __fastcall SetScrollDirection(const TMatrixScrollDirection Value);
	void __fastcall SetTimeInterval(const int Value);
	void __fastcall SetText(const System::UnicodeString Value);
	System::UnicodeString __fastcall GetVersion(void);
	int __fastcall GetVersionNr(void);
	
protected:
	virtual NativeUInt __fastcall GetInstance(void);
	virtual Fmx::Types::TFmxObject* __fastcall GetStyleObject(void)/* overload */;
	void __fastcall ApplyProperties(Fmx::Types::TFmxObject* AControl);
	virtual void __fastcall ApplyStyle(void);
	
public:
	__fastcall virtual TTMSFMXMatrixLabel(System::Classes::TComponent* AOwner);
	virtual void __fastcall SetBounds(float X, float Y, float AWidth, float AHeight);
	
__published:
	__property System::UnicodeString Version = {read=GetVersion};
	__property System::UnicodeString Text = {read=FText, write=SetText};
	__property bool AutoScroll = {read=FAutoScroll, write=SetAutoScroll, default=0};
	__property int TimeInterval = {read=FTimeInterval, write=SetTimeInterval, default=500};
	__property TMatrixScrollDirection ScrollDirection = {read=FScrollDirection, write=SetScrollDirection, default=0};
public:
	/* TTMSFMXBaseControl.Destroy */ inline __fastcall virtual ~TTMSFMXMatrixLabel(void) { }
	
/* 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 MAJ_VER = System::Int8(0x1);
static const System::Int8 MIN_VER = System::Int8(0x0);
static const System::Int8 REL_VER = System::Int8(0x5);
static const System::Int8 BLD_VER = System::Int8(0x2);
}	/* namespace Tmsmatrixlabel */
}	/* namespace Fmx */
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_FMX_TMSMATRIXLABEL)
using namespace Fmx::Tmsmatrixlabel;
#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_TmsmatrixlabelHPP
