changeset 18583:d0fba6f5c87a draft

(svn r23428) -Fix (r23415): Initial size of the infrastructure details windows was sometimes too small.
author michi_cc <michi_cc@openttd.org>
date Sun, 04 Dec 2011 13:27:24 +0000
parents 762b8d0e4f5d
children 8e0f5c31ae22
files src/company_gui.cpp
diffstat 1 files changed, 18 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/company_gui.cpp
+++ b/src/company_gui.cpp
@@ -1746,6 +1746,8 @@
 			case CIW_WIDGET_RAIL_DESC: {
 				uint lines = 1;
 
+				size->width = max(size->width, GetStringBoundingBox(STR_COMPANY_INFRASTRUCTURE_VIEW_RAIL_SECT).width);
+
 				for (RailType rt = RAILTYPE_BEGIN; rt < RAILTYPE_END; rt++) {
 					if (HasBit(this->railtypes, rt)) {
 						lines++;
@@ -1765,6 +1767,8 @@
 			case CIW_WIDGET_ROAD_DESC: {
 				uint lines = 1;
 
+				size->width = max(size->width, GetStringBoundingBox(STR_COMPANY_INFRASTRUCTURE_VIEW_ROAD_SECT).width);
+
 				if (HasBit(this->roadtypes, ROADTYPE_ROAD)) {
 					lines++;
 					size->width = max(size->width, GetStringBoundingBox(STR_COMPANY_INFRASTRUCTURE_VIEW_ROAD).width + WD_FRAMERECT_LEFT);
@@ -1778,14 +1782,25 @@
 				break;
 			}
 
+			case CIW_WIDGET_WATER_DESC:
+				size->width = max(size->width, GetStringBoundingBox(STR_COMPANY_INFRASTRUCTURE_VIEW_WATER_SECT).width);
+				size->width = max(size->width, GetStringBoundingBox(STR_COMPANY_INFRASTRUCTURE_VIEW_CANALS).width + WD_FRAMERECT_LEFT);
+				break;
+
+			case CIW_WIDGET_STATION_DESC:
+				size->width = max(size->width, GetStringBoundingBox(STR_COMPANY_INFRASTRUCTURE_VIEW_STATION_SECT).width);
+				size->width = max(size->width, GetStringBoundingBox(STR_COMPANY_INFRASTRUCTURE_VIEW_STATIONS).width + WD_FRAMERECT_LEFT);
+				size->width = max(size->width, GetStringBoundingBox(STR_COMPANY_INFRASTRUCTURE_VIEW_AIRPORTS).width + WD_FRAMERECT_LEFT);
+				break;
+
 			case CIW_WIDGET_RAIL_COUNT:
 			case CIW_WIDGET_ROAD_COUNT:
 			case CIW_WIDGET_WATER_COUNT:
 			case CIW_WIDGET_STATION_COUNT:
 			case CIW_WIDGET_TOTAL: {
 				/* Find the maximum count that is displayed. */
-				uint32 max_val = 100000; // Some random number to reserve enough space.
-				Money max_cost = 100000; // Some random number to reserve enough space.
+				uint32 max_val = 1000;  // Some random number to reserve enough space.
+				Money max_cost = 10000; // Some random number to reserve enough space.
 				for (RailType rt = RAILTYPE_BEGIN; rt < RAILTYPE_END; rt++) {
 					max_val = max(max_val, c->infrastructure.rail[rt]);
 					max_cost = max(max_cost, RailMaintenanceCost(rt, c->infrastructure.rail[rt]));
@@ -1808,7 +1823,7 @@
 				size->width = max(size->width, GetStringBoundingBox(_settings_game.economy.infrastructure_maintenance ? STR_COMPANY_INFRASTRUCTURE_VIEW_COST : STR_WHITE_COMMA).width + 20); // Reserve some wiggle room.
 
 				if (_settings_game.economy.infrastructure_maintenance) {
-					SetDParam(0, this->GetTotalMaintenanceCost());
+					SetDParam(0, this->GetTotalMaintenanceCost() * 12); // Convert to per year
 					this->total_width = GetStringBoundingBox(STR_COMPANY_INFRASTRUCTURE_VIEW_TOTAL).width + 20;
 					size->width = max(size->width, this->total_width);
 				}