aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--base/main.cpp4
-rw-r--r--dists/msvc9/scummvm.vcproj16
-rw-r--r--graphics/VectorRenderer.cpp6
-rw-r--r--graphics/VectorRenderer.h2
-rw-r--r--gui/ThemeDefaultXML.cpp4
-rw-r--r--gui/ThemeParser.cpp13
-rw-r--r--gui/ThemeParser.h8
-rw-r--r--gui/ThemeRenderer.cpp (renamed from gui/InterfaceManager.cpp)175
-rw-r--r--gui/ThemeRenderer.h (renamed from gui/InterfaceManager.h)119
-rw-r--r--gui/object.h3
-rw-r--r--gui/theme.h4
11 files changed, 101 insertions, 253 deletions
diff --git a/base/main.cpp b/base/main.cpp
index f69b8399e6..9b76e0514a 100644
--- a/base/main.cpp
+++ b/base/main.cpp
@@ -43,7 +43,7 @@
#include "common/system.h"
#include "gui/newgui.h"
#include "gui/message.h"
-#include "gui/InterfaceManager.h"
+#include "gui/ThemeRenderer.h"
#include "gui/ThemeParser.h"
#if defined(_WIN32_WCE)
@@ -70,6 +70,8 @@ static bool launcherDialog(OSystem &system) {
// Clear the main screen
system.clearScreen();
+ GUI::ThemeRenderer *test = new GUI::ThemeRenderer;
+
#if defined LOL
// g_InterfaceManager.runGUI();
diff --git a/dists/msvc9/scummvm.vcproj b/dists/msvc9/scummvm.vcproj
index cd502b3ca8..a901a0c277 100644
--- a/dists/msvc9/scummvm.vcproj
+++ b/dists/msvc9/scummvm.vcproj
@@ -1105,14 +1105,6 @@
>
</File>
<File
- RelativePath="..\..\gui\InterfaceManager.cpp"
- >
- </File>
- <File
- RelativePath="..\..\gui\InterfaceManager.h"
- >
- </File>
- <File
RelativePath="..\..\gui\Key.cpp"
>
</File>
@@ -1248,6 +1240,14 @@
</FileConfiguration>
</File>
<File
+ RelativePath="..\..\gui\ThemeRenderer.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\gui\ThemeRenderer.h"
+ >
+ </File>
+ <File
RelativePath="..\..\gui\widget.cpp"
>
</File>
diff --git a/graphics/VectorRenderer.cpp b/graphics/VectorRenderer.cpp
index 1f8ec3c397..f679d2fe67 100644
--- a/graphics/VectorRenderer.cpp
+++ b/graphics/VectorRenderer.cpp
@@ -30,17 +30,17 @@
#include "graphics/surface.h"
#include "graphics/colormasks.h"
-#include "gui/InterfaceManager.h"
+#include "gui/ThemeRenderer.h"
#include "graphics/VectorRenderer.h"
namespace Graphics {
VectorRenderer *createRenderer(int mode) {
switch (mode) {
- case GUI::InterfaceManager::kGfxStandard16bit:
+ case GUI::ThemeRenderer::kGfxStandard16bit:
return new VectorRendererSpec<uint16, ColorMasks<565> >;
- case GUI::InterfaceManager::kGfxAntialias16bit:
+ case GUI::ThemeRenderer::kGfxAntialias16bit:
return new VectorRendererAA<uint16, ColorMasks<565> >;
default:
diff --git a/graphics/VectorRenderer.h b/graphics/VectorRenderer.h
index 9b2e6cd383..3267d44687 100644
--- a/graphics/VectorRenderer.h
+++ b/graphics/VectorRenderer.h
@@ -32,7 +32,7 @@
#include "graphics/surface.h"
#include "graphics/colormasks.h"
-#include "gui/InterfaceManager.h"
+#include "gui/ThemeRenderer.h"
namespace Graphics {
diff --git a/gui/ThemeDefaultXML.cpp b/gui/ThemeDefaultXML.cpp
index cd571e680e..4b48e11991 100644
--- a/gui/ThemeDefaultXML.cpp
+++ b/gui/ThemeDefaultXML.cpp
@@ -24,11 +24,11 @@
*/
#include "common/system.h"
-#include "gui/InterfaceManager.h"
+#include "gui/ThemeRenderer.h"
namespace GUI {
-bool InterfaceManager::loadDefaultXML() {
+bool ThemeRenderer::loadDefaultXML() {
const char *defaultXML =
/**
* Default theme description file. Work in progress.
diff --git a/gui/ThemeParser.cpp b/gui/ThemeParser.cpp
index 07789ebee3..eac8c20978 100644
--- a/gui/ThemeParser.cpp
+++ b/gui/ThemeParser.cpp
@@ -30,8 +30,9 @@
#include "common/hash-str.h"
#include "common/xmlparser.h"
-#include "gui/InterfaceManager.h"
+#include "gui/ThemeRenderer.h"
#include "gui/ThemeParser.h"
+#include "gui/NewGui.h"
#include "graphics/VectorRenderer.h"
namespace GUI {
@@ -39,7 +40,7 @@ namespace GUI {
using namespace Graphics;
using namespace Common;
-ThemeParser::ThemeParser(InterfaceManager *parent) : XMLParser() {
+ThemeParser::ThemeParser(ThemeRenderer *parent) : XMLParser() {
_callbacks["drawstep"] = &ThemeParser::parserCallback_DRAWSTEP;
_callbacks["drawdata"] = &ThemeParser::parserCallback_DRAWDATA;
_callbacks["palette"] = &ThemeParser::parserCallback_palette;
@@ -59,7 +60,7 @@ ThemeParser::ThemeParser(InterfaceManager *parent) : XMLParser() {
_defaultStepGlobal = defaultDrawStep();
_defaultStepLocal = 0;
- _GUI = parent;
+ _theme = parent;
}
bool ThemeParser::keyCallback(Common::String keyName) {
@@ -213,7 +214,7 @@ bool ThemeParser::parserCallback_DRAWSTEP() {
if (!parseDrawStep(stepNode, drawstep, true))
return false;
- _GUI->addDrawStep(drawdataNode->values["id"], drawstep);
+ _theme->addDrawStep(drawdataNode->values["id"], drawstep);
return true;
}
@@ -229,7 +230,7 @@ bool ThemeParser::parserCallback_DRAWDATA() {
if (drawdataNode->values.contains("id") == false)
return parserError("DrawData keys must contain an identifier.");
- InterfaceManager::DrawData id = _GUI->getDrawDataId(drawdataNode->values["id"]);
+ ThemeRenderer::DrawData id = _theme->getDrawDataId(drawdataNode->values["id"]);
if (id == -1)
return parserError("%s is not a valid DrawData set identifier.", drawdataNode->values["id"].c_str());
@@ -252,7 +253,7 @@ bool ThemeParser::parserCallback_DRAWDATA() {
}
}*/
- if (_GUI->addDrawData(id, cached) == false)
+ if (_theme->addDrawData(id, cached) == false)
return parserError("Repeated DrawData: Only one set of Drawing Data for a widget may be specified on each platform.");
if (_defaultStepLocal) {
diff --git a/gui/ThemeParser.h b/gui/ThemeParser.h
index 68e8272b80..56d45eb802 100644
--- a/gui/ThemeParser.h
+++ b/gui/ThemeParser.h
@@ -36,7 +36,7 @@
#include "common/xmlparser.h"
#include "graphics/VectorRenderer.h"
-#include "gui/InterfaceManager.h"
+#include "gui/ThemeRenderer.h"
/**
*********************************************
@@ -308,7 +308,7 @@ namespace GUI {
using namespace Graphics;
using namespace Common;
-class InterfaceManager;
+class ThemeRenderer;
class ThemeParser : public XMLParser {
typedef void (VectorRenderer::*DrawingFunctionCallback)(const Common::Rect &, const DrawStep &);
@@ -316,10 +316,10 @@ class ThemeParser : public XMLParser {
typedef GUI::InterfaceManager InterfaceManager;
public:
- ThemeParser(InterfaceManager *parent);
+ ThemeParser(GUI::ThemeRenderer *parent);
protected:
- InterfaceManager *_GUI;
+ ThemeRenderer *_theme;
bool keyCallback(Common::String keyName);
bool parserCallback_DRAWSTEP();
diff --git a/gui/InterfaceManager.cpp b/gui/ThemeRenderer.cpp
index 80fa0d33db..283860341b 100644
--- a/gui/InterfaceManager.cpp
+++ b/gui/ThemeRenderer.cpp
@@ -32,16 +32,14 @@
#include "gui/launcher.h"
-#include "gui/InterfaceManager.h"
+#include "gui/ThemeRenderer.h"
#include "graphics/VectorRenderer.h"
-DECLARE_SINGLETON(GUI::InterfaceManager);
-
namespace GUI {
using namespace Graphics;
-const char *InterfaceManager::kDrawDataStrings[] = {
+const char *ThemeRenderer::kDrawDataStrings[] = {
"mainmenu_bg",
"special_bg",
"plain_bg",
@@ -70,7 +68,7 @@ const char *InterfaceManager::kDrawDataStrings[] = {
"separator"
};
-InterfaceManager::InterfaceManager() :
+ThemeRenderer::ThemeRenderer() :
_vectorRenderer(0), _system(0), _graphicsMode(kGfxDisabled),
_screen(0), _bytesPerPixel(0), _initOk(false), _themeOk(false),
_needThemeLoad(false), _enabled(false) {
@@ -86,7 +84,7 @@ InterfaceManager::InterfaceManager() :
}
template<typename PixelType>
-void InterfaceManager::screenInit() {
+void ThemeRenderer::screenInit() {
freeScreen();
_screen = new Surface;
@@ -94,7 +92,7 @@ void InterfaceManager::screenInit() {
_system->clearOverlay();
}
-void InterfaceManager::setGraphicsMode(Graphics_Mode mode) {
+void ThemeRenderer::setGraphicsMode(Graphics_Mode mode) {
// FIXME: reload theme everytime we change resolution...
// what if we change the renderer too?
@@ -120,14 +118,14 @@ void InterfaceManager::setGraphicsMode(Graphics_Mode mode) {
_vectorRenderer->setSurface(_screen);
}
-void InterfaceManager::addDrawStep(Common::String &drawDataId, Graphics::DrawStep *step) {
+void ThemeRenderer::addDrawStep(Common::String &drawDataId, Graphics::DrawStep *step) {
DrawData id = getDrawDataId(drawDataId);
assert(_widgets[id] != 0);
_widgets[id]->_steps.push_back(step);
}
-bool InterfaceManager::addDrawData(DrawData data_id, bool cached) {
+bool ThemeRenderer::addDrawData(DrawData data_id, bool cached) {
assert(data_id >= 0 && data_id < kDrawDataMAX);
if (_widgets[data_id] != 0)
@@ -139,7 +137,7 @@ bool InterfaceManager::addDrawData(DrawData data_id, bool cached) {
return true;
}
-bool InterfaceManager::loadTheme(Common::String themeName) {
+bool ThemeRenderer::loadTheme(Common::String themeName) {
unloadTheme();
if (!loadThemeXML(themeName)) {
@@ -165,7 +163,7 @@ bool InterfaceManager::loadTheme(Common::String themeName) {
return true;
}
-bool InterfaceManager::loadThemeXML(Common::String themeName) {
+bool ThemeRenderer::loadThemeXML(Common::String themeName) {
assert(_parser);
if (ConfMan.hasKey("themepath"))
@@ -184,7 +182,7 @@ bool InterfaceManager::loadThemeXML(Common::String themeName) {
return parser()->parse();
}
-void InterfaceManager::init() {
+bool ThemeRenderer::init() {
if (!_screen || _system->getOverlayWidth() != _screen->w ||
_system->getOverlayHeight() != _screen->h )
setGraphicsMode(_graphicsMode);
@@ -193,20 +191,21 @@ void InterfaceManager::init() {
loadTheme();
_initOk = true;
+ return true;
}
-bool InterfaceManager::isWidgetCached(DrawData type, const Common::Rect &r) {
+bool ThemeRenderer::isWidgetCached(DrawData type, const Common::Rect &r) {
return _widgets[type] && _widgets[type]->_cached &&
_widgets[type]->_surfaceCache->w == r.width() &&
_widgets[type]->_surfaceCache->h == r.height();
}
-void InterfaceManager::drawCached(DrawData type, const Common::Rect &r) {
+void ThemeRenderer::drawCached(DrawData type, const Common::Rect &r) {
assert(_widgets[type]->_surfaceCache->bytesPerPixel == _screen->bytesPerPixel);
_vectorRenderer->blitSurface(_widgets[type]->_surfaceCache, r);
}
-void InterfaceManager::drawDD(DrawData type, const Common::Rect &r) {
+void ThemeRenderer::drawDD(DrawData type, const Common::Rect &r) {
if (isWidgetCached(type, r)) {
drawCached(type, r);
} else {
@@ -215,7 +214,7 @@ void InterfaceManager::drawDD(DrawData type, const Common::Rect &r) {
}
}
-void InterfaceManager::drawButton(const Common::Rect &r, const Common::String &str, WidgetStateInfo state, uint16 hints) {
+void ThemeRenderer::drawButton(const Common::Rect &r, const Common::String &str, WidgetStateInfo state, uint16 hints) {
if (!ready())
return;
@@ -229,7 +228,7 @@ void InterfaceManager::drawButton(const Common::Rect &r, const Common::String &s
addDirtyRect(r);
}
-void InterfaceManager::drawLineSeparator(const Common::Rect &r, WidgetStateInfo state) {
+void ThemeRenderer::drawLineSeparator(const Common::Rect &r, WidgetStateInfo state) {
if (!ready())
return;
@@ -237,7 +236,7 @@ void InterfaceManager::drawLineSeparator(const Common::Rect &r, WidgetStateInfo
addDirtyRect(r);
}
-void InterfaceManager::drawCheckbox(const Common::Rect &r, const Common::String &str, bool checked, WidgetStateInfo state) {
+void ThemeRenderer::drawCheckbox(const Common::Rect &r, const Common::String &str, bool checked, WidgetStateInfo state) {
if (!ready())
return;
@@ -252,7 +251,7 @@ void InterfaceManager::drawCheckbox(const Common::Rect &r, const Common::String
addDirtyRect(r);
}
-void InterfaceManager::drawSlider(const Common::Rect &r, int width, WidgetStateInfo state) {
+void ThemeRenderer::drawSlider(const Common::Rect &r, int width, WidgetStateInfo state) {
if (!ready())
return;
@@ -266,140 +265,22 @@ void InterfaceManager::drawSlider(const Common::Rect &r, int width, WidgetStateI
addDirtyRect(r);
}
-void InterfaceManager::drawScrollbar(const Common::Rect &r, int sliderY, int sliderHeight, ScrollbarState sb_state, WidgetStateInfo state) {
+void ThemeRenderer::drawScrollbar(const Common::Rect &r, int sliderY, int sliderHeight, ScrollbarState sb_state, WidgetStateInfo state) {
if (!ready())
return;
}
-void InterfaceManager::redrawDialogStack() {
- _vectorRenderer->clearSurface();
-
- for (int i = 0; i < _dialogStack.size(); ++i)
- _dialogStack[i]->draw();
-}
-
-void InterfaceManager::openDialog(Dialogs dname, Dialog *parent) {
- Dialog *dlg = 0;
- switch (dname) {
- case kDialogLauncher:
- dlg = new GUI::LauncherDialog;
- break;
-
- default:
- error("Unhandled dialog opening");
- break;
- }
-
- if (dlg)
- _dialogStack.push(dlg);
-}
-
-int InterfaceManager::runGUI() {
- init();
-
- if (!ready())
- return 0;
-
- Common::EventManager *eventMan = _system->getEventManager();
- Dialog *activeDialog = getTopDialog();
- Dialog *lastDialog = 0;
-
- if (!activeDialog)
- return 0;
-
- bool stackChange;
-
- int button;
- uint32 time;
-
- _system->showOverlay();
-
- while (activeDialog) { // draw!!
- stackChange = (activeDialog != lastDialog);
- lastDialog = activeDialog;
-
- if (stackChange || needRedraw())
- redrawDialogStack();
-
- if (!_dirtyScreen.empty()) {
- for (uint i = 0; i < _dirtyScreen.size(); ++i)
- _vectorRenderer->copyFrame(_system, _dirtyScreen[i]);
- _system->updateScreen();
- _dirtyScreen.clear();
- }
-
- Common::Event event;
-
- while (eventMan->pollEvent(event)) {
- activeDialog->handleTickle();
-
- Common::Point mouse(event.mouse.x - activeDialog->_x, event.mouse.y - activeDialog->_y);
-
- switch (event.type) {
- case Common::EVENT_KEYDOWN:
- activeDialog->handleKeyDown(event.kbd);
- break;
-
- case Common::EVENT_KEYUP:
- activeDialog->handleKeyUp(event.kbd);
- break;
-
- case Common::EVENT_MOUSEMOVE:
- activeDialog->handleMouseMoved(mouse.x, mouse.y, 0);
- break;
-
- case Common::EVENT_LBUTTONDOWN:
- case Common::EVENT_RBUTTONDOWN:
- button = (event.type == Common::EVENT_LBUTTONDOWN ? 1 : 2);
- time = _system->getMillis();
- if (_lastClick.count && (time < _lastClick.time + kDoubleClickDelay)
- && ABS(_lastClick.x - event.mouse.x) < 3
- && ABS(_lastClick.y - event.mouse.y) < 3) {
- _lastClick.count++;
- } else {
- _lastClick.x = event.mouse.x;
- _lastClick.y = event.mouse.y;
- _lastClick.count = 1;
- }
- _lastClick.time = time;
- activeDialog->handleMouseDown(mouse.x, mouse.y, button, _lastClick.count);
- break;
-
- case Common::EVENT_LBUTTONUP:
- case Common::EVENT_RBUTTONUP:
- button = (event.type == Common::EVENT_LBUTTONUP ? 1 : 2);
- activeDialog->handleMouseUp(mouse.x, mouse.y, button, _lastClick.count);
- break;
-
- case Common::EVENT_WHEELUP:
- activeDialog->handleMouseWheel(mouse.x, mouse.y, -1);
- break;
-
- case Common::EVENT_WHEELDOWN:
- activeDialog->handleMouseWheel(mouse.x, mouse.y, 1);
- break;
-
- case Common::EVENT_QUIT:
- _system->quit();
- return 1;
-
- case Common::EVENT_SCREEN_CHANGED:
- screenChange();
- break;
-
- default:
- break;
- }
- }
+void ThemeRenderer::renderDirtyScreen() {
+ // TODO: This isn't really optimized. Check dirty squares for collisions
+ // and all that.
+ if (_dirtyScreen.empty())
+ return;
- activeDialog = getTopDialog();
- _system->delayMillis(10);
- }
+ for (uint i = 0; i < _dirtyScreen.size(); ++i)
+ _vectorRenderer->copyFrame(_system, _dirtyScreen[i]);
- _system->hideOverlay();
- return 1;
+ _system->updateScreen();
+ _dirtyScreen.clear();
}
-
-
} // end of namespace GUI.
diff --git a/gui/InterfaceManager.h b/gui/ThemeRenderer.h
index ac612e0c52..e9904d8ae3 100644
--- a/gui/InterfaceManager.h
+++ b/gui/ThemeRenderer.h
@@ -62,7 +62,7 @@ struct WidgetDrawData {
}
};
-class InterfaceManager {
+class ThemeRenderer : public Theme {
typedef Common::String String;
typedef GUI::Dialog Dialog;
@@ -79,16 +79,6 @@ public:
kGfxStandard16bit,
kGfxAntialias16bit
};
-
- enum Dialogs {
- kDialogLauncher,
- kDialogMAX
- };
-
- enum {
- kDoubleClickDelay = 500, // milliseconds
- kCursorAnimateDelay = 250
- };
enum DrawData {
kDDMainDialogBackground,
@@ -120,61 +110,9 @@ public:
kDrawDataMAX
};
- enum FontStyle {
- kFontStyleBold = 0, //! A bold font. This is also the default font.
- kFontStyleNormal = 1, //! A normal font.
- kFontStyleItalic = 2, //! Italic styled font.
- kFontStyleFixedNormal = 3, //! Fixed size font.
- kFontStyleFixedBold = 4, //! Fixed size bold font.
- kFontStyleFixedItalic = 5, //! Fixed size italic font.
- kFontStyleMax
- };
-
- enum State {
- kStateDisabled, //! Indicates that the widget is disabled, that does NOT include that it is invisible
- kStateEnabled, //! Indicates that the widget is enabled
- kStateHighlight //! Indicates that the widget is highlighted by the user
- };
-
- //! Widget background type
- enum WidgetBackground {
- kWidgetBackgroundNo, //! No background at all
- kWidgetBackgroundPlain, //! Simple background, this may not include borders
- kWidgetBackgroundBorder, //! Same as kWidgetBackgroundPlain just with a border
- kWidgetBackgroundBorderSmall, //! Same as kWidgetBackgroundPlain just with a small border
- kWidgetBackgroundEditText, //! Background used for edit text fields
- kWidgetBackgroundSlider //! Background used for sliders
- };
-
- typedef State WidgetStateInfo;
-
- //! State of the scrollbar
- enum ScrollbarState {
- kScrollbarStateNo,
- kScrollbarStateUp,
- kScrollbarStateDown,
- kScrollbarStateSlider,
- kScrollbarStateSinglePage
- };
-
- //! Defined the align of the text
- enum TextAlign {
- kTextAlignLeft, //! Text should be aligned to the left
- kTextAlignCenter, //! Text should be centered
- 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
- };
-
+ ThemeRenderer();
- InterfaceManager();
-
- ~InterfaceManager() {
+ ~ThemeRenderer() {
freeRenderer();
freeScreen();
unloadTheme();
@@ -184,10 +122,22 @@ public:
delete _dialogStack.pop();
}
- void setGraphicsMode(Graphics_Mode mode);
- int runGUI();
-
- void init();
+ // virtual methods from Theme
+ bool init();
+ void deinit() {}
+ void refresh() {}
+ void enable() {}
+ void disable() {}
+ void openDialog() {}
+ void closeAllDialogs() {}
+ void clearAll() {}
+ void updateScreen() {}
+ void resetDrawArea() {}
+ void openDialog(bool top) {}
+
+ virtual bool isDynamic() {
+ return true;
+ }
/** Font management */
const Graphics::Font *getFont(FontStyle font) const { return _font; }
@@ -207,6 +157,16 @@ public:
void drawCaret(const Common::Rect &r, bool erase, WidgetStateInfo state = kStateEnabled) {}
void drawLineSeparator(const Common::Rect &r, WidgetStateInfo state = kStateEnabled);
+ void drawDialogBackground(const Common::Rect &r, uint16 hints, WidgetStateInfo state) {}
+ void drawText(const Common::Rect &r, const Common::String &str, WidgetStateInfo state, TextAlign align, bool inverted, int deltax, bool useEllipsis, FontStyle font) {}
+ void drawChar(const Common::Rect &r, byte ch, const Graphics::Font *font, WidgetStateInfo state) {}
+
+ bool addDirtyRect(Common::Rect r, bool backup = false, bool special = false) {
+ _dirtyScreen.push_back(r);
+ return true;
+ }
+
+ // custom stuff - tanoku
DrawData getDrawDataId(Common::String &name) {
for (int i = 0; i < kDrawDataMAX; ++i)
if (name.compareToIgnoreCase(kDrawDataStrings[i]) == 0)
@@ -237,13 +197,14 @@ public:
}
bool loadTheme(Common::String themeName);
- void openDialog(Dialogs dname, Dialog *parent);
void closeTopDialog() {
assert(_dialogStack.empty() == false);
delete _dialogStack.pop();
}
+ void setGraphicsMode(Graphics_Mode mode);
+
protected:
template<typename PixelType> void screenInit();
@@ -261,6 +222,7 @@ protected:
}
void screenChange() {}
+ void renderDirtyScreen();
void freeRenderer() {
delete _vectorRenderer;
@@ -296,8 +258,15 @@ protected:
inline void drawDD(DrawData type, const Common::Rect &r);
- void addDirtyRect(const Common::Rect &r) {
- _dirtyScreen.push_back(r);
+ // TODO
+ void restoreBackground(Common::Rect r, bool special = false) {}
+
+ int getTabSpacing() const {
+ return 0;
+ }
+
+ int getTabPadding() const {
+ return 3;
}
OSystem *_system;
@@ -321,12 +290,6 @@ protected:
bool _caching;
bool _needThemeLoad;
bool _enabled;
-
- struct {
- int16 x, y; // Position of mouse when the click occured
- uint32 time; // Time
- int count; // How often was it already pressed?
- } _lastClick;
};
} // end of namespace GUI.
diff --git a/gui/object.h b/gui/object.h
index 2bdff3f76c..01046bd668 100644
--- a/gui/object.h
+++ b/gui/object.h
@@ -29,7 +29,6 @@ namespace GUI {
class CommandReceiver;
class CommandSender;
-class InterfaceManager;
class CommandReceiver {
friend class CommandSender;
@@ -66,7 +65,6 @@ protected:
Common::String _name;
Widget *_firstWidget;
- InterfaceManager *_GUI;
public:
GuiObject(int x, int y, int w, int h) : _x(x), _y(y), _w(w), _h(h), _name(""), _firstWidget(0) { }
@@ -85,7 +83,6 @@ public:
virtual void draw() = 0;
virtual void reflowLayout();
- virtual void setInterfaceManager(InterfaceManager *manager) { _GUI = manager; }
protected:
virtual void releaseFocus() = 0;
diff --git a/gui/theme.h b/gui/theme.h
index 4f61609fbd..320d2544e0 100644
--- a/gui/theme.h
+++ b/gui/theme.h
@@ -348,6 +348,10 @@ public:
const Common::String &getStylefileName() const { return _stylefile; }
const Common::String &getThemeName() const { return _stylename; }
+ virtual bool isDynamic() {
+ return false;
+ }
+
/**
* Checks if the theme renderer supports drawing of images.
*