// CodeGear C++Builder
// Copyright (c) 1995, 2007 by CodeGear
// All rights reserved

// (DO NOT EDIT: machine generated header) 'Easycollectioneditor.pas' rev: 11.00

#ifndef EasycollectioneditorHPP
#define EasycollectioneditorHPP

#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 <Controls.hpp>	// Pascal unit
#include <Graphics.hpp>	// Pascal unit
#include <Designintf.hpp>	// Pascal unit
#include <Designeditors.hpp>	// Pascal unit
#include <Designwindows.hpp>	// Pascal unit
#include <Treeintf.hpp>	// Pascal unit
#include <Vcleditors.hpp>	// Pascal unit
#include <Typinfo.hpp>	// Pascal unit
#include <Forms.hpp>	// Pascal unit
#include <Dialogs.hpp>	// Pascal unit
#include <Stdctrls.hpp>	// Pascal unit
#include <Comctrls.hpp>	// Pascal unit
#include <Easylistview.hpp>	// Pascal unit
#include <Extctrls.hpp>	// Pascal unit
#include <Commctrl.hpp>	// Pascal unit
#include <Imglist.hpp>	// Pascal unit
#include <Toolwin.hpp>	// Pascal unit
#include <Actnlist.hpp>	// Pascal unit
#include <Menus.hpp>	// Pascal unit

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

namespace Easycollectioneditor
{
//-- type declarations -------------------------------------------------------
class DELPHICLASS TFormEasyCollectionEditor;
class PASCALIMPLEMENTATION TFormEasyCollectionEditor : public Designwindows::TDesignWindow 
{
	typedef Designwindows::TDesignWindow inherited;
	
__published:
	Comctrls::TListView* ListView1;
	Comctrls::TToolBar* ToolBar1;
	Comctrls::TToolButton* ToolButton1;
	Comctrls::TToolButton* ToolButton2;
	Comctrls::TToolButton* ToolButton3;
	Comctrls::TToolButton* ToolButton4;
	Controls::TImageList* ImageList1;
	Comctrls::TToolButton* ToolButton5;
	Actnlist::TActionList* ActionList1;
	Actnlist::TAction* ActionNewItem;
	Actnlist::TAction* ActionDeleteItem;
	Actnlist::TAction* ActionUpItem;
	Actnlist::TAction* ActionDownItem;
	Comctrls::TToolButton* ToolButton6;
	Menus::TPopupMenu* PopupMenu1;
	Menus::TMenuItem* Add1;
	Menus::TMenuItem* Delete1;
	Menus::TMenuItem* MoveUp1;
	Menus::TMenuItem* MoveDown1;
	Menus::TMenuItem* N1;
	Comctrls::TStatusBar* StatusBar1;
	void __fastcall FormClose(System::TObject* Sender, Forms::TCloseAction &Action);
	void __fastcall ActionNewItemExecute(System::TObject* Sender);
	void __fastcall ActionDeleteItemExecute(System::TObject* Sender);
	void __fastcall ActionUpItemExecute(System::TObject* Sender);
	void __fastcall ActionDownItemExecute(System::TObject* Sender);
	void __fastcall ListView1Resize(System::TObject* Sender);
	void __fastcall ListView1Change(System::TObject* Sender, Comctrls::TListItem* Item, Comctrls::TItemChange Change);
	void __fastcall ListView1KeyDown(System::TObject* Sender, Word &Key, Classes::TShiftState Shift);
	void __fastcall ListView1KeyPress(System::TObject* Sender, char &Key);
	
private:
	Easylistview::TEasyCollection* FCollection;
	Easylistview::TCustomEasyListview* FListview;
	bool FRebuilding;
	
protected:
	DYNAMIC void __fastcall DoShow(void);
	void __fastcall Rebuild(void);
	HIDESBASE void __fastcall Refresh(void);
	void __fastcall HandleDelete(void);
	
public:
	virtual void __fastcall DesignerClosed(const Designintf::_di_IDesigner Designer, bool AGoingDormant);
	virtual void __fastcall ItemDeleted(const Designintf::_di_IDesigner ADesigner, Classes::TPersistent* Item);
	virtual void __fastcall ItemsModified(const Designintf::_di_IDesigner Designer);
	__property Easylistview::TEasyCollection* Collection = {read=FCollection, write=FCollection};
	__property Easylistview::TCustomEasyListview* Listview = {read=FListview, write=FListview};
	__property bool Rebuilding = {read=FRebuilding, write=FRebuilding, nodefault};
public:
	#pragma option push -w-inl
	/* TDesignWindow.Create */ inline __fastcall virtual TFormEasyCollectionEditor(Classes::TComponent* AOwner) : Designwindows::TDesignWindow(AOwner) { }
	#pragma option pop
	#pragma option push -w-inl
	/* TDesignWindow.Destroy */ inline __fastcall virtual ~TFormEasyCollectionEditor(void) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TCustomForm.CreateNew */ inline __fastcall virtual TFormEasyCollectionEditor(Classes::TComponent* AOwner, int Dummy) : Designwindows::TDesignWindow(AOwner, Dummy) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TWinControl.CreateParented */ inline __fastcall TFormEasyCollectionEditor(HWND ParentWindow) : Designwindows::TDesignWindow(ParentWindow) { }
	#pragma option pop
	
};


struct TFormRegRec;
typedef TFormRegRec *PFormRegRec;

#pragma pack(push,4)
struct TFormRegRec
{
	
public:
	Forms::TForm* Form;
	Easylistview::TEasyCollection* Collection;
	Easylistview::TCustomEasyListview* Listview;
} ;
#pragma pack(pop)

class DELPHICLASS TEditorList;
class PASCALIMPLEMENTATION TEditorList : public System::TObject 
{
	typedef System::TObject inherited;
	
private:
	Classes::TThreadList* FFormList;
	
protected:
	__property Classes::TThreadList* FormList = {read=FFormList, write=FFormList};
	
public:
	__fastcall TEditorList(void);
	__fastcall virtual ~TEditorList(void);
	bool __fastcall CollectionRegistered(Easylistview::TEasyCollection* Collection, Forms::TForm* &Form);
	void __fastcall ListviewDestroying(Easylistview::TCustomEasyListview* Listview, bool DestroyAll = false);
	void __fastcall RegisterEditor(Forms::TForm* Form, Easylistview::TEasyCollection* Collection, Easylistview::TCustomEasyListview* Listview);
	void __fastcall UnRegister(Forms::TForm* Form, Easylistview::TEasyCollection* Collection);
};


class DELPHICLASS TEasyCollectionEditor;
class PASCALIMPLEMENTATION TEasyCollectionEditor : public Designeditors::TPropertyEditor 
{
	typedef Designeditors::TPropertyEditor inherited;
	
public:
	virtual void __fastcall Edit(void);
	virtual Designintf::TPropertyAttributes __fastcall GetAttributes(void);
	virtual AnsiString __fastcall GetValue();
public:
	#pragma option push -w-inl
	/* TPropertyEditor.Create */ inline __fastcall virtual TEasyCollectionEditor(const Designintf::_di_IDesigner ADesigner, int APropCount) : Designeditors::TPropertyEditor(ADesigner, APropCount) { }
	#pragma option pop
	#pragma option push -w-inl
	/* TPropertyEditor.Destroy */ inline __fastcall virtual ~TEasyCollectionEditor(void) { }
	#pragma option pop
	
};


//-- var, const, procedure ---------------------------------------------------
extern PACKAGE TEditorList* EditorList;
extern PACKAGE void __fastcall ShowEasyCollectionEditor(Designintf::_di_IDesigner ADesigner, Easylistview::TEasyCollection* ACollection);

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

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