Mercurial > hg > openttd
changeset 14032:0a874c3b0514 draft
(svn r18575) -Fix [FS#3393]: unit numbers weren't always fully shown in the depot
author | rubidium <rubidium@openttd.org> |
---|---|
date | Sun, 20 Dec 2009 16:42:35 +0000 |
parents | c603550031d4 |
children | d10f25c883e9 |
files | src/depot_gui.cpp src/gfx.cpp src/gfx_func.h |
diffstat | 3 files changed, 17 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/depot_gui.cpp +++ b/src/depot_gui.cpp @@ -631,15 +631,14 @@ this->count_width = 0; } - SetDParam(0, 999); - Dimension unumber = GetStringBoundingBox(STR_BLACK_COMMA); + Dimension unumber = { GetDigitWidth() * 4, FONT_HEIGHT_NORMAL }; const Sprite *spr = GetSprite(SPR_FLAG_VEH_STOPPED, ST_NORMAL); this->flag_width = spr->width + WD_FRAMERECT_RIGHT; this->flag_height = spr->height; if (this->type == VEH_TRAIN || this->type == VEH_ROAD) { min_height = max<uint>(unumber.height + WD_MATRIX_TOP, spr->height); - this->header_width = unumber.width + this->flag_width; + this->header_width = unumber.width + this->flag_width + WD_FRAMERECT_LEFT; } else { min_height = unumber.height + spr->height + WD_MATRIX_TOP + WD_PAR_VSEP_NORMAL + WD_MATRIX_BOTTOM; this->header_width = max<uint>(unumber.width, this->flag_width) + WD_FRAMERECT_RIGHT;
--- a/src/gfx.cpp +++ b/src/gfx.cpp @@ -1306,6 +1306,20 @@ return GetGlyphWidth(size, key); } +/** + * Return the maximum width of single digit. + * @param size Font of the digit + * @return Width of the digit. + */ +byte GetDigitWidth(FontSize size) +{ + byte width = 0; + for (char c = '0'; c <= '9'; c++) { + width = max(GetCharacterWidth(size, c), width); + } + return width; +} + void ScreenSizeChanged() {