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

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

#ifndef ahmplaceholderHPP
#define ahmplaceholderHPP

#pragma delphiheader begin
#pragma option push -w-
#pragma option push -Vx
#include <ImgList.hpp>	// Pascal unit
#include <CommCtrl.hpp>	// Pascal unit
#include <Forms.hpp>	// Pascal unit
#include <Controls.hpp>	// Pascal unit
#include <Graphics.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 Ahmplaceholder
{
//-- type declarations -------------------------------------------------------
typedef int NatNumber;

#pragma option push -b-
enum THeaderBevel { hbNone, hbLowered, hbRaised, hbSpace, hbHighlight, hbShadow, hbBlack };
#pragma option pop

typedef Graphics::TColor THeaderColor[2];

#pragma option push -b-
enum TAHMBtnState { btnNormal, btnUp, btnDown };
#pragma option pop

class DELPHICLASS TAHMControlBevel;
class DELPHICLASS TAHMPlaceHolder;
class DELPHICLASS TAHMControlArea;
class PASCALIMPLEMENTATION TAHMControlBevel : public Graphics::TGraphicsObject 
{
	typedef Graphics::TGraphicsObject inherited;
	
private:
	Controls::TBevelWidth fBevelWidth;
	THeaderBevel fBevelInner;
	THeaderBevel fBevelOuter;
	TAHMPlaceHolder* fPlaceHolder;
	Controls::TBorderWidth fBorderWidth;
	Graphics::TColor fBorderColor;
	Graphics::TColor fColor;
	void __fastcall SetBevelInner(const THeaderBevel Value);
	void __fastcall SetBevelOuter(const THeaderBevel Value);
	void __fastcall SetBevelWidth(const Controls::TBevelWidth Value);
	void __fastcall SetBorderWidth(const Controls::TBorderWidth Value);
	void __fastcall SetBorderColor(const Graphics::TColor Value);
	Graphics::TCanvas* __fastcall GetCanvas(void);
	void __fastcall SetColor(const Graphics::TColor Value);
	
protected:
	__property TAHMPlaceHolder* CustomHeader = {read=fPlaceHolder};
	__property Graphics::TCanvas* Canvas = {read=GetCanvas};
	int __fastcall GetOffSet(void);
	
public:
	__fastcall virtual TAHMControlBevel(Classes::TComponent* AOwner);
	virtual void __fastcall Draw(Types::TRect &ARect);
	__fastcall virtual ~TAHMControlBevel(void);
	DYNAMIC void __fastcall Changed(void);
	virtual void __fastcall AdjustRect(Types::TRect &ARect);
	__property int OffSet = {read=GetOffSet, nodefault};
	
__published:
	__property Controls::TBorderWidth BorderWidth = {read=fBorderWidth, write=SetBorderWidth, default=2};
	__property THeaderBevel BevelInner = {read=fBevelInner, write=SetBevelInner, default=0};
	__property THeaderBevel BevelOuter = {read=fBevelOuter, write=SetBevelOuter, default=2};
	__property Controls::TBevelWidth BevelWidth = {read=fBevelWidth, write=SetBevelWidth, default=1};
	__property Graphics::TColor BorderColor = {read=fBorderColor, write=SetBorderColor, default=-2147483633};
	__property Graphics::TColor Color = {read=fColor, write=SetColor, default=-2147483633};
};


class PASCALIMPLEMENTATION TAHMControlArea : public TAHMControlBevel 
{
	typedef TAHMControlBevel inherited;
	
public:
	__fastcall virtual TAHMControlArea(Classes::TComponent* AOwner);
	__fastcall virtual ~TAHMControlArea(void);
	
__published:
	__property BevelOuter  = {default=0};
	__property BevelInner  = {default=1};
	__property BorderWidth  = {default=1};
};


class DELPHICLASS TAHMControlHeader;
class PASCALIMPLEMENTATION TAHMControlHeader : public TAHMControlBevel 
{
	typedef TAHMControlBevel inherited;
	
private:
	TAHMPlaceHolder* fPlaceHolder;
	Imglist::TImageIndex fImageIndex;
	#pragma pack(push, 1)
	Types::TRect fButtonRect;
	#pragma pack(pop)
	
	TAHMBtnState fBtnState;
	bool fCanMinimize;
	void __fastcall SetImageIndex(const Imglist::TImageIndex Value);
	int __fastcall GetHeaderSize(void);
	void __fastcall SetMinimize(const bool Value);
	
protected:
	__property TAHMPlaceHolder* CustomHeader = {read=fPlaceHolder};
	
public:
	__fastcall virtual TAHMControlHeader(Classes::TComponent* AOwner);
	void __fastcall GlyphChanged(System::TObject* Sender);
	__fastcall virtual ~TAHMControlHeader(void);
	virtual void __fastcall AdjustRect(Types::TRect &ARect);
	virtual void __fastcall Draw(Types::TRect &ARect);
	void __fastcall DrawMinMaxButton(TAHMBtnState State);
	__property int HeaderSize = {read=GetHeaderSize, nodefault};
	
__published:
	__property Imglist::TImageIndex ImageIndex = {read=fImageIndex, write=SetImageIndex, default=-1};
	__property BevelOuter  = {default=0};
	__property BevelInner  = {default=5};
	__property BorderWidth  = {default=1};
	__property bool CanMinimize = {read=fCanMinimize, write=SetMinimize, default=1};
};


class PASCALIMPLEMENTATION TAHMPlaceHolder : public Controls::TCustomControl 
{
	typedef Controls::TCustomControl inherited;
	
private:
	bool fAutoSizeDocking;
	Forms::TFormBorderStyle fBorderStyle;
	bool fFullRepaint;
	bool fLocked;
	Classes::TAlignment fAlignment;
	Imglist::TCustomImageList* fImages;
	Imglist::TChangeLink* fImageChangeLink;
	bool fCollapsed;
	TAHMControlArea* fControlArea;
	TAHMControlBevel* fControlBevel;
	TAHMControlHeader* fControlHeader;
	bool fMouseInControl;
	bool fMouseDown;
	int fOpenHeight;
	bool FLineVisible;
	int FOldSize;
	int FSplit;
	Controls::TWinControl* FActiveControl;
	HBRUSH FPrevBrush;
	int FNewSize;
	Graphics::TBrush* FBrush;
	HDC FLineDC;
	#pragma pack(push, 1)
	Types::TPoint FDownPos;
	#pragma pack(pop)
	
	Controls::TKeyEvent FOldKeyDown;
	NatNumber FMinSize;
	int FMaxSize;
	bool fSizing;
	bool fSizeable;
	void __fastcall UpdateControlSize(void);
	void __fastcall DrawLine(void);
	void __fastcall ReleaseLineDC(void);
	void __fastcall FocusKeyDown(System::TObject* Sender, Word &Key, Classes::TShiftState Shift);
	void __fastcall AllocateLineDC(void);
	void __fastcall CalcSplitSize(int X, int Y, int &NewSize, int &Split);
	HIDESBASE MESSAGE void __fastcall CMMouseLeave(Messages::TMessage &Message);
	HIDESBASE MESSAGE void __fastcall CMBorderChanged(Messages::TMessage &Message);
	HIDESBASE MESSAGE void __fastcall CMFontChanged(Messages::TMessage &Message);
	HIDESBASE MESSAGE void __fastcall WMSize(Messages::TWMSize &Message);
	MESSAGE void __fastcall CMTextChanged(Messages::TMessage &Message);
	HIDESBASE MESSAGE void __fastcall CMCtl3DChanged(Messages::TMessage &Message);
	MESSAGE void __fastcall CMIsToolControl(Messages::TMessage &Message);
	HIDESBASE MESSAGE void __fastcall CMEnabledChanged(Messages::TMessage &Message);
	HIDESBASE MESSAGE void __fastcall CMMouseEnter(Messages::TMessage &Message);
	HIDESBASE MESSAGE void __fastcall WMEraseBkgnd(Messages::TWMEraseBkgnd &Message);
	HIDESBASE MESSAGE void __fastcall WMWindowPosChanged(Messages::TWMWindowPosMsg &Message);
	void __fastcall SetAlignment(Classes::TAlignment Value);
	void __fastcall SetBorderStyle(Forms::TBorderStyle Value);
	HIDESBASE MESSAGE void __fastcall CMDockClient(Controls::TCMDockClient &Message);
	void __fastcall SetImageList(const Imglist::TCustomImageList* Value);
	void __fastcall SetCollapsed(const bool Value);
	void __fastcall SetControlBevel(const TAHMControlBevel* Value);
	void __fastcall SetControlArea(const TAHMControlArea* Value);
	void __fastcall SetControlHeader(const TAHMControlHeader* Value);
	void __fastcall SetOpenHeight(const int Value);
	void __fastcall SetSizeable(const bool Value);
	
protected:
	HIDESBASE virtual bool __fastcall CanResize(int &NewSize);
	DYNAMIC void __fastcall StopSizing(void);
	DYNAMIC void __fastcall MouseDown(Controls::TMouseButton Button, Classes::TShiftState Shift, int X, int Y);
	DYNAMIC void __fastcall MouseMove(Classes::TShiftState Shift, int X, int Y);
	DYNAMIC void __fastcall MouseUp(Controls::TMouseButton Button, Classes::TShiftState Shift, int X, int Y);
	__property Color  = {default=-2147483633};
	__property bool MouseInControl = {read=fMouseInControl, nodefault};
	virtual void __fastcall CreateParams(Controls::TCreateParams &Params);
	virtual void __fastcall AdjustClientRect(Types::TRect &Rect);
	virtual bool __fastcall CanAutoSize(int &NewWidth, int &NewHeight);
	virtual void __fastcall Notification(Classes::TComponent* AComponent, Classes::TOperation Operation);
	virtual void __fastcall Paint(void);
	__property bool FullRepaint = {read=fFullRepaint, write=fFullRepaint, default=1};
	__property bool Locked = {read=fLocked, write=fLocked, default=0};
	__property ParentColor  = {default=0};
	
public:
	__fastcall virtual TAHMPlaceHolder(Classes::TComponent* AOwner);
	__fastcall virtual ~TAHMPlaceHolder(void);
	int __fastcall getSizeWidth(void);
	Types::TRect __fastcall getSizeRect();
	void __fastcall ImageListChange(System::TObject* Sender);
	void __fastcall MinMaxClick(void);
	DYNAMIC Classes::TAlignment __fastcall GetControlsAlignment(void);
	
__published:
	__property Align  = {default=0};
	__property Caption ;
	__property Font ;
	__property Enabled  = {default=1};
	__property bool Resizeable = {read=fSizeable, write=SetSizeable, nodefault};
	__property Imglist::TCustomImageList* Images = {read=fImages, write=SetImageList};
	__property bool Collapsed = {read=fCollapsed, write=SetCollapsed, nodefault};
	__property int OpenHeight = {read=fOpenHeight, write=SetOpenHeight, nodefault};
	__property Classes::TAlignment Alignment = {read=fAlignment, write=SetAlignment, default=2};
	__property Forms::TBorderStyle BorderStyle = {read=fBorderStyle, write=SetBorderStyle, default=0};
	__property TAHMControlBevel* ControlBevel = {read=fControlBevel, write=SetControlBevel};
	__property TAHMControlHeader* ControlHeader = {read=fControlHeader, write=SetControlHeader};
	__property TAHMControlArea* ControlArea = {read=fControlArea, write=SetControlArea};
public:
	#pragma option push -w-inl
	/* TWinControl.CreateParented */ inline __fastcall TAHMPlaceHolder(HWND ParentWindow) : Controls::TCustomControl(ParentWindow) { }
	#pragma option pop
	
};



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

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

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