You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
803 B
41 lines
803 B
//========= Copyright Valve Corporation, All rights reserved. ============//
|
|
#include "toolframework/itooldictionary.h"
|
|
#include "utlvector.h"
|
|
|
|
class CToolDictionary : public IToolDictionary
|
|
{
|
|
public:
|
|
virtual int GetToolCount() const
|
|
{
|
|
return m_Tools.Count();
|
|
}
|
|
|
|
virtual IToolSystem *GetTool( int index )
|
|
{
|
|
if ( index < 0 || index >= m_Tools.Count() )
|
|
{
|
|
return NULL;
|
|
}
|
|
return m_Tools[ index ];
|
|
}
|
|
|
|
public:
|
|
|
|
void RegisterTool( IToolSystem *tool )
|
|
{
|
|
m_Tools.AddToTail( tool );
|
|
}
|
|
private:
|
|
|
|
CUtlVector< IToolSystem * > m_Tools;
|
|
};
|
|
|
|
static CToolDictionary g_ToolDictionary;
|
|
|
|
EXPOSE_SINGLE_INTERFACE_GLOBALVAR( IToolDictionary, CToolDictionary, VTOOLDICTIONARY_INTERFACE_VERSION, g_ToolDictionary );
|
|
|
|
void RegisterTool( IToolSystem *tool )
|
|
{
|
|
g_ToolDictionary.RegisterTool( tool );
|
|
}
|
|
|