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

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

#ifndef ahmshellmenuHPP
#define ahmshellmenuHPP

#pragma delphiheader begin
#pragma option push -w-
#pragma option push -Vx
#include <ahmshellview.hpp>	// Pascal unit
#include <Menus.hpp>	// Pascal unit
#include <Dialogs.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 Ahmshellmenu
{
//-- type declarations -------------------------------------------------------
#pragma option push -b-
enum TAHMNewCmdType { cmdNull, cmdFile, cmdData, cmdUnknown };
#pragma option pop

class DELPHICLASS TAHMShellMenuItem;
class PASCALIMPLEMENTATION TAHMShellMenuItem : public Menus::TMenuItem 
{
	typedef Menus::TMenuItem inherited;
	
public:
	#pragma option push -w-inl
	/* TMenuItem.Create */ inline __fastcall virtual TAHMShellMenuItem(Classes::TComponent* AOwner) : Menus::TMenuItem(AOwner) { }
	#pragma option pop
	#pragma option push -w-inl
	/* TMenuItem.Destroy */ inline __fastcall virtual ~TAHMShellMenuItem(void) { }
	#pragma option pop
	
};


class DELPHICLASS TAHMNewMenuItem;
class PASCALIMPLEMENTATION TAHMNewMenuItem : public TAHMShellMenuItem 
{
	typedef TAHMShellMenuItem inherited;
	
private:
	AnsiString fExtension;
	AnsiString fFileType;
	TAHMNewCmdType fCmdType;
	AnsiString fCmdFile;
	AnsiString fContent;
	AnsiString fHKey;
	
public:
	__property AnsiString Extension = {read=fExtension, write=fExtension};
	__property AnsiString FileType = {read=fFileType, write=fFileType};
	__property TAHMNewCmdType CmdType = {read=fCmdType, write=fCmdType, nodefault};
	__property AnsiString CmdFile = {read=fCmdFile, write=fCmdFile};
	__property AnsiString Content = {read=fContent, write=fContent};
	__property AnsiString HKey = {read=fHKey, write=fHKey};
public:
	#pragma option push -w-inl
	/* TMenuItem.Create */ inline __fastcall virtual TAHMNewMenuItem(Classes::TComponent* AOwner) : TAHMShellMenuItem(AOwner) { }
	#pragma option pop
	#pragma option push -w-inl
	/* TMenuItem.Destroy */ inline __fastcall virtual ~TAHMNewMenuItem(void) { }
	#pragma option pop
	
};


class DELPHICLASS TAHMShellMenu;
class PASCALIMPLEMENTATION TAHMShellMenu : public Menus::TPopupMenu 
{
	typedef Menus::TPopupMenu inherited;
	
private:
	Ahmshellview::TAHMShellView* fShellView;
	Menus::TMenuItem* fViewMenuItem;
	Menus::TMenuItem* fSmallIconMenuItem;
	Menus::TMenuItem* fLargeIconMenuItem;
	Menus::TMenuItem* fLisTMenuItem;
	Menus::TMenuItem* fDetailMenuItem;
	Menus::TMenuItem* fArrangeIconMenuItem;
	Menus::TMenuItem* fRefreshMenuItem;
	Menus::TMenuItem* fNewMenuItem;
	Menus::TMenuItem* fAutoArrangeMenuItem;
	Menus::TMenuItem* fNewFolderItem;
	Menus::TMenuItem* fNewShortCutItem;
	Menus::TMenuItem* fDividers[7];
	void __fastcall SetShellView(const Ahmshellview::TAHMShellView* Value);
	
protected:
	void __fastcall AddShellMenuItems(void);
	void __fastcall PopulateNewMenu(void);
	void __fastcall UpdateMenuItems(void);
	bool __fastcall HasContent(AnsiString Value);
	void __fastcall ViewMenuClick(System::TObject* Sender);
	void __fastcall RefreshClick(System::TObject* Sender);
	void __fastcall OrderByClick(System::TObject* Sender);
	void __fastcall NewShortCutClick(System::TObject* Sender);
	void __fastcall NewFolderClick(System::TObject* Sender);
	void __fastcall AutoArrangeClick(System::TObject* Sender);
	void __fastcall AssignShellSpaceItems(void);
	virtual void __fastcall Notification(Classes::TComponent* AComponent, Classes::TOperation Operation);
	
public:
	__fastcall virtual TAHMShellMenu(Classes::TComponent* AOwner);
	virtual void __fastcall Loaded(void);
	__fastcall virtual ~TAHMShellMenu(void);
	virtual void __fastcall Popup(int X, int Y);
	
__published:
	__property Ahmshellview::TAHMShellView* ShellView = {read=fShellView, write=SetShellView};
};


//-- var, const, procedure ---------------------------------------------------
extern PACKAGE System::ResourceString _EAHMShellMenuClassIllegalRequest;
#define Ahmshellmenu_EAHMShellMenuClassIllegalRequest System::LoadResourceString(&Ahmshellmenu::_EAHMShellMenuClassIllegalRequest)
extern PACKAGE System::ResourceString _EAHMShellMenuClassAccessDenied;
#define Ahmshellmenu_EAHMShellMenuClassAccessDenied System::LoadResourceString(&Ahmshellmenu::_EAHMShellMenuClassAccessDenied)

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

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