1 /*! 2 @file 3 @author Albert Semenov 4 @date 11/2009 5 */ 6 #ifndef COMMAND_MANAGER_H_ 7 #define COMMAND_MANAGER_H_ 8 9 #include <MyGUI.h> 10 11 namespace demo 12 { 13 14 class CommandManager 15 { 16 public: 17 typedef MyGUI::delegates::CDelegate2<const std::string&, MyGUI::Any> CommandDelegate; 18 19 public: 20 CommandManager(); 21 virtual ~CommandManager(); 22 getInstance()23 static CommandManager& getInstance() 24 { 25 return *msCommandManager; 26 } 27 28 void execiteCommand(const std::string& _name, MyGUI::Any _data); 29 30 void registerCommand(const std::string& _name, CommandDelegate::IDelegate* _delegate); 31 void unregisterCommand(const std::string& _name); 32 33 private: 34 static CommandManager* msCommandManager; 35 typedef std::map<std::string, CommandDelegate> MapDelegate; 36 MapDelegate mDelegates; 37 }; 38 39 } // namespace demo 40 41 #endif // COMMAND_MANAGER_H_ 42