//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: Core Movie Maker UI API
//
//=============================================================================

#include "toolutils/toolswitchmenubutton.h"
#include "vgui_controls/panel.h"
#include "toolutils/toolmenubutton.h"
#include "toolutils/enginetools_int.h"
#include "tier1/KeyValues.h"
#include "vgui_controls/menu.h"
#include "vgui/ILocalize.h"
#include "toolframework/ienginetool.h"

// memdbgon must be the last include file in a .cpp file!!!
#include "tier0/memdbgon.h"


//-----------------------------------------------------------------------------
// Menu to switch between tools
//-----------------------------------------------------------------------------
class CToolHelpMenuButton : public CToolMenuButton
{
	DECLARE_CLASS_SIMPLE( CToolHelpMenuButton, CToolMenuButton );

public:
	CToolHelpMenuButton( char const *toolName, char const *helpBinding, vgui::Panel *parent, const char *panelName, const char *text, vgui::Panel *pActionTarget );
};


//-----------------------------------------------------------------------------
// Global function to create the help menu
//-----------------------------------------------------------------------------
CToolMenuButton* CreateToolHelpMenuButton( char const *toolName, char const *helpBinding, vgui::Panel *parent, const char *panelName, const char *text, vgui::Panel *pActionTarget )
{
	return new CToolHelpMenuButton( toolName, helpBinding, parent, panelName, text, pActionTarget );
}


//-----------------------------------------------------------------------------
// Constructor
//-----------------------------------------------------------------------------
CToolHelpMenuButton::CToolHelpMenuButton( char const *toolName, char const *helpBinding, vgui::Panel *parent, const char *panelName, const char *text, vgui::Panel *pActionTarget ) :
	BaseClass( parent, panelName, text, pActionTarget )
{
	wchar_t *fmt = g_pVGuiLocalize->Find( "ToolHelpShowHelp" );
	if ( fmt )
	{
		wchar_t desc[ 256 ];
		g_pVGuiLocalize->ConvertANSIToUnicode( toolName, desc, sizeof( desc ) );

		wchar_t buf[ 512 ];
		g_pVGuiLocalize->ConstructString( buf, sizeof( buf ), fmt, 1, desc );

		AddMenuItem( "help", buf, new KeyValues( "OnHelp" ), pActionTarget, NULL, helpBinding );
	}

	SetMenu(m_pMenu);
}