diff options
author | Vicent Marti | 2008-08-08 10:37:58 +0000 |
---|---|---|
committer | Vicent Marti | 2008-08-08 10:37:58 +0000 |
commit | 1ea3301a8a358e9da9be644b8de54a9fec952dce (patch) | |
tree | 7069c4ca807da2f98b464d78c4424c481e96c2c2 /gui/ThemeEval.h | |
parent | 39c28e434beb94addd9788e7ab7c4dd9d66ca12e (diff) | |
download | scummvm-rg350-1ea3301a8a358e9da9be644b8de54a9fec952dce.tar.gz scummvm-rg350-1ea3301a8a358e9da9be644b8de54a9fec952dce.tar.bz2 scummvm-rg350-1ea3301a8a358e9da9be644b8de54a9fec952dce.zip |
SCUMM save/load dialog.
Expanded documentation.
Added support for sub-blitting in the vector renderer.
svn-id: r33697
Diffstat (limited to 'gui/ThemeEval.h')
-rw-r--r-- | gui/ThemeEval.h | 40 |
1 files changed, 26 insertions, 14 deletions
diff --git a/gui/ThemeEval.h b/gui/ThemeEval.h index ba6e3381ac..7df4d60aa4 100644 --- a/gui/ThemeEval.h +++ b/gui/ThemeEval.h @@ -91,8 +91,7 @@ public: width += p->_paddingRight + p->_paddingLeft; if (p->getLayoutType() == kLayoutHorizontal) { for (uint i = 0; i < p->_children.size(); ++i) - if (p->_children[i]->getLayoutType() == kLayoutWidget) - width += p->_children[i]->getHeight() + p->_spacing; + width += p->_children[i]->getHeight() + p->_spacing; } p = p->_parent; } @@ -108,8 +107,7 @@ public: height += p->_paddingBottom + p->_paddingTop; if (p->getLayoutType() == kLayoutVertical) { for (uint i = 0; i < p->_children.size(); ++i) - if (p->_children[i]->getLayoutType() == kLayoutWidget) - height += p->_children[i]->getHeight() + p->_spacing; + height += p->_children[i]->getHeight() + p->_spacing; } p = p->_parent; } @@ -304,25 +302,37 @@ class ThemeEval { typedef Common::HashMap<Common::String, ThemeLayout*> LayoutsMap; public: - ThemeEval() {} + ThemeEval() { + buildBuiltinVars(); + } ~ThemeEval() {} + void buildBuiltinVars(); + int getVar(const Common::String &s) { - if (!_vars.contains(s)) { - error("CRITICAL: Missing variable: '%s'", s.c_str()); - return -13375; //EVAL_UNDEF_VAR - } - - return _vars[s]; + if (_vars.contains(s)) + return _vars[s]; + + if (_builtin.contains(s)) + return _builtin[s]; + + error("CRITICAL: Missing variable: '%s'", s.c_str()); + return -13375; //EVAL_UNDEF_VAR } int getVar(const Common::String &s, int def) { - return (_vars.contains(s)) ? _vars[s] : def; + if (_vars.contains(s)) + return _vars[s]; + + if (_builtin.contains(s)) + return _builtin[s]; + + return def; } void setVar(const String &name, int val) { _vars[name] = val; } - bool hasVar(const Common::String &name) { return _vars.contains(name); } + bool hasVar(const Common::String &name) { return _vars.contains(name) || _builtin.contains(name); } void addDialog(const Common::String &name, const Common::String &overlays, bool enabled = true); void addLayout(ThemeLayout::LayoutType type, int spacing, bool reverse, bool center = false); @@ -365,12 +375,14 @@ public: } void debugDraw(Graphics::Surface *screen, const Graphics::Font *font) { - _layouts["Dialog.ScummConfig"]->debugDraw(screen, font); + _layouts["Dialog.ScummSaveLoad"]->debugDraw(screen, font); // _layouts["Dialog.GameOptions_Graphics"]->debugDraw(screen, font); } private: VariablesMap _vars; + VariablesMap _builtin; + LayoutsMap _layouts; Common::Stack<ThemeLayout*> _curLayout; Common::String _curDialog; |