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

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

#ifndef ahmthintHPP
#define ahmthintHPP

#pragma delphiheader begin
#pragma option push -w-
#pragma option push -Vx
#include <ahmenhancedconst.hpp>	// Pascal unit
#include <StdCtrls.hpp>	// Pascal unit
#include <Buttons.hpp>	// Pascal unit
#include <ahmenhancedclass.hpp>	// Pascal unit
#include <ExtCtrls.hpp>	// Pascal unit
#include <Forms.hpp>	// Pascal unit
#include <Controls.hpp>	// Pascal unit
#include <Graphics.hpp>	// Pascal unit
#include <ahmtbackground.hpp>	// Pascal unit
#include <Classes.hpp>	// Pascal unit
#include <Messages.hpp>	// Pascal unit
#include <Windows.hpp>	// Pascal unit
#include <SysUtils.hpp>	// Pascal unit
#include <SysInit.hpp>	// Pascal unit
#include <System.hpp>	// Pascal unit

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

namespace Ahmthint
{
//-- type declarations -------------------------------------------------------
class DELPHICLASS TAHMHintDuplicateError;
class PASCALIMPLEMENTATION TAHMHintDuplicateError : public Sysutils::Exception 
{
	typedef Sysutils::Exception inherited;
	
public:
	#pragma option push -w-inl
	/* Exception.Create */ inline __fastcall TAHMHintDuplicateError(const AnsiString Msg) : Sysutils::Exception(Msg) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateFmt */ inline __fastcall TAHMHintDuplicateError(const AnsiString Msg, const System::TVarRec * Args, const int Args_Size) : Sysutils::Exception(Msg, Args, Args_Size) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateRes */ inline __fastcall TAHMHintDuplicateError(int Ident)/* overload */ : Sysutils::Exception(Ident) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateResFmt */ inline __fastcall TAHMHintDuplicateError(int Ident, const System::TVarRec * Args, const int Args_Size)/* overload */ : Sysutils::Exception(Ident, Args, Args_Size) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateHelp */ inline __fastcall TAHMHintDuplicateError(const AnsiString Msg, int AHelpContext) : Sysutils::Exception(Msg, AHelpContext) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateFmtHelp */ inline __fastcall TAHMHintDuplicateError(const AnsiString Msg, const System::TVarRec * Args, const int Args_Size, int AHelpContext) : Sysutils::Exception(Msg, Args, Args_Size, AHelpContext) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateResHelp */ inline __fastcall TAHMHintDuplicateError(int Ident, int AHelpContext)/* overload */ : Sysutils::Exception(Ident, AHelpContext) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateResFmtHelp */ inline __fastcall TAHMHintDuplicateError(System::PResStringRec ResStringRec, const System::TVarRec * Args, const int Args_Size, int AHelpContext)/* overload */ : Sysutils::Exception(ResStringRec, Args, Args_Size, AHelpContext) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~TAHMHintDuplicateError(void) { }
	#pragma option pop
	
};


#pragma option push -b-
enum TAHMDirectionB { dUpRight, dUpLeft, dDownRight, dDownLeft };
#pragma option pop

typedef void __fastcall (__closure *TOnSelectHintDirection)(Controls::TControl* HintControl, TAHMDirectionB &HintDirection);

class DELPHICLASS TAHMHint;
class PASCALIMPLEMENTATION TAHMHint : public Classes::TComponent 
{
	typedef Classes::TComponent inherited;
	
private:
	AnsiString FAHMAboutStr;
	bool fshadow;
	bool fspeech;
	Ahmenhancedclass::TAHMFont3D* f3d;
	TAHMDirectionB FHintDirection;
	Graphics::TColor FHintColor;
	Graphics::TColor FHintshadowColor;
	Graphics::TFont* FHintFont;
	int FHintPauseTime;
	Ahmtbackground::TAHMBackground* fback;
	TOnSelectHintDirection FOnSelectHintDirection;
	void __fastcall SetHintDirection(TAHMDirectionB Value);
	void __fastcall SetBack(Ahmtbackground::TAHMBackground* value);
	void __fastcall SetHintColor(Graphics::TColor Value);
	void __fastcall SetHintshadowColor(Graphics::TColor Value);
	void __fastcall SetHintFont(Graphics::TFont* Value);
	MESSAGE void __fastcall CMFontChanged(Messages::TMessage &Message);
	void __fastcall SetHintPauseTime(int Value);
	void __fastcall Set3D(Ahmenhancedclass::TAHMFont3D* value);
	
protected:
	virtual void __fastcall Notification(Classes::TComponent* AComponent, Classes::TOperation Operation);
	
public:
	__fastcall virtual TAHMHint(Classes::TComponent* AOwner);
	__fastcall virtual ~TAHMHint(void);
	virtual void __fastcall Loaded(void);
	void __fastcall SetNewHintFont(void);
	
__published:
	__property AnsiString About = {read=FAHMAboutStr, write=FAHMAboutStr, stored=false};
	__property Ahmenhancedclass::TAHMFont3D* Font3D = {read=f3d, write=Set3D, stored=true};
	__property bool Speechbubble = {read=fspeech, write=fspeech, default=0};
	__property bool Shadow = {read=fshadow, write=fshadow, default=1};
	__property TAHMDirectionB HintDirection = {read=FHintDirection, write=SetHintDirection, default=0};
	__property Graphics::TColor UnUsedHintColor = {read=FHintColor, write=SetHintColor, default=65280};
	__property Graphics::TColor HintShadowColor = {read=FHintshadowColor, write=SetHintshadowColor, default=0};
	__property Graphics::TFont* HintFont = {read=FHintFont, write=SetHintFont};
	__property int HintPauseTime = {read=FHintPauseTime, write=SetHintPauseTime, default=600};
	__property TOnSelectHintDirection OnSelectHintDirection = {read=FOnSelectHintDirection, write=FOnSelectHintDirection};
	__property Ahmtbackground::TAHMBackground* Background = {read=fback, write=SetBack};
};


class DELPHICLASS TAHMHintWindow;
class PASCALIMPLEMENTATION TAHMHintWindow : public Controls::THintWindow 
{
	typedef Controls::THintWindow inherited;
	
private:
	TAHMHint* fahmhint;
	TAHMDirectionB FHintDirection;
	void __fastcall SelectProperHintDirection(const Types::TRect &ARect);
	void __fastcall CheckUpRight(const Types::TPoint &Spot);
	void __fastcall CheckUpLeft(const Types::TPoint &Spot);
	void __fastcall CheckDownRight(const Types::TPoint &Spot);
	void __fastcall CheckDownLeft(const Types::TPoint &Spot);
	TAHMHint* __fastcall FindHintAHM(void);
	HIDESBASE MESSAGE void __fastcall WMEraseBkgnd(Messages::TWMEraseBkgnd &Message);
	HIDESBASE MESSAGE void __fastcall WMNCHitTest(Messages::TWMNCHitTest &Message);
	HIDESBASE MESSAGE void __fastcall WMNCPaint(Messages::TMessage &Message);
	HIDESBASE MESSAGE void __fastcall CMHintShow(Messages::TMessage &Message);
	
protected:
	virtual void __fastcall Paint(void);
	virtual void __fastcall CreateParams(Controls::TCreateParams &Params);
	
public:
	__fastcall virtual TAHMHintWindow(Classes::TComponent* AOwner);
	__fastcall virtual ~TAHMHintWindow(void);
	virtual void __fastcall ActivateHint(const Types::TRect &Rect, const AnsiString AHint);
	__property TAHMDirectionB HintDirection = {read=FHintDirection, write=FHintDirection, default=0};
public:
	#pragma option push -w-inl
	/* TWinControl.CreateParented */ inline __fastcall TAHMHintWindow(HWND ParentWindow) : Controls::THintWindow(ParentWindow) { }
	#pragma option pop
	
};


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

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

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