//---------------------------------------------------------------------------
#ifndef TransSkinScrollBarH
#define TransSkinScrollBarH
class TBtnPanel;
//---------------------------------------------------------------------------
class PACKAGE TTransSkinScollBar : public Vcl::Extctrls::TPanel
{

private:

	System::Classes::TNotifyEvent FChangePos;

    bool FVertial;
	void __fastcall SetVertial(bool bFVertial);

	int FSBShow ,FSBTotal, FSBTop;
	void __fastcall SetSBTop(int nTop);

	void __fastcall SetTransparent(bool bTrans);
	void __fastcall SetTransparentValue(BYTE value);

	void __fastcall BtnPaintThumb(int BsTmp, TRect TRectTmp, TCanvas *pCanvas);
	void __fastcall BtnEventThumb(int MsTmp, int XPos, int YPos);

	void __fastcall BtnPaintBKG(int BsTmp, TRect TRectTmp, TCanvas *pCanvas);
	void __fastcall BtnEventBKG(int MsTmp, int XPos, int YPos);

	void __fastcall BtnPaintLINEUp(int BsTmp, TRect TRectTmp, TCanvas *pCanvas);
	void __fastcall BtnEventLINEUp(int MsTmp, int XPos, int YPos);

	void __fastcall BtnPaintLINEDown(int BsTmp, TRect TRectTmp, TCanvas *pCanvas);
	void __fastcall BtnEventLINEDown(int MsTmp, int XPos, int YPos);

	void __fastcall AddThumbTop(int nAdd, bool bEraseBKG=false, TTimer *pTTimer=NULL);
	void __fastcall SetThumbTop(int nTop, bool bEraseBKG=false, TTimer *pTTimer=NULL);

	bool m_bLineUp;
	bool m_bPageUp;

	TTimer *m_pTTimerLine;
	TTimer *m_pTTimerPage;
	void __fastcall  EventTimerThumb(System::TObject* Sender);

    bool m_bPices;
	int  FThumbWidth;

protected:

	TBtnPanel *m_BtnBKG;
	TBtnPanel *m_BtnThumb;
	TBtnPanel *m_BtnLINEUp;
	TBtnPanel *m_BtnLINEDown;

	int  __fastcall CalThumbHeight();
	int  __fastcall CalThumbTop();
	int  __fastcall CalThumbWidth();
	int  __fastcall CalThumbLeft();

	virtual void __fastcall CreateWnd();
	virtual void __fastcall CreateParams(Controls::TCreateParams &Params);
	virtual void __fastcall Paint(void);
	MESSAGE void __fastcall WMSize(Winapi::Messages::TWMSize &Message);
	MESSAGE void __fastcall WMEraseBkgnd(TWMEraseBkgnd &Message);

	BEGIN_MESSAGE_MAP
		MESSAGE_HANDLER(WM_ERASEBKGND, TWMEraseBkgnd, WMEraseBkgnd)
		MESSAGE_HANDLER(WM_SIZE, TWMSize, WMSize)
	END_MESSAGE_MAP( Vcl::Extctrls::TPanel )

public:

	__fastcall virtual  TTransSkinScollBar(System::Classes::TComponent* AOwner);
	__fastcall virtual ~TTransSkinScollBar(void);

__published:

	__property bool Vertial = {read=FVertial, write=SetVertial, default=true};
	__property int  SBShow  = {read=FSBShow,  write=FSBShow,    default=0 };
	__property int  SBTotal = {read=FSBTotal, write=FSBTotal,   default=0 };
	__property int  SBTop   = {read=FSBTop,   write=SetSBTop,     default=0 };
	__property int  ThumbWidth = {read=FThumbWidth, write=FThumbWidth, default=-1};
	__property TNotifyEvent OnChangePos = {read=FChangePos, write=FChangePos};
};
//---------------------------------------------------------------------------
#endif
