diff options
Diffstat (limited to 'Source/Core/InputCommon/Src/EventHandler.cpp')
| -rw-r--r-- | Source/Core/InputCommon/Src/EventHandler.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/Source/Core/InputCommon/Src/EventHandler.cpp b/Source/Core/InputCommon/Src/EventHandler.cpp index 158b7fe6b4..d639de22d2 100644 --- a/Source/Core/InputCommon/Src/EventHandler.cpp +++ b/Source/Core/InputCommon/Src/EventHandler.cpp @@ -4,12 +4,31 @@ #include <wx/wx.h> #endif +EventHandler *EventHandler::m_Instance = 0; + EventHandler::EventHandler() { memset(keys, sizeof(listenFuncPtr) * (sf::Key::Escape+1)*8, 0); memset(mouse, sizeof(listenFuncPtr) * (sf::Mouse::Count+1), 0); memset(joys, sizeof(listenFuncPtr) * (sf::Joy::Count+1), 0); } +EventHandler::~EventHandler() { +} + +EventHandler::EventHandler *GetInstance() { + if (! EventHandler::m_Instance) + EventHandler::m_Instance = new EventHandler(); + + return EventHandler::m_Instance; +} + +void EventHandler::Destroy() { + if (EventHandler::m_Instance) + delete EventHandler::m_Instance; + + EventHandler::m_Instance = 0; +} + bool EventHandler::RegisterEventListener(listenFuncPtr func, Keys key) { if (key.inputType == KeyboardInput) { fprintf(stderr, "Registering %d\n", key.keyCode); @@ -270,3 +289,12 @@ void EventHandler::SFKeyToString(sf::Key::Code keycode, char *keyStr) { break; } } + +class EventHandlerCleaner +{ +public: + ~EventHandlerCleaner() + { + EventHandler::Destroy(); + } +} EventHandlerCleanerInst; |
