diff options
author | Littleboy | 2011-04-26 12:47:03 -0400 |
---|---|---|
committer | Julien | 2011-06-16 10:26:51 -0400 |
commit | 71e457783eb830982aa5f89a3f72ea741f32ffef (patch) | |
tree | 07637ff4537e330775d1ea238715b25eefff5042 /backends | |
parent | d8d16e0231272e73f72630c5a1966db6f1e29809 (diff) | |
download | scummvm-rg350-71e457783eb830982aa5f89a3f72ea741f32ffef.tar.gz scummvm-rg350-71e457783eb830982aa5f89a3f72ea741f32ffef.tar.bz2 scummvm-rg350-71e457783eb830982aa5f89a3f72ea741f32ffef.zip |
BACKENDS: Add generic TaskbarManager class to handle taskbar integration
Diffstat (limited to 'backends')
-rw-r--r-- | backends/modular-backend.cpp | 3 | ||||
-rw-r--r-- | backends/modular-backend.h | 10 | ||||
-rw-r--r-- | backends/platform/sdl/sdl.cpp | 17 | ||||
-rw-r--r-- | backends/platform/sdl/sdl.h | 6 |
4 files changed, 30 insertions, 6 deletions
diff --git a/backends/modular-backend.cpp b/backends/modular-backend.cpp index 525170d685..70c352303c 100644 --- a/backends/modular-backend.cpp +++ b/backends/modular-backend.cpp @@ -33,6 +33,7 @@ ModularBackend::ModularBackend() : _mutexManager(0), + _taskbarManager(0), _graphicsManager(0), _mixer(0) { @@ -43,6 +44,8 @@ ModularBackend::~ModularBackend() { _graphicsManager = 0; delete _mixer; _mixer = 0; + delete _taskbarManager; + _taskbarManager = 0; delete _mutexManager; _mutexManager = 0; } diff --git a/backends/modular-backend.h b/backends/modular-backend.h index 3593130bf5..124a6ad807 100644 --- a/backends/modular-backend.h +++ b/backends/modular-backend.h @@ -27,20 +27,21 @@ class GraphicsManager; class MutexManager; +class TaskbarManager; /** * Base class for modular backends. - * + * * It wraps most functions to their manager equivalent, but not * all OSystem functions are implemented here. - * + * * A backend derivated from this class, will need to implement * these functions on its own: * OSystem::pollEvent() * OSystem::getMillis() * OSystem::delayMillis() * OSystem::getTimeAndDate() - * + * * And, it should also initialize all the managers variables * declared in this class, or override their related functions. */ @@ -111,7 +112,7 @@ public: virtual Common::HardwareKeySet *getHardwareKeySet() { return 0; } //@} - + /** @name Mutex handling */ //@{ @@ -141,6 +142,7 @@ protected: /** @name Managers variables */ //@{ + TaskbarManager *_taskbarManager; MutexManager *_mutexManager; GraphicsManager *_graphicsManager; Audio::Mixer *_mixer; diff --git a/backends/platform/sdl/sdl.cpp b/backends/platform/sdl/sdl.cpp index fd27c82797..4520b74861 100644 --- a/backends/platform/sdl/sdl.cpp +++ b/backends/platform/sdl/sdl.cpp @@ -31,6 +31,7 @@ #include "backends/platform/sdl/sdl.h" #include "common/config-manager.h" #include "common/EventRecorder.h" +#include "common/taskbar.h" #include "common/textconsole.h" #include "backends/saves/default/default-saves.h" @@ -125,6 +126,9 @@ void OSystem_SDL::init() { if (_timerManager == 0) _timerManager = new SdlTimerManager(); + if (_taskbarManager == 0) + _taskbarManager = new Common::TaskbarManager(); + #ifdef USE_OPENGL // Setup a list with both SDL and OpenGL graphics modes setupGraphicsModes(); @@ -209,6 +213,19 @@ void OSystem_SDL::initBackend() { ModularBackend::initBackend(); } +void OSystem_SDL::engineInit() { + // Add the started engine to the list of recent tasks + _taskbarManager->addRecent(ConfMan.getActiveDomainName(), ConfMan.get("description")); + + // Set the overlay icon the current running engine + _taskbarManager->setOverlayIcon(ConfMan.getActiveDomainName(), ConfMan.get("description")); +} + +void OSystem_SDL::engineDone() { + // Remove overlay icon + _taskbarManager->setOverlayIcon("", ""); +} + void OSystem_SDL::initSDL() { // Check if SDL has not been initialized if (!_initedSDL) { diff --git a/backends/platform/sdl/sdl.h b/backends/platform/sdl/sdl.h index 9c08752054..19f913ef45 100644 --- a/backends/platform/sdl/sdl.h +++ b/backends/platform/sdl/sdl.h @@ -30,7 +30,7 @@ #include "backends/events/sdl/sdl-events.h" #include "backends/log/log.h" -/** +/** * Base OSystem class for all SDL ports. */ class OSystem_SDL : public ModularBackend { @@ -38,7 +38,7 @@ public: OSystem_SDL(); virtual ~OSystem_SDL(); - /** + /** * Pre-initialize backend. It should be called after * instantiating the backend. Early needed managers are * created here. @@ -54,6 +54,8 @@ public: // Override functions from ModularBackend and OSystem virtual void initBackend(); + virtual void engineInit(); + virtual void engineDone(); virtual Common::HardwareKeySet *getHardwareKeySet(); virtual void quit(); virtual void fatalError(); |