aboutsummaryrefslogtreecommitdiff
path: root/gui/ThemeParser.cpp
diff options
context:
space:
mode:
authorEugene Sandulenko2009-06-06 17:51:41 +0000
committerEugene Sandulenko2009-06-06 17:51:41 +0000
commitb0f7f2e8d412b65a7bb950f50d1fa511fd6ef946 (patch)
tree7c48a81f6139f6c70497adb0d6e168046cbb1d5b /gui/ThemeParser.cpp
parentb49d23b89810fc196a27e2d3c49e17364fc5f453 (diff)
downloadscummvm-rg350-b0f7f2e8d412b65a7bb950f50d1fa511fd6ef946.tar.gz
scummvm-rg350-b0f7f2e8d412b65a7bb950f50d1fa511fd6ef946.tar.bz2
scummvm-rg350-b0f7f2e8d412b65a7bb950f50d1fa511fd6ef946.zip
Implement widget property "textalign". Added it to all theme layouts
svn-id: r41265
Diffstat (limited to 'gui/ThemeParser.cpp')
-rw-r--r--gui/ThemeParser.cpp47
1 files changed, 32 insertions, 15 deletions
diff --git a/gui/ThemeParser.cpp b/gui/ThemeParser.cpp
index d0e5528480..31d1deb656 100644
--- a/gui/ThemeParser.cpp
+++ b/gui/ThemeParser.cpp
@@ -62,6 +62,28 @@ static TextData parseTextDataId(const Common::String &name) {
return kTextDataNone;
}
+static Graphics::TextAlign parseTextHAlign(const Common::String &val) {
+ if (val == "left")
+ return Graphics::kTextAlignLeft;
+ else if (val == "right")
+ return Graphics::kTextAlignRight;
+ else if (val == "center")
+ return Graphics::kTextAlignCenter;
+ else
+ return Graphics::kTextAlignInvalid;
+}
+
+static GUI::ThemeEngine::TextAlignVertical parseTextVAlign(const Common::String &val) {
+ if (val == "top")
+ return GUI::ThemeEngine::kTextAlignVTop;
+ else if (val == "center")
+ return GUI::ThemeEngine::kTextAlignVCenter;
+ else if (val == "bottom")
+ return GUI::ThemeEngine::kTextAlignVBottom;
+ else
+ return GUI::ThemeEngine::kTextAlignVInvalid;
+}
+
ThemeParser::ThemeParser(ThemeEngine *parent) : XMLParser() {
@@ -206,22 +228,10 @@ bool ThemeParser::parserCallback_text(ParserNode *node) {
Graphics::TextAlign alignH;
GUI::ThemeEngine::TextAlignVertical alignV;
- if (node->values["horizontal_align"] == "left")
- alignH = Graphics::kTextAlignLeft;
- else if (node->values["horizontal_align"] == "right")
- alignH = Graphics::kTextAlignRight;
- else if (node->values["horizontal_align"] == "center")
- alignH = Graphics::kTextAlignCenter;
- else
+ if ((alignH = parseTextHAlign(node->values["horizontal_align"])) == Graphics::kTextAlignInvalid)
return parserError("Invalid value for text alignment.");
- if (node->values["vertical_align"] == "top")
- alignV = GUI::ThemeEngine::kTextAlignVTop;
- else if (node->values["vertical_align"] == "center")
- alignV = GUI::ThemeEngine::kTextAlignVCenter;
- else if (node->values["vertical_align"] == "bottom")
- alignV = GUI::ThemeEngine::kTextAlignVBottom;
- else
+ if ((alignV = parseTextVAlign(node->values["vertical_align"])) == GUI::ThemeEngine::kTextAlignVInvalid)
return parserError("Invalid value for text alignment.");
Common::String id = getParentNode(node)->values["id"];
@@ -566,7 +576,14 @@ bool ThemeParser::parserCallback_widget(ParserNode *node) {
return parserError("Corrupted height value in key for %s", var.c_str());
}
- _theme->getEvaluator()->addWidget(var, width, height, node->values["type"], enabled);
+ Graphics::TextAlign alignH = Graphics::kTextAlignLeft;
+
+ if (node->values.contains("textalign")) {
+ if((alignH = parseTextHAlign(node->values["textalign"])) == Graphics::kTextAlignInvalid)
+ return parserError("Invalid value for text alignment.");
+ }
+
+ _theme->getEvaluator()->addWidget(var, width, height, node->values["type"], enabled, alignH);
}
return true;