diff options
| author | nakeee <nakeee@gmail.com> | 2009-01-05 13:39:54 +0000 |
|---|---|---|
| committer | nakeee <nakeee@gmail.com> | 2009-01-05 13:39:54 +0000 |
| commit | a533a9dc3d5949a97158f63bde3f687d05343b47 (patch) | |
| tree | 22ca060b8cb96abb33bddcb40e8f90791064067e /Source/Core/InputCommon/Src/EventHandler.cpp | |
| parent | 65590711e91223be0ccf4eba1cf430c44ca6ab15 (diff) | |
almost made the event handler into singleton having access problems
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@1795 8ced0084-cf51-0410-be5f-012b33b47a6e
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; |
