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

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

#ifndef HtmltreelistHPP
#define HtmltreelistHPP

#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 <Classes.hpp>	// Pascal unit
#include <Graphics.hpp>	// Pascal unit
#include <Controls.hpp>	// Pascal unit
#include <Forms.hpp>	// Pascal unit
#include <Dialogs.hpp>	// Pascal unit
#include <Stdctrls.hpp>	// Pascal unit
#include <Clipbrd.hpp>	// Pascal unit
#include <Mask.hpp>	// Pascal unit
#include <Comctrls.hpp>	// Pascal unit
#include <Extctrls.hpp>	// Pascal unit
#include <Picturecontainer.hpp>	// Pascal unit
#include <Commctrl.hpp>	// Pascal unit

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

namespace Htmltreelist
{
//-- type declarations -------------------------------------------------------
typedef void __fastcall (__closure *TAnchorEvent)(System::TObject* Sender, Comctrls::TTreeNode* Node, AnsiString anchor);

class DELPHICLASS TColumnItem;
class PASCALIMPLEMENTATION TColumnItem : public Classes::TCollectionItem 
{
	typedef Classes::TCollectionItem inherited;
	
private:
	int FWidth;
	AnsiString FColumnHeader;
	Graphics::TFont* FFont;
	void __fastcall SetWidth(const int value);
	void __fastcall SetColumnHeader(const AnsiString value);
	void __fastcall SetFont(const Graphics::TFont* value);
	
public:
	__fastcall virtual TColumnItem(Classes::TCollection* Collection);
	__fastcall virtual ~TColumnItem(void);
	virtual void __fastcall Assign(Classes::TPersistent* source);
	
__published:
	__property int Width = {read=FWidth, write=SetWidth, nodefault};
	__property AnsiString Header = {read=FColumnHeader, write=SetColumnHeader};
	__property Graphics::TFont* Font = {read=FFont, write=SetFont};
};


class DELPHICLASS TColumnCollection;
class DELPHICLASS THTMLTreeList;
class DELPHICLASS TTLHeader;
typedef void __fastcall (__closure *TTLHeaderClickEvent)(System::TObject* Sender, int SectionIdx);

class PASCALIMPLEMENTATION TTLHeader : public Extctrls::THeader 
{
	typedef Extctrls::THeader inherited;
	
private:
	Graphics::TColor FColor;
	TTLHeaderClickEvent FOnClick;
	TTLHeaderClickEvent FOnRightClick;
	HIDESBASE MESSAGE void __fastcall WMLButtonDown(Messages::TWMMouse &Message);
	HIDESBASE MESSAGE void __fastcall WMRButtonDown(Messages::TWMMouse &Message);
	HIDESBASE void __fastcall SetColor(const Graphics::TColor Value);
	
public:
	__fastcall virtual TTLHeader(Classes::TComponent* aOwner);
	
protected:
	virtual void __fastcall Paint(void);
	
__published:
	__property Graphics::TColor Color = {read=FColor, write=SetColor, nodefault};
	__property TTLHeaderClickEvent OnClick = {read=FOnClick, write=FOnClick};
	__property TTLHeaderClickEvent OnRightClick = {read=FOnRightClick, write=FOnRightClick};
public:
	#pragma option push -w-inl
	/* THeader.Destroy */ inline __fastcall virtual ~TTLHeader(void) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TWinControl.CreateParented */ inline __fastcall TTLHeader(HWND ParentWindow) : Extctrls::THeader(ParentWindow) { }
	#pragma option pop
	
};


class DELPHICLASS THeaderSettings;
class PASCALIMPLEMENTATION THeaderSettings : public Classes::TPersistent 
{
	typedef Classes::TPersistent inherited;
	
private:
	THTMLTreeList* fOwner;
	int fHeight;
	Graphics::TFont* FFont;
	Graphics::TFont* __fastcall GetFont(void);
	void __fastcall SetFont(const Graphics::TFont* Value);
	bool __fastcall GetFlat(void);
	void __fastcall SetFlat(const bool Value);
	bool __fastcall GetAllowResize(void);
	void __fastcall SetAllowResize(const bool Value);
	Graphics::TColor __fastcall GetColor(void);
	void __fastcall SetColor(const Graphics::TColor Value);
	int __fastcall GetHeight(void);
	void __fastcall SetHeight(const int Value);
	void __fastcall FontChanged(System::TObject* Sender);
	
public:
	__fastcall THeaderSettings(THTMLTreeList* aOwner);
	__fastcall virtual ~THeaderSettings(void);
	
__published:
	__property bool AllowResize = {read=GetAllowResize, write=SetAllowResize, nodefault};
	__property Graphics::TColor Color = {read=GetColor, write=SetColor, nodefault};
	__property bool Flat = {read=GetFlat, write=SetFlat, nodefault};
	__property Graphics::TFont* Font = {read=GetFont, write=SetFont};
	__property int Height = {read=GetHeight, write=SetHeight, nodefault};
};


class PASCALIMPLEMENTATION THTMLTreeList : public Comctrls::TTreeView 
{
	typedef Comctrls::TTreeView inherited;
	
private:
	bool fAnchorHint;
	TTLHeader* fHeader;
	THeaderSettings* fHeaderSettings;
	bool fFlatHeader;
	TColumnCollection* fColumnCollection;
	bool fColumnLines;
	int fColumnSpace;
	int fOldScrollPos;
	AnsiString fSeparator;
	int fItemHeight;
	Controls::TCursor fOldCursor;
	AnsiString fOldAnchor;
	Graphics::TColor fURLColor;
	Controls::TImageList* fImages;
	TTLHeaderClickEvent fOnClick;
	TTLHeaderClickEvent fOnRightClick;
	TAnchorEvent fOnAnchorClick;
	TAnchorEvent fOnAnchorEnter;
	TAnchorEvent fOnAnchorExit;
	Graphics::TColor fSelectionColor;
	Graphics::TColor fSelectionFontColor;
	HIDESBASE MESSAGE void __fastcall WMHScroll(Messages::TMessage &message);
	HIDESBASE MESSAGE void __fastcall WMMouseMove(Messages::TWMMouse &message);
	HIDESBASE MESSAGE void __fastcall WMLButtonDown(Messages::TWMMouse &message);
	HIDESBASE MESSAGE void __fastcall WMRButtonDown(Messages::TWMMouse &message);
	HIDESBASE MESSAGE void __fastcall WMPaint(Messages::TWMPaint &message);
	HIDESBASE MESSAGE void __fastcall CNNotify(Messages::TWMNotify &message);
	HIDESBASE MESSAGE void __fastcall CMHintShow(Messages::TMessage &Msg);
	void __fastcall SetColumnCollection(const TColumnCollection* Value);
	void __fastcall SetColumnLines(const bool Value);
	void __fastcall UpdateColumns(void);
	void __fastcall SectionSize(System::TObject* sender, int ASection, int AWidth);
	void __fastcall HeaderClick(System::TObject* sender, int ASection);
	void __fastcall HeaderRightClick(System::TObject* sender, int ASection);
	int __fastcall GetColWidth(int idx);
	Graphics::TFont* __fastcall GetColFont(int idx);
	void __fastcall SetSeparator(const AnsiString Value);
	int __fastcall GetItemHeight(void);
	void __fastcall SetItemHeight(const int Value);
	bool __fastcall GetVisible(void);
	HIDESBASE void __fastcall SetVisible(const bool Value);
	AnsiString __fastcall IsAnchor(Comctrls::TTreeNode* node, int x, int y);
	void __fastcall SetURLColor(const Graphics::TColor value);
	HIDESBASE void __fastcall SetImages(const Controls::TImageList* value);
	void __fastcall SetSelectionColor(const Graphics::TColor Value);
	void __fastcall SetSelectionFontColor(const Graphics::TColor Value);
	AnsiString __fastcall GetColumnText(int col, AnsiString s);
	AnsiString __fastcall GetVersion();
	void __fastcall SetVersion(const AnsiString Value);
	int __fastcall GetVersionNr(void);
	
protected:
	DYNAMIC void __fastcall Expand(Comctrls::TTreeNode* Node);
	virtual void __fastcall Notification(Classes::TComponent* AComponent, Classes::TOperation AOperation);
	virtual void __fastcall CreateWnd(void);
	virtual void __fastcall DestroyWnd(void);
	virtual Types::TRect __fastcall GetClientRect();
	__property ToolTips  = {default=1};
	
public:
	__fastcall virtual THTMLTreeList(Classes::TComponent* aOwner);
	__fastcall virtual ~THTMLTreeList(void);
	virtual void __fastcall SetBounds(int ALeft, int ATop, int AWidth, int AHeight);
	void __fastcall SetNodeColumn(Comctrls::TTreeNode* tn, int idx, AnsiString value);
	AnsiString __fastcall GetNodeColumn(Comctrls::TTreeNode* tn, int idx);
	
__published:
	__property bool AnchorHint = {read=fAnchorHint, write=fAnchorHint, nodefault};
	__property TColumnCollection* Columns = {read=fColumnCollection, write=SetColumnCollection};
	__property bool ColumnLines = {read=fColumnLines, write=SetColumnLines, nodefault};
	__property AnsiString Separator = {read=fSeparator, write=SetSeparator};
	__property int ItemHeight = {read=GetItemHeight, write=SetItemHeight, nodefault};
	__property bool Visible = {read=GetVisible, write=SetVisible, nodefault};
	__property THeaderSettings* HeaderSettings = {read=fHeaderSettings, write=fHeaderSettings};
	__property Controls::TImageList* HTMLImages = {read=fImages, write=SetImages};
	__property Graphics::TColor SelectionColor = {read=fSelectionColor, write=SetSelectionColor, nodefault};
	__property Graphics::TColor SelectionFontColor = {read=fSelectionFontColor, write=SetSelectionFontColor, nodefault};
	__property Graphics::TColor URLColor = {read=fURLColor, write=SetURLColor, nodefault};
	__property TTLHeaderClickEvent OnHeaderClick = {read=fOnClick, write=fOnClick};
	__property TTLHeaderClickEvent OnHeaderRightClick = {read=fOnRightClick, write=fOnRightClick};
	__property TAnchorEvent OnAnchorClick = {read=fOnAnchorClick, write=fOnAnchorClick};
	__property TAnchorEvent OnAnchorEnter = {read=fOnAnchorEnter, write=fOnAnchorEnter};
	__property TAnchorEvent OnAnchorExit = {read=fOnAnchorExit, write=fOnAnchorExit};
	__property AnsiString Version = {read=GetVersion, write=SetVersion};
public:
	#pragma option push -w-inl
	/* TWinControl.CreateParented */ inline __fastcall THTMLTreeList(HWND ParentWindow) : Comctrls::TTreeView(ParentWindow) { }
	#pragma option pop
	
};


class PASCALIMPLEMENTATION TColumnCollection : public Classes::TCollection 
{
	typedef Classes::TCollection inherited;
	
public:
	TColumnItem* operator[](int Index) { return Items[Index]; }
	
private:
	THTMLTreeList* FOwner;
	HIDESBASE TColumnItem* __fastcall GetItem(int Index);
	HIDESBASE void __fastcall SetItem(int Index, const TColumnItem* Value);
	
protected:
	virtual void __fastcall Update(Classes::TCollectionItem* Item);
	
public:
	__fastcall TColumnCollection(THTMLTreeList* aOwner);
	DYNAMIC Classes::TPersistent* __fastcall GetOwner(void);
	HIDESBASE TColumnItem* __fastcall Add(void);
	HIDESBASE TColumnItem* __fastcall Insert(int Index);
	__property TColumnItem* Items[int Index] = {read=GetItem, write=SetItem/*, default*/};
public:
	#pragma option push -w-inl
	/* TCollection.Destroy */ inline __fastcall virtual ~TColumnCollection(void) { }
	#pragma option pop
	
};


//-- var, const, procedure ---------------------------------------------------
static const Shortint MAJ_VER = 0x1;
static const Shortint MIN_VER = 0x0;
static const Shortint REL_VER = 0x0;
static const Shortint BLD_VER = 0x4;

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

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