41 lines
766 B
C++
41 lines
766 B
C++
|
#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 );
|
||
|
}
|
||
|
|