diff options
Diffstat (limited to 'gui')
-rw-r--r-- | gui/InterfaceManager.cpp | 19 | ||||
-rw-r--r-- | gui/InterfaceManager.h | 21 |
2 files changed, 28 insertions, 12 deletions
diff --git a/gui/InterfaceManager.cpp b/gui/InterfaceManager.cpp index 822b7094b3..ffe19dbe9c 100644 --- a/gui/InterfaceManager.cpp +++ b/gui/InterfaceManager.cpp @@ -32,10 +32,20 @@ #include "gui/InterfaceManager.h" #include "graphics/VectorRenderer.h" +DECLARE_SINGLETON(GUI::InterfaceManager); + namespace GUI { using namespace Graphics; +InterfaceManager::InterfaceManager() : + _vectorRenderer(0), _system(0), _graphicsMode(kGfxDisabled), + _screen(0), _bytesPerPixel(0) { + _system = g_system; + + setGraphicsMode(kGfxStandard16bit); +} + template<typename PixelType> void InterfaceManager::screenInit() { freeScreen(); @@ -53,10 +63,6 @@ void InterfaceManager::setGraphicsMode(Graphics_Mode mode) { switch (mode) { case kGfxStandard16bit: - _bytesPerPixel = sizeof(uint16); - screenInit<uint16>(); - break; - case kGfxAntialias16bit: _bytesPerPixel = sizeof(uint16); screenInit<uint16>(); @@ -70,8 +76,8 @@ void InterfaceManager::setGraphicsMode(Graphics_Mode mode) { _vectorRenderer->setSurface(_screen); } -void InterfaceManager::init() { - +bool InterfaceManager::init() { + return false; } void InterfaceManager::drawWidgetBackground(int x, int y, uint16 hints, WidgetBackground background, WidgetStateInfo state, float scale){ @@ -168,6 +174,7 @@ int InterfaceManager::runGUI() { _vectorRenderer->setFillMode(VectorRenderer::kFillGradient); _vectorRenderer->setFgColor(0, 0, 0); + _vectorRenderer->setBgColor(128, 64, 255); _vectorRenderer->drawTriangle(32, 32, 64, 64, VectorRenderer::kTriangleUp); _vectorRenderer->drawBeveledSquare(128, 128, 256, 64, 4); diff --git a/gui/InterfaceManager.h b/gui/InterfaceManager.h index c7e96103c0..ff8eee3de0 100644 --- a/gui/InterfaceManager.h +++ b/gui/InterfaceManager.h @@ -37,10 +37,14 @@ namespace GUI { +#define g_InterfaceManager (GUI::InterfaceManager::instance()) + struct WidgetDrawData; class InterfaceManager; -class InterfaceManager { +class InterfaceManager : public Common::Singleton<InterfaceManager> { + + friend class Common::Singleton<SingletonBaseType>; public: enum Graphics_Mode { @@ -107,12 +111,15 @@ public: kTextAlignRight //! Text should be aligned to the right }; + //! Function used to process areas other than the current dialog + enum ShadingStyle { + kShadingNone, //! No special post processing + kShadingDim, //! Dimming unused areas + kShadingLuminance //! Converting colors to luminance for unused areas + }; - InterfaceManager(OSystem *system, Graphics_Mode mode) : _vectorRenderer(0), - _system(system), _graphicsMode(kGfxDisabled), _screen(0), _bytesPerPixel(0) { - setGraphicsMode(mode); - } + InterfaceManager(); ~InterfaceManager() { freeRenderer(); @@ -121,7 +128,9 @@ public: void setGraphicsMode(Graphics_Mode mode); int runGUI(); - void init(); + + bool init(); + bool deinit(); /** Font management */ const Graphics::Font *getFont(FontStyle font) const { return _font; } |