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 ); |
|
} |
|
|
|
|