changeset 11017:0b644f70e88e draft

(svn r15357) -Codechange: unify the way buttons are updated in the 'found town' window
author smatz <smatz@openttd.org>
date Thu, 05 Feb 2009 16:51:23 +0000
parents 84566ff2a186
children 09d43097ac2f
files src/lang/english.txt src/town_gui.cpp
diffstat 2 files changed, 20 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/src/lang/english.txt
+++ b/src/lang/english.txt
@@ -762,7 +762,7 @@
 STR_02A3_LARGE                                                  :{BLACK}Large
 STR_SELECT_TOWN_SIZE_RANDOM                                     :{BLACK}Random
 STR_SCENARIO_EDITOR_CITY                                        :{BLACK}City
-STR_SCENARIO_EDITOR_CITY_TOOLTIP                                :{BLACK}Cities grow faster than regular towns{}Depending on settings, they are bigger when found
+STR_SCENARIO_EDITOR_CITY_TOOLTIP                                :{BLACK}Cities grow faster than regular towns{}Depending on settings, they are bigger when founded
 STR_02A4_SELECT_TOWN_SIZE                                       :{BLACK}Select town size
 STR_02A5_TOWN_SIZE                                              :{YELLOW}Town size:
 
--- a/src/town_gui.cpp
+++ b/src/town_gui.cpp
@@ -653,11 +653,25 @@
 public:
 	ScenarioEditorTownGenerationWindow(const WindowDesc *desc, WindowNumber window_number) : Window(desc, window_number)
 	{
-		this->LowerWidget(town_size + TSEW_SIZE_SMALL);
 		this->FindWindowPlacementAndResize(desc);
 		town_layout = _settings_game.economy.town_layout;
-		this->LowerWidget(town_layout + TSEW_LAYOUT_ORIGINAL);
 		city = false;
+		this->UpdateButtons();
+	}
+
+	void UpdateButtons()
+	{
+		for (int i = TSEW_SIZE_SMALL; i <= TSEW_SIZE_RANDOM; i++) {
+			this->SetWidgetLoweredState(i, i == TSEW_SIZE_SMALL + town_size);
+		}
+
+		this->SetWidgetLoweredState(TSEW_CITY, city);
+
+		for (int i = TSEW_LAYOUT_ORIGINAL; i <= TSEW_LAYOUT_RANDOM; i++) {
+			this->SetWidgetLoweredState(i, i == TSEW_LAYOUT_ORIGINAL + town_layout);
+		}
+
+		this->SetDirty();
 	}
 
 	virtual void OnPaint()
@@ -700,10 +714,8 @@
 				break;
 
 			case TSEW_SIZE_SMALL: case TSEW_SIZE_MEDIUM: case TSEW_SIZE_LARGE: case TSEW_SIZE_RANDOM:
-				this->RaiseWidget(town_size + TSEW_SIZE_SMALL);
 				town_size = (TownSize)(widget - TSEW_SIZE_SMALL);
-				this->LowerWidget(town_size + TSEW_SIZE_SMALL);
-				this->SetDirty();
+				this->UpdateButtons();
 				break;
 
 			case TSEW_CITY:
@@ -714,10 +726,8 @@
 
 			case TSEW_LAYOUT_ORIGINAL: case TSEW_LAYOUT_BETTER: case TSEW_LAYOUT_GRID2:
 			case TSEW_LAYOUT_GRID3: case TSEW_LAYOUT_RANDOM:
-				this->RaiseWidget(town_layout + TSEW_LAYOUT_ORIGINAL);
 				town_layout = (TownLayout)(widget - TSEW_LAYOUT_ORIGINAL);
-				this->LowerWidget(town_layout + TSEW_LAYOUT_ORIGINAL);
-				this->SetDirty();
+				this->UpdateButtons();
 				break;
 		}
 	}
@@ -737,10 +747,7 @@
 	virtual void OnPlaceObjectAbort()
 	{
 		this->RaiseButtons();
-		this->LowerWidget(town_size + TSEW_SIZE_SMALL);
-		this->SetWidgetLoweredState(TSEW_CITY, city);
-		this->LowerWidget(town_layout + TSEW_LAYOUT_ORIGINAL);
-		this->SetDirty();
+		this->UpdateButtons();
 	}
 
 	static void PlaceProc_Town(TileIndex tile)