From b0f7f2e8d412b65a7bb950f50d1fa511fd6ef946 Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Sat, 6 Jun 2009 17:51:41 +0000 Subject: Implement widget property "textalign". Added it to all theme layouts svn-id: r41265 --- gui/ThemeEval.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'gui/ThemeEval.cpp') diff --git a/gui/ThemeEval.cpp b/gui/ThemeEval.cpp index 3729c1b499..d50564462c 100644 --- a/gui/ThemeEval.cpp +++ b/gui/ThemeEval.cpp @@ -67,7 +67,7 @@ bool ThemeEval::getWidgetData(const Common::String &widget, int16 &x, int16 &y, } -void ThemeEval::addWidget(const Common::String &name, int w, int h, const Common::String &type, bool enabled) { +void ThemeEval::addWidget(const Common::String &name, int w, int h, const Common::String &type, bool enabled, Graphics::TextAlign align) { int typeW = -1; int typeH = -1; @@ -82,6 +82,7 @@ void ThemeEval::addWidget(const Common::String &name, int w, int h, const Common _curLayout.top()->addChild(widget); setVar(_curDialog + "." + name + ".Enabled", enabled ? 1 : 0); + setVar(_curDialog + "." + name + ".Align", align); } void ThemeEval::addDialog(const Common::String &name, const Common::String &overlays, bool enabled, int inset) { -- cgit v1.2.3 From b0db1b5ed0634dee707d234cfda23201c648cf98 Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Sat, 6 Jun 2009 17:52:44 +0000 Subject: Implement FR#2507667: "GUI: Improve PopupWidget rendering / theme layouting". - Split out label from PopUp widget - Aligned every widget on all layouts so GUI becomes to look nice again - Moved textHAlign to layout properties svn-id: r41266 --- gui/ThemeEval.cpp | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) (limited to 'gui/ThemeEval.cpp') diff --git a/gui/ThemeEval.cpp b/gui/ThemeEval.cpp index d50564462c..8872741228 100644 --- a/gui/ThemeEval.cpp +++ b/gui/ThemeEval.cpp @@ -66,23 +66,39 @@ bool ThemeEval::getWidgetData(const Common::String &widget, int16 &x, int16 &y, return _layouts[dialogName]->getWidgetData(widgetName, x, y, w, h); } +Graphics::TextAlign ThemeEval::getWidgetTextHAlign(const Common::String &widget) { + Common::StringTokenizer tokenizer(widget, "."); + + if (widget.hasPrefix("Dialog.")) + tokenizer.nextToken(); + + Common::String dialogName = "Dialog." + tokenizer.nextToken(); + Common::String widgetName = tokenizer.nextToken(); + + if (!_layouts.contains(dialogName)) + return Graphics::kTextAlignInvalid; + + return _layouts[dialogName]->getWidgetTextHAlign(widgetName); +} void ThemeEval::addWidget(const Common::String &name, int w, int h, const Common::String &type, bool enabled, Graphics::TextAlign align) { int typeW = -1; int typeH = -1; + Graphics::TextAlign typeAlign = Graphics::kTextAlignInvalid; if (!type.empty()) { typeW = getVar("Globals." + type + ".Width", -1); typeH = getVar("Globals." + type + ".Height", -1); + typeAlign = (Graphics::TextAlign)getVar("Globals." + type + ".Align", Graphics::kTextAlignInvalid); } ThemeLayoutWidget *widget = new ThemeLayoutWidget(_curLayout.top(), name, typeW == -1 ? w : typeW, - typeH == -1 ? h : typeH); + typeH == -1 ? h : typeH, + typeAlign == Graphics::kTextAlignInvalid ? align : typeAlign); _curLayout.top()->addChild(widget); setVar(_curDialog + "." + name + ".Enabled", enabled ? 1 : 0); - setVar(_curDialog + "." + name + ".Align", align); } void ThemeEval::addDialog(const Common::String &name, const Common::String &overlays, bool enabled, int inset) { -- cgit v1.2.3