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

// (DO NOT EDIT: machine generated header) 'Captioneddocktree.pas' rev: 10.00

#ifndef CaptioneddocktreeHPP
#define CaptioneddocktreeHPP

#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 <Controls.hpp>	// Pascal unit
#include <Graphics.hpp>	// Pascal unit
#include <Messages.hpp>	// Pascal unit
#include <Sysutils.hpp>	// Pascal unit

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

namespace Captioneddocktree
{
//-- type declarations -------------------------------------------------------
struct TParentFormState
{
	
public:
	AnsiString Caption;
	Graphics::TColor StartColor;
	Graphics::TColor EndColor;
	Graphics::TColor FontColor;
	bool Focused;
	Graphics::TIcon* Icon;
} ;

#pragma option push -b-
enum TDockCaptionOrientation { dcoHorizontal, dcoVertical };
#pragma option pop

typedef unsigned TDockCaptionHitTest;

#pragma option push -b-
enum TDockCaptionPinButton { dcpbNone, dcpbUp, dcpbDown };
#pragma option pop

class DELPHICLASS TDockCaptionDrawer;
class PASCALIMPLEMENTATION TDockCaptionDrawer : public System::TObject 
{
	typedef System::TObject inherited;
	
private:
	TDockCaptionOrientation FDockCaptionOrientation;
	TDockCaptionPinButton FDockCaptionPinButton;
	Types::TRect __fastcall GetCloseRect(const Types::TRect &CaptionRect);
	Types::TRect __fastcall GetPinRect(const Types::TRect &CaptionRect);
	int __fastcall CalcButtonSize(const Types::TRect &CaptionRect);
	
public:
	virtual void __fastcall DrawDockCaption(const Graphics::TCanvas* Canvas, const Types::TRect &CaptionRect, const TParentFormState &State);
	virtual unsigned __fastcall DockCaptionHitTest(const Types::TRect &CaptionRect, const Types::TPoint &MousePos);
	__fastcall virtual TDockCaptionDrawer(TDockCaptionOrientation DockCaptionOrientation);
	__property TDockCaptionPinButton DockCaptionPinButton = {read=FDockCaptionPinButton, write=FDockCaptionPinButton, nodefault};
public:
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~TDockCaptionDrawer(void) { }
	#pragma option pop
	
};


typedef TMetaClass* TDockCaptionDrawerClass;

class DELPHICLASS TCaptionedDockTree;
class PASCALIMPLEMENTATION TCaptionedDockTree : public Controls::TDockTree 
{
	typedef Controls::TDockTree inherited;
	
private:
	int FGrabberSize;
	TDockCaptionOrientation FDockCaptionOrientation;
	TDockCaptionDrawer* FDockCaptionDrawer;
	void __fastcall InvalidateDockSite(const Controls::TControl* Client);
	
protected:
	virtual Types::TRect __fastcall AdjustCaptionRect(const Types::TRect &ARect);
	virtual void __fastcall AdjustDockRect(Controls::TControl* Control, Types::TRect &ARect);
	unsigned __fastcall InternalCaptionHitTest(const Controls::TDockZone* Zone, const Types::TPoint &MousePos);
	virtual void __fastcall PaintDockFrame(Graphics::TCanvas* Canvas, Controls::TControl* Control, const Types::TRect &ARect);
	virtual bool __fastcall ZoneCaptionHitTest(const Controls::TDockZone* Zone, const Types::TPoint &MousePos, int &HTFlag);
	__property TDockCaptionOrientation DockCaptionOrientation = {read=FDockCaptionOrientation, nodefault};
	__property TDockCaptionDrawer* DockCaptionDrawer = {read=FDockCaptionDrawer};
	virtual void __fastcall WndProc(Messages::TMessage &Message);
	
public:
	__fastcall virtual TCaptionedDockTree(Controls::TWinControl* DockSite)/* overload */;
	__fastcall TCaptionedDockTree(Controls::TWinControl* DockSite, TDockCaptionOrientation ADockCaptionOrientation)/* overload */;
	__fastcall virtual ~TCaptionedDockTree(void);
	/* virtual class method */ virtual TParentFormState __fastcall GetParentFormState(TMetaClass* vmt, const Controls::TControl* Control);
	/* virtual class method */ virtual TMetaClass* __fastcall GetDockCaptionDrawer(TMetaClass* vmt);
};


typedef TMetaClass* TCaptionedDockTreeClass;

//-- var, const, procedure ---------------------------------------------------
static const Shortint dchtNone = 0x0;
static const Shortint dchtCaption = 0x1;
static const Shortint dchtClose = 0x2;
static const Shortint dchtPin = 0x3;
static const Shortint dchtCustom = 0xa;

}	/* namespace Captioneddocktree */
using namespace Captioneddocktree;
#pragma pack(pop)
#pragma option pop

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