diff options
author | Johannes Schickel | 2009-07-25 01:01:22 +0000 |
---|---|---|
committer | Johannes Schickel | 2009-07-25 01:01:22 +0000 |
commit | 901f2d5836027ee36bac706b68c8c9a06f515031 (patch) | |
tree | bd28358f437a32322e250265c8fe1cf64dda4820 | |
parent | ef7166740369bab9111289122aac3ef07c48c0bb (diff) | |
download | scummvm-rg350-901f2d5836027ee36bac706b68c8c9a06f515031.tar.gz scummvm-rg350-901f2d5836027ee36bac706b68c8c9a06f515031.tar.bz2 scummvm-rg350-901f2d5836027ee36bac706b68c8c9a06f515031.zip |
- EventDispatcher is no longer a singleton.
- Add "getEventDispatcher" method to EventManager.
svn-id: r42728
-rw-r--r-- | backends/events/default/default-events.cpp | 10 | ||||
-rw-r--r-- | common/events.cpp | 2 | ||||
-rw-r--r-- | common/events.h | 19 |
3 files changed, 17 insertions, 14 deletions
diff --git a/backends/events/default/default-events.cpp b/backends/events/default/default-events.cpp index 8cbc44d052..842b4dd87a 100644 --- a/backends/events/default/default-events.cpp +++ b/backends/events/default/default-events.cpp @@ -101,10 +101,10 @@ DefaultEventManager::DefaultEventManager(Common::EventSource *boss) : assert(boss); - g_eventDispatcher.registerSource(boss, false); - g_eventDispatcher.registerSource(&_artificialEventSource, false); + _dispatcher.registerSource(boss, false); + _dispatcher.registerSource(&_artificialEventSource, false); - g_eventDispatcher.registerObserver(this, 0, false); + _dispatcher.registerObserver(this, 0, false); _recordFile = NULL; _recordTimeFile = NULL; @@ -207,7 +207,7 @@ DefaultEventManager::DefaultEventManager(Common::EventSource *boss) : #ifdef ENABLE_KEYMAPPER _keymapper = new Common::Keymapper(this); // EventDispatcher will automatically free the keymapper - g_eventDispatcher.registerMapper(_keymapper); + _dispatcher.registerMapper(_keymapper); _remap = false; #endif } @@ -383,7 +383,7 @@ bool DefaultEventManager::pollEvent(Common::Event &event) { uint32 time = g_system->getMillis(); bool result = false; - g_eventDispatcher.dispatch(); + _dispatcher.dispatch(); if (!_eventQueue.empty()) { event = _eventQueue.pop(); result = true; diff --git a/common/events.cpp b/common/events.cpp index 149b4936a9..0fab55c956 100644 --- a/common/events.cpp +++ b/common/events.cpp @@ -25,8 +25,6 @@ #include "common/events.h" -DECLARE_SINGLETON(Common::EventDispatcher); - namespace Common { EventDispatcher::EventDispatcher() : _mapper(0) { diff --git a/common/events.h b/common/events.h index 4f060a6da7..2ca705c70c 100644 --- a/common/events.h +++ b/common/events.h @@ -236,9 +236,11 @@ public: * mapper will be processed before an event is sent to the * observers. */ -class EventDispatcher : public Singleton<EventDispatcher> { - friend class Singleton<SingletonBaseType>; +class EventDispatcher { public: + EventDispatcher(); + ~EventDispatcher(); + /** * Tries to catch events from the registered event * sources and dispatch them to the observers. @@ -289,9 +291,6 @@ public: */ void unregisterObserver(EventObserver *obs); private: - EventDispatcher(); - ~EventDispatcher(); - EventMapper *_mapper; struct Entry { @@ -314,8 +313,6 @@ private: void dispatchEvent(const Event &event); }; -#define g_eventDispatcher (Common::EventDispatcher::instance()) - class Keymapper; /** @@ -398,6 +395,14 @@ public: #ifdef ENABLE_KEYMAPPER virtual Common::Keymapper *getKeymapper() = 0; #endif + + /** + * Returns the underlying EventDispatcher. + */ + EventDispatcher *getEventDispatcher() { return &_dispatcher; } + +protected: + EventDispatcher _dispatcher; }; } // End of namespace Common |