From 0c3093b25f3d53651b63fc6b86bf9285a26ed8c1 Mon Sep 17 00:00:00 2001 From: rubidium Date: Sun, 20 Aug 2006 10:50:23 +0000 Subject: [PATCH] (svn r5967) -Change: use right alignment for the year in the player's balance window instead of centering (about) 'string width' / 2 from the right edge --- gfx.c | 14 ++++++++++++-- gfx.h | 3 ++- player_gui.c | 2 +- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/gfx.c b/gfx.c index 58c22767e3..f04c17aa65 100644 --- a/gfx.c +++ b/gfx.c @@ -352,12 +352,16 @@ int DrawStringTruncated(int x, int y, StringID str, uint16 color, uint maxw) } -void DrawStringRightAligned(int x, int y, StringID str, uint16 color) +int DrawStringRightAligned(int x, int y, StringID str, uint16 color) { char buffer[512]; + int w; GetString(buffer, str); - DoDrawString(buffer, x - GetStringWidth(buffer), y, color); + w = GetStringWidth(buffer); + DoDrawString(buffer, x - w, y, color); + + return w; } void DrawStringRightAlignedTruncated(int x, int y, StringID str, uint16 color, uint maxw) @@ -368,6 +372,12 @@ void DrawStringRightAlignedTruncated(int x, int y, StringID str, uint16 color, u DoDrawString(buffer, x - GetStringWidth(buffer), y, color); } +void DrawStringRightAlignedUnderline(int x, int y, StringID str, uint16 color) +{ + int w = DrawStringRightAligned(x, y, str, color); + GfxFillRect(x - w, y + 10, x, y + 10, _string_colorremap[1]); +} + int DrawStringCentered(int x, int y, StringID str, uint16 color) { diff --git a/gfx.h b/gfx.h index 7939051869..cecec1d025 100644 --- a/gfx.h +++ b/gfx.h @@ -67,8 +67,9 @@ int DoDrawStringTruncated(const char *str, int x, int y, uint16 color, uint maxw void DrawStringCenterUnderline(int x, int y, StringID str, uint16 color); void DrawStringCenterUnderlineTruncated(int xl, int xr, int y, StringID str, uint16 color); -void DrawStringRightAligned(int x, int y, StringID str, uint16 color); +int DrawStringRightAligned(int x, int y, StringID str, uint16 color); void DrawStringRightAlignedTruncated(int x, int y, StringID str, uint16 color, uint maxw); +void DrawStringRightAlignedUnderline(int x, int y, StringID str, uint16 color); void GfxFillRect(int left, int top, int right, int bottom, int color); void GfxDrawLine(int left, int top, int right, int bottom, int color); diff --git a/player_gui.c b/player_gui.c index 1c106e566a..9f5aea3628 100644 --- a/player_gui.c +++ b/player_gui.c @@ -48,7 +48,7 @@ static void DrawPlayerEconomyStats(const Player *p, byte mode) do { if (year >= BASE_YEAR + p->inaugurated_year) { SetDParam(0, year); - DrawStringCenterUnderline(x-17, 15, STR_7010, 0); + DrawStringRightAlignedUnderline(x, 15, STR_7010, 0); sum = 0; for (i = 0; i != 13; i++) { /* draw one row in the price column */