From 2184b5db8a48c6064f387b33a3790617668df065 Mon Sep 17 00:00:00 2001 From: alberth Date: Fri, 14 Aug 2009 21:20:22 +0000 Subject: (svn r17173) -Codechange: Vertically align WWT_TEXT widget, generalize vertical alignment of label and text buttons. --- src/widget.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/widget.cpp') diff --git a/src/widget.cpp b/src/widget.cpp index 70dd207c9..e46bb5f8b 100644 --- a/src/widget.cpp +++ b/src/widget.cpp @@ -301,7 +301,9 @@ static inline void DrawLabel(const Rect &r, WidgetType type, bool clicked, Strin { if (str == STR_NULL) return; if ((type & WWT_MASK) == WWT_TEXTBTN_2 && clicked) str++; - DrawString(r.left + clicked, r.right + clicked, ((r.top + r.bottom + 1) >> 1) - (FONT_HEIGHT_NORMAL / 2) + clicked, str, TC_FROMSTRING, SA_CENTER); + Dimension d = GetStringBoundingBox(str); + int offset = max(0, ((int)(r.bottom - r.top + 1) - (int)d.height) / 2); // Offset for rendering the text vertically centered + DrawString(r.left + clicked, r.right + clicked, r.top + offset + clicked, str, TC_FROMSTRING, SA_CENTER); } /** @@ -312,7 +314,9 @@ static inline void DrawLabel(const Rect &r, WidgetType type, bool clicked, Strin */ static inline void DrawText(const Rect &r, TextColour colour, StringID str) { - if (str != STR_NULL) DrawString(r.left, r.right, r.top, str, colour); + Dimension d = GetStringBoundingBox(str); + int offset = max(0, ((int)(r.bottom - r.top + 1) - (int)d.height) / 2); // Offset for rendering the text vertically centered + if (str != STR_NULL) DrawString(r.left, r.right, r.top + offset, str, colour); } /** -- cgit v1.2.3-70-g09d2