// Borland C++ Builder
// Copyright (c) 1995, 2002 by Borland Software Corporation
// All rights reserved

// (DO NOT EDIT: machine generated header) 'ahmthotkeyholder.pas' rev: 6.00

#ifndef ahmthotkeyholderHPP
#define ahmthotkeyholderHPP

#pragma delphiheader begin
#pragma option push -w-
#pragma option push -Vx
#include <Controls.hpp>	// Pascal unit
#include <ahmsystemclass.hpp>	// Pascal unit
#include <Menus.hpp>	// Pascal unit
#include <Classes.hpp>	// Pascal unit
#include <SysUtils.hpp>	// Pascal unit
#include <Messages.hpp>	// Pascal unit
#include <Windows.hpp>	// Pascal unit
#include <SysInit.hpp>	// Pascal unit
#include <System.hpp>	// Pascal unit

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

namespace Ahmthotkeyholder
{
//-- type declarations -------------------------------------------------------
class DELPHICLASS TAHMHotKey;
class DELPHICLASS TAHMHotKeyHolder;
class DELPHICLASS TAHMHotKeys;
class PASCALIMPLEMENTATION TAHMHotKeys : public Ahmsystemclass::TAHMCollection 
{
	typedef Ahmsystemclass::TAHMCollection inherited;
	
public:
	TAHMHotKey* operator[](int Index) { return Items[Index]; }
	
private:
	TAHMHotKeyHolder* FAHMHotKeyHolder;
	TAHMHotKey* __fastcall GetAHMHotKey(int Index);
	void __fastcall SetAHMHotKey(int Index, TAHMHotKey* Value);
	
protected:
	DYNAMIC Classes::TPersistent* __fastcall GetOwner(void);
	
public:
	__fastcall TAHMHotKeys(TAHMHotKeyHolder* AOwner);
	HIDESBASE TAHMHotKey* __fastcall Add(void);
	HIDESBASE bool __fastcall Delete(int Index);
	__property TAHMHotKey* Items[int Index] = {read=GetAHMHotKey, write=SetAHMHotKey/*, default*/};
public:
	#pragma option push -w-inl
	/* TCollection.Destroy */ inline __fastcall virtual ~TAHMHotKeys(void) { }
	#pragma option pop
	
};


class PASCALIMPLEMENTATION TAHMHotKeyHolder : public Ahmsystemclass::TAHMSystemComponent 
{
	typedef Ahmsystemclass::TAHMSystemComponent inherited;
	
private:
	TAHMHotKeys* FAHMHotKeys;
	Controls::TKeyEvent FOnKeyDown;
	void __fastcall SetAHMHotKeys(TAHMHotKeys* Value);
	
public:
	__fastcall virtual TAHMHotKeyHolder(Classes::TComponent* AOwner);
	__fastcall virtual ~TAHMHotKeyHolder(void);
	
__published:
	__property Controls::TKeyEvent OnKeyDown = {read=FOnKeyDown, write=FOnKeyDown};
	__property TAHMHotKeys* GlobalKeys = {read=FAHMHotKeys, write=SetAHMHotKeys};
};


class PASCALIMPLEMENTATION TAHMHotKey : public Classes::TCollectionItem 
{
	typedef Classes::TCollectionItem inherited;
	
private:
	TAHMHotKeyHolder* FAHMHotKeyHolder;
	Word FAtom;
	bool FActive;
	Controls::TKeyEvent FOnKeyDown;
	Classes::TShortCut FGlobalKey;
	HWND FWndHandle;
	void __fastcall SetActive(const bool Value);
	void __fastcall SetHotKey(const Classes::TShortCut Value);
	void __fastcall NewWndProc(Messages::TMessage &Message);
	
protected:
	virtual AnsiString __fastcall GetDisplayName();
	
public:
	__fastcall virtual TAHMHotKey(Classes::TCollection* Collection);
	__fastcall virtual ~TAHMHotKey(void);
	virtual void __fastcall Assign(Classes::TPersistent* Source);
	__property TAHMHotKeyHolder* Owner = {read=FAHMHotKeyHolder};
	__property AnsiString DisplayName = {read=GetDisplayName};
	
__published:
	__property bool Active = {read=FActive, write=SetActive, default=1};
	__property Classes::TShortCut GlobalKey = {read=FGlobalKey, write=SetHotKey, default=0};
	__property Controls::TKeyEvent OnKeyDown = {read=FOnKeyDown, write=FOnKeyDown};
};


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

}	/* namespace Ahmthotkeyholder */
using namespace Ahmthotkeyholder;
#pragma option pop	// -w-
#pragma option pop	// -Vx

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