summaryrefslogtreecommitdiff
path: root/src/misc_gui.cpp
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2009-03-22 09:34:06 +0000
committerrubidium <rubidium@openttd.org>2009-03-22 09:34:06 +0000
commite74dc1e1d6dc57b2d6b79ef921888c0204855139 (patch)
tree1266c6a78a4ae2bcbfd356af1e87bfdbb85fbe80 /src/misc_gui.cpp
parent70d0f8857e5b984d5f74dda353413dc2cd8221ba (diff)
downloadopenttd-e74dc1e1d6dc57b2d6b79ef921888c0204855139.tar.xz
(svn r15803) -Codechange: use the new text drawing API for multicenter
-Fix (r15800): off-by-one w.r.t. offsets
Diffstat (limited to 'src/misc_gui.cpp')
-rw-r--r--src/misc_gui.cpp33
1 files changed, 16 insertions, 17 deletions
diff --git a/src/misc_gui.cpp b/src/misc_gui.cpp
index 7e1dce368..091bae308 100644
--- a/src/misc_gui.cpp
+++ b/src/misc_gui.cpp
@@ -89,11 +89,9 @@ public:
y += i == 0 ? 16 : 12;
}
- y += 6;
-
if (!StrEmpty(this->landinfo_data[LAND_INFO_MULTICENTER_LINE])) {
SetDParamStr(0, this->landinfo_data[LAND_INFO_MULTICENTER_LINE]);
- DrawStringMultiCenter(150, y, STR_JUST_RAW_STRING, this->width - 4);
+ DrawStringMultiLine(this->widget[LIW_BACKGROUND].left + 2, this->widget[LIW_BACKGROUND].right - 2, y, y + 22, STR_JUST_RAW_STRING, SA_CENTER);
}
}
@@ -436,7 +434,7 @@ private:
StringID message_2;
bool show_company_manager_face;
- int y[2];
+ int y[4];
public:
ErrmsgWindow(Point pt, int width, int height, StringID msg1, StringID msg2, const Widget *widget, bool show_company_manager_face) :
@@ -454,22 +452,23 @@ public:
assert(msg2 != INVALID_STRING_ID);
- int h2 = 3 + GetStringHeight(msg2, width - 2); // msg2 is printed first
- int h1 = (msg1 == INVALID_STRING_ID) ? 0 : 3 + GetStringHeight(msg1, width - 2);
+ int h2 = GetStringHeight(msg2, width - 2); // msg2 is printed first
+ int h1 = (msg1 == INVALID_STRING_ID) ? 0 : GetStringHeight(msg1, width - 2);
SwitchToNormalRefStack();
- int h = 15 + h1 + h2;
+ int h = 20 + h1 + h2;
height = max<int>(height, h);
if (msg1 == INVALID_STRING_ID) {
- /* only 1 line will be printed */
- y[1] = (height - 15) / 2 + 15 - 5;
+ y[2] = 14 + 1;
+ y[3] = height - 1;
} else {
- int over = (height - h) / 4;
-
- y[1] = 15 + h2 / 2 + 1 - 5 + over;
- y[0] = height - 3 - h1 / 2 - 5 - over;
+ int over = (height - 16 - h1 - h2) / 2;
+ y[1] = height - 1;
+ y[0] = y[1] - h1 - over;
+ y[2] = 14 + 1;
+ y[3] = y[2] + h2 + over;
}
this->FindWindowPlacementAndResize(width, height);
@@ -492,8 +491,8 @@ public:
DrawCompanyManagerFace(c->face, c->colour, 2, 16);
}
- DrawStringMultiCenter(this->width - 120, y[1], this->message_2, this->width - 2);
- if (this->message_1 != INVALID_STRING_ID) DrawStringMultiCenter(this->width - 120, y[0], this->message_1, this->width - 2);
+ DrawStringMultiLine(1, this->width - 1, y[2], y[3] , this->message_2, SA_CENTER);
+ if (this->message_1 != INVALID_STRING_ID) DrawStringMultiLine(1, this->width - 1, y[0], y[1], this->message_1, SA_CENTER);
/* Switch back to the normal text ref. stack for NewGRF texts */
SwitchToNormalRefStack();
@@ -664,7 +663,7 @@ struct TooltipsWindow : public Window
for (uint arg = 0; arg < this->paramcount; arg++) {
SetDParam(arg, this->params[arg]);
}
- DrawStringMultiCenter((this->width >> 1), (this->height >> 1) - 5, this->string_id, this->width - 2);
+ DrawStringMultiLine(1, this->width - 1, 0, this->height, this->string_id, SA_CENTER);
}
virtual void OnMouseLoop()
@@ -1279,7 +1278,7 @@ struct QueryWindow : public Window {
this->DrawWidgets();
CopyInDParam(0, this->params, lengthof(this->params));
- DrawStringMultiCenter(this->width / 2, (this->height / 2) - 10, this->message, this->width - 2);
+ DrawStringMultiLine(1, this->width - 1, 14, 62, this->message, SA_CENTER);
}
virtual void OnClick(Point pt, int widget)