6
#include "Precompiled.h"
7
#include "CommandManager.h"
9
template <> tools::CommandManager* MyGUI::Singleton<tools::CommandManager>::msInstance = nullptr;
10
template <> const char* MyGUI::Singleton<tools::CommandManager>::mClassTypeName("CommandManager");
15
CommandManager::CommandManager()
19
CommandManager::~CommandManager()
23
void CommandManager::initialise()
27
void CommandManager::shutdown()
31
bool CommandManager::executeCommand(const MyGUI::UString& _command)
34
MyGUI::UString command = _command;
35
size_t index = _command.find('.');
36
if (index != MyGUI::UString::npos)
38
command = _command.substr(0, index);
39
mData = _command.substr(index + 1);
42
MapDelegate::iterator iter = mDelegates.find(command);
43
if (iter != mDelegates.end())
45
iter->second(command, result);
49
MYGUI_LOG(Warning, "Command '" << command << "' not found");
57
void CommandManager::registerCommand(const MyGUI::UString& _command, CommandDelegate::IDelegate* _delegate)
59
MapDelegate::iterator iter = mDelegates.find(_command);
60
if (iter == mDelegates.end())
61
iter = mDelegates.insert(std::make_pair(_command, CommandDelegate())).first;
62
(*iter).second += _delegate;
65
void CommandManager::unregisterCommand(const MyGUI::UString& _command, CommandDelegate::IDelegate* _delegate)
67
MapDelegate::iterator iter = mDelegates.find(_command);
68
if (iter != mDelegates.end())
70
(*iter).second -= _delegate;
71
if ((*iter).second.empty())
72
mDelegates.erase(iter);
76
void CommandManager::setCommandData(const MyGUI::UString& _data)
81
const MyGUI::UString& CommandManager::getCommandData() const