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

// (DO NOT EDIT: machine generated header) 'AnyScroll.pas' rev: 22.00

#ifndef AnyscrollHPP
#define AnyscrollHPP

#pragma delphiheader begin
#pragma option push
#pragma option -w-      // All warnings off
#pragma option -Vx      // Zero-length empty class member functions
#pragma pack(push,8)
#include <System.hpp>	// Pascal unit
#include <SysInit.hpp>	// Pascal unit
#include <Windows.hpp>	// Pascal unit
#include <Messages.hpp>	// Pascal unit
#include <SysUtils.hpp>	// Pascal unit
#include <Graphics.hpp>	// Pascal unit
#include <Classes.hpp>	// Pascal unit
#include <ExtCtrls.hpp>	// Pascal unit
#include <AnyHook.hpp>	// Pascal unit
#include <FlatSB.hpp>	// Pascal unit
#include <Types.hpp>	// Pascal unit

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

namespace Anyscroll
{
//-- type declarations -------------------------------------------------------
#pragma option push -b-
enum TBarPosCode { bpcNone, bpcHArrowL, bpcHArrowR, bpcHPageL, bpcHPageR, bpcHThumb, bpcVArrowU, bpcVArrowD, bpcVPageU, bpcVPageD, bpcVThumb, bpcCross };
#pragma option pop

#pragma option push -b-
enum TWndType { wtNormal, wtListView, wtGrid, wtScollBox };
#pragma option pop

typedef void __fastcall (__closure *TDrawEvent)(System::TObject* Sender, const Types::TRect &ScrollRect, Graphics::TCanvas* Canvas, TBarPosCode Code, const Types::TRect &DrawRect, bool Downed, bool Disable, bool Focused);

class DELPHICLASS TWScroll;
class PASCALIMPLEMENTATION TWScroll : public Classes::TComponent
{
	typedef Classes::TComponent inherited;
	
private:
	Graphics::TBitmap* FBitmap16;
	Graphics::TBitmap* FBitmap18;
	Classes::TList* FWndList;
	TDrawEvent FDrawEvent;
	void __fastcall SetScrollGlyph16(const Graphics::TBitmap* Value);
	void __fastcall SetScrollGlyph18(const Graphics::TBitmap* Value);
	void __fastcall InternalInitWnd(HWND hWnd, TWndType WndType);
	void __fastcall ScrollBit16Change(System::TObject* Sender);
	void __fastcall ScrollBit18Change(System::TObject* Sender);
	void __fastcall UpdateAll(void);
	
public:
	void __fastcall InitWnd(HWND hWnd, TWndType WndType = (TWndType)(0x0));
	void __fastcall UnInitWnd(HWND hWnd);
	__fastcall virtual TWScroll(Classes::TComponent* AOwner);
	__fastcall virtual ~TWScroll(void);
	__property Graphics::TBitmap* ScrollGlyph16 = {read=FBitmap16, write=SetScrollGlyph16};
	__property Graphics::TBitmap* ScrollGlyph18 = {read=FBitmap18, write=SetScrollGlyph18};
	__property TDrawEvent OnDrawEvent = {read=FDrawEvent, write=FDrawEvent};
};


//-- var, const, procedure ---------------------------------------------------

}	/* namespace Anyscroll */
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE)
using namespace Anyscroll;
#endif
#pragma pack(pop)
#pragma option pop

#pragma delphiheader end.
//-- end unit ----------------------------------------------------------------
#endif	// AnyscrollHPP
