aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohannes Schickel2012-06-20 03:31:50 +0200
committerJohannes Schickel2012-06-20 03:31:50 +0200
commit80ae9d7d34234e6cf9a7464723691d7b2b72cb26 (patch)
treec626f3b353cc1a7fe10255778c253c9e68d66d40
parent72ea449431d9db61c45160f7c42d546599e84afe (diff)
downloadscummvm-rg350-80ae9d7d34234e6cf9a7464723691d7b2b72cb26.tar.gz
scummvm-rg350-80ae9d7d34234e6cf9a7464723691d7b2b72cb26.tar.bz2
scummvm-rg350-80ae9d7d34234e6cf9a7464723691d7b2b72cb26.zip
GUI: Allow tooltips to be changed after widget creation.
-rw-r--r--gui/Tooltip.cpp2
-rw-r--r--gui/gui-manager.cpp2
-rw-r--r--gui/widget.h6
3 files changed, 6 insertions, 4 deletions
diff --git a/gui/Tooltip.cpp b/gui/Tooltip.cpp
index 85e5856cff..88124e782b 100644
--- a/gui/Tooltip.cpp
+++ b/gui/Tooltip.cpp
@@ -37,7 +37,7 @@ Tooltip::Tooltip() :
}
void Tooltip::setup(Dialog *parent, Widget *widget, int x, int y) {
- assert(widget->getTooltip());
+ assert(widget->hasTooltip());
_maxWidth = g_gui.xmlEval()->getVar("Globals.Tooltip.MaxWidth", 100);
_xdelta = g_gui.xmlEval()->getVar("Globals.Tooltip.XDelta", 0);
diff --git a/gui/gui-manager.cpp b/gui/gui-manager.cpp
index abd781e1a3..a0ef4216aa 100644
--- a/gui/gui-manager.cpp
+++ b/gui/gui-manager.cpp
@@ -381,7 +381,7 @@ void GuiManager::runLoop() {
if (tooltipCheck && _lastMousePosition.time + kTooltipDelay < _system->getMillis()) {
Widget *wdg = activeDialog->findWidget(_lastMousePosition.x, _lastMousePosition.y);
- if (wdg && wdg->getTooltip() && !(wdg->getFlags() & WIDGET_PRESSED)) {
+ if (wdg && wdg->hasTooltip() && !(wdg->getFlags() & WIDGET_PRESSED)) {
Tooltip *tooltip = new Tooltip();
tooltip->setup(activeDialog, wdg, _lastMousePosition.x, _lastMousePosition.y);
tooltip->runModal();
diff --git a/gui/widget.h b/gui/widget.h
index 6de56862c3..d80b2ad7e2 100644
--- a/gui/widget.h
+++ b/gui/widget.h
@@ -88,7 +88,7 @@ protected:
uint16 _id;
bool _hasFocus;
ThemeEngine::WidgetStateInfo _state;
- const char *_tooltip;
+ Common::String _tooltip;
private:
uint16 _flags;
@@ -142,7 +142,9 @@ public:
uint8 parseHotkey(const Common::String &label);
Common::String cleanupHotkey(const Common::String &label);
- const char *getTooltip() const { return _tooltip; }
+ bool hasTooltip() const { return !_tooltip.empty(); }
+ const Common::String &getTooltip() const { return _tooltip; }
+ void setTooltip(const Common::String &tooltip) { _tooltip = tooltip; }
protected:
void updateState(int oldFlags, int newFlags);