src/toolbar_gui.cpp
branchNewGRF_ports
changeset 10994 cd9968b6f96b
parent 10991 d8811e327d12
--- a/src/toolbar_gui.cpp	Tue Jun 17 10:32:49 2008 +0000
+++ b/src/toolbar_gui.cpp	Tue Jun 17 13:22:13 2008 +0000
@@ -58,6 +58,55 @@
 	TB_LOWER
 };
 
+enum ToolbarNormalWidgets {
+	TBN_PAUSE         = 0,
+	TBN_FASTFORWARD,
+	TBN_SETTINGS,
+	TBN_SAVEGAME,
+	TBN_SMALLMAP,
+	TBN_TOWNDIRECTORY,
+	TBN_SUBSIDIES,
+	TBN_STATIONS,
+	TBN_FINANCES,
+	TBN_PLAYERS,
+	TBN_GRAPHICS,
+	TBN_LEAGUE,
+	TBN_INDUSTRIES,
+	TBN_VEHICLESTART,      ///< trains, actually.  So following are trucks, boats and planes
+	TBN_TRAINS        = TBN_VEHICLESTART,
+	TBN_ROADVEHS,
+	TBN_SHIPS,
+	TBN_AIRCRAFTS,
+	TBN_ZOOMIN,
+	TBN_ZOOMOUT,
+	TBN_RAILS,
+	TBN_ROADS,
+	TBN_WATER,
+	TBN_AIR,
+	TBN_LANDSCAPE,
+	TBN_MUSICSOUND,
+	TBN_NEWSREPORT,
+	TBN_HELP,
+	TBN_SWITCHBAR,         ///< only available when toolbar has been split
+};
+
+enum ToolbarScenEditorWidgets {
+	TBSE_PAUSE        = 0,
+	TBSE_FASTFORWARD,
+	TBSE_SAVESCENARIO = 3,
+	TBSE_SPACERPANEL,
+	TBSE_DATEBACKWARD = 6,
+	TBSE_DATEFORWARD,
+	TBSE_ZOOMIN       = 9,
+	TBSE_ZOOMOUT,
+	TBSE_LANDGENERATE,
+	TBSE_TOWNGENERATE,
+	TBSE_INDUSTRYGENERATE,
+	TBSE_BUILDROAD,
+	TBSE_PLANTTREES,
+	TBSE_PLACESIGNS,
+};
+
 static ToolbarMode _toolbar_mode;
 
 static void SelectSignTool()
@@ -140,17 +189,17 @@
 	if (IsTransparencySet(TO_HOUSES))                SetBit(x, 12);
 	if (IsTransparencySet(TO_SIGNS))                 SetBit(x, 13);
 
-	PopupMainToolbMenu(w, 2, STR_02C4_GAME_OPTIONS, 14, 0, 0, x);
+	PopupMainToolbMenu(w, TBN_SETTINGS, STR_02C4_GAME_OPTIONS, 14, 0, 0, x);
 }
 
 static void MenuClickSettings(int index)
 {
 	switch (index) {
-		case 0: ShowGameOptions();      return;
-		case 1: ShowGameDifficulty();   return;
-		case 2: ShowPatchesSelection(); return;
-		case 3: ShowNewGRFSettings(!_networking, true, true, &_grfconfig);   return;
-		case 4: ShowTransparencyToolbar(); break;
+		case  0: ShowGameOptions();                              return;
+		case  1: ShowGameDifficulty();                           return;
+		case  2: ShowPatchesSelection();                         return;
+		case  3: ShowNewGRFSettings(!_networking, true, true, &_grfconfig);   return;
+		case  4: ShowTransparencyToolbar();                      break;
 
 		case  6: ToggleBit(_display_opt, DO_SHOW_TOWN_NAMES);    break;
 		case  7: ToggleBit(_display_opt, DO_SHOW_STATION_NAMES); break;
@@ -168,12 +217,12 @@
 
 static void ToolbarSaveClick(Window *w)
 {
-	PopupMainToolbMenu(w, 3, STR_015C_SAVE_GAME, 4);
+	PopupMainToolbMenu(w, TBN_SAVEGAME, STR_015C_SAVE_GAME, 4);
 }
 
 static void ToolbarScenSaveOrLoad(Window *w)
 {
-	PopupMainToolbMenu(w, 3, STR_0292_SAVE_SCENARIO, 6);
+	PopupMainToolbMenu(w, TBSE_SAVESCENARIO, STR_0292_SAVE_SCENARIO, 6);
 }
 
 static void MenuClickSaveLoad(int index)
@@ -200,7 +249,7 @@
 
 static void ToolbarMapClick(Window *w)
 {
-	PopupMainToolbMenu(w, 4, STR_02DE_MAP_OF_WORLD, 3);
+	PopupMainToolbMenu(w, TBN_SMALLMAP, STR_02DE_MAP_OF_WORLD, 3);
 }
 
 static void MenuClickMap(int index)
@@ -226,7 +275,7 @@
 
 static void ToolbarTownClick(Window *w)
 {
-	PopupMainToolbMenu(w, 5, STR_02BB_TOWN_DIRECTORY, 1);
+	PopupMainToolbMenu(w, TBN_TOWNDIRECTORY, STR_02BB_TOWN_DIRECTORY, 1);
 }
 
 static void MenuClickTown(int index)
@@ -238,7 +287,7 @@
 
 static void ToolbarSubsidiesClick(Window *w)
 {
-	PopupMainToolbMenu(w, 6, STR_02DD_SUBSIDIES, 1);
+	PopupMainToolbMenu(w, TBN_SUBSIDIES, STR_02DD_SUBSIDIES, 1);
 }
 
 static void MenuClickSubsidies(int index)
@@ -250,7 +299,7 @@
 
 static void ToolbarStationsClick(Window *w)
 {
-	PopupMainPlayerToolbMenu(w, 7, 0);
+	PopupMainPlayerToolbMenu(w, TBN_STATIONS, 0);
 }
 
 static void MenuClickStations(int index)
@@ -262,7 +311,7 @@
 
 static void ToolbarFinancesClick(Window *w)
 {
-	PopupMainPlayerToolbMenu(w, 8, 0);
+	PopupMainPlayerToolbMenu(w, TBN_FINANCES, 0);
 }
 
 static void MenuClickFinances(int index)
@@ -274,7 +323,7 @@
 
 static void ToolbarPlayersClick(Window *w)
 {
-	PopupMainPlayerToolbMenu(w, 9, 0);
+	PopupMainPlayerToolbMenu(w, TBN_PLAYERS, 0);
 }
 
 static void MenuClickCompany(int index)
@@ -291,7 +340,7 @@
 
 static void ToolbarGraphsClick(Window *w)
 {
-	PopupMainToolbMenu(w, 10, STR_0154_OPERATING_PROFIT_GRAPH, (_toolbar_mode == TB_NORMAL) ? 6 : 8);
+	PopupMainToolbMenu(w, TBN_GRAPHICS, STR_0154_OPERATING_PROFIT_GRAPH, (_toolbar_mode == TB_NORMAL) ? 6 : 8);
 }
 
 static void MenuClickGraphs(int index)
@@ -313,7 +362,7 @@
 
 static void ToolbarLeagueClick(Window *w)
 {
-	PopupMainToolbMenu(w, 11, STR_015A_COMPANY_LEAGUE_TABLE, 2);
+	PopupMainToolbMenu(w, TBN_LEAGUE, STR_015A_COMPANY_LEAGUE_TABLE, 2);
 }
 
 static void MenuClickLeague(int index)
@@ -329,7 +378,7 @@
 static void ToolbarIndustryClick(Window *w)
 {
 	/* Disable build-industry menu if we are a spectator */
-	PopupMainToolbMenu(w, 12, STR_INDUSTRY_DIR, 2, (_current_player == PLAYER_SPECTATOR) ? (1 << 1) : 0);
+	PopupMainToolbMenu(w, TBN_INDUSTRIES, STR_INDUSTRY_DIR, 2, (_current_player == PLAYER_SPECTATOR) ? 2 : 0);
 }
 
 static void MenuClickIndustry(int index)
@@ -350,7 +399,7 @@
 	FOR_ALL_VEHICLES(v) {
 		if (v->type == veh && v->IsPrimaryVehicle()) ClrBit(dis, v->owner);
 	}
-	PopupMainPlayerToolbMenu(w, 13 + veh, dis);
+	PopupMainPlayerToolbMenu(w, TBN_VEHICLESTART + veh, dis);
 }
 
 
@@ -405,7 +454,7 @@
 static void ToolbarZoomInClick(Window *w)
 {
 	if (DoZoomInOutWindow(ZOOM_IN, FindWindowById(WC_MAIN_WINDOW, 0))) {
-		w->HandleButtonClick(17);
+		w->HandleButtonClick(TBN_ZOOMIN);
 		SndPlayFx(SND_15_BEEP);
 	}
 }
@@ -415,7 +464,7 @@
 static void ToolbarZoomOutClick(Window *w)
 {
 	if (DoZoomInOutWindow(ZOOM_OUT, FindWindowById(WC_MAIN_WINDOW, 0))) {
-		w->HandleButtonClick(18);
+		w->HandleButtonClick(TBN_ZOOMOUT);
 		SndPlayFx(SND_15_BEEP);
 	}
 }
@@ -425,7 +474,7 @@
 static void ToolbarBuildRailClick(Window *w)
 {
 	const Player *p = GetPlayer(_local_player);
-	PopupMainToolbMenu(w, 19, STR_1015_RAILROAD_CONSTRUCTION, RAILTYPE_END, ~p->avail_railtypes, _last_built_railtype);
+	PopupMainToolbMenu(w, TBN_RAILS, STR_1015_RAILROAD_CONSTRUCTION, RAILTYPE_END, ~p->avail_railtypes, _last_built_railtype);
 }
 
 static void MenuClickBuildRail(int index)
@@ -440,7 +489,7 @@
 {
 	const Player *p = GetPlayer(_local_player);
 	/* The standard road button is *always* available */
-	PopupMainToolbMenu(w, 20, STR_180A_ROAD_CONSTRUCTION, 2, ~(p->avail_roadtypes | ROADTYPES_ROAD), _last_built_roadtype);
+	PopupMainToolbMenu(w, TBN_ROADS, STR_180A_ROAD_CONSTRUCTION, 2, ~(p->avail_roadtypes | ROADTYPES_ROAD), _last_built_roadtype);
 }
 
 static void MenuClickBuildRoad(int index)
@@ -453,7 +502,7 @@
 
 static void ToolbarBuildWaterClick(Window *w)
 {
-	PopupMainToolbMenu(w, 21, STR_9800_DOCK_CONSTRUCTION, 1);
+	PopupMainToolbMenu(w, TBN_WATER, STR_9800_DOCK_CONSTRUCTION, 1);
 }
 
 static void MenuClickBuildWater(int index)
@@ -465,7 +514,7 @@
 
 static void ToolbarBuildAirClick(Window *w)
 {
-	PopupMainToolbMenu(w, 22, STR_A01D_AIRPORT_CONSTRUCTION, 1);
+	PopupMainToolbMenu(w, TBN_AIR, STR_A01D_AIRPORT_CONSTRUCTION, 1);
 }
 
 static void MenuClickBuildAir(int index)
@@ -477,7 +526,7 @@
 
 static void ToolbarForestClick(Window *w)
 {
-	PopupMainToolbMenu(w, 23, STR_LANDSCAPING, 3);
+	PopupMainToolbMenu(w, TBN_LANDSCAPE, STR_LANDSCAPING, 3);
 }
 
 static void MenuClickForest(int index)
@@ -493,7 +542,7 @@
 
 static void ToolbarMusicClick(Window *w)
 {
-	PopupMainToolbMenu(w, 24, STR_01D3_SOUND_MUSIC, 1);
+	PopupMainToolbMenu(w, TBN_MUSICSOUND, STR_01D3_SOUND_MUSIC, 1);
 }
 
 static void MenuClickMusicWindow(int index)
@@ -505,7 +554,7 @@
 
 static void ToolbarNewspaperClick(Window *w)
 {
-	PopupMainToolbMenu(w, 25, STR_0200_LAST_MESSAGE_NEWS_REPORT, 3);
+	PopupMainToolbMenu(w, TBN_NEWSREPORT, STR_0200_LAST_MESSAGE_NEWS_REPORT, 3);
 }
 
 static void MenuClickNewspaper(int index)
@@ -521,7 +570,7 @@
 
 static void ToolbarHelpClick(Window *w)
 {
-	PopupMainToolbMenu(w, 26, STR_02D5_LAND_BLOCK_INFO, 6);
+	PopupMainToolbMenu(w, TBN_HELP, STR_02D5_LAND_BLOCK_INFO, 6);
 }
 
 static void MenuClickSmallScreenshot()
@@ -556,7 +605,7 @@
 	}
 
 	SplitToolbar(w);
-	w->HandleButtonClick(27);
+	w->HandleButtonClick(TBN_SWITCHBAR);
 	SetWindowDirty(w);
 	SndPlayFx(SND_15_BEEP);
 }
@@ -567,7 +616,7 @@
 {
 	/* don't allow too fast scrolling */
 	if ((w->flags4 & WF_TIMEOUT_MASK) <= 2 << WF_TIMEOUT_SHL) {
-		w->HandleButtonClick(6);
+		w->HandleButtonClick(TBSE_DATEBACKWARD);
 		w->SetDirty();
 
 		_settings_newgame.game_creation.starting_year = Clamp(_settings_newgame.game_creation.starting_year - 1, MIN_YEAR, MAX_YEAR);
@@ -580,7 +629,7 @@
 {
 	/* don't allow too fast scrolling */
 	if ((w->flags4 & WF_TIMEOUT_MASK) <= 2 << WF_TIMEOUT_SHL) {
-		w->HandleButtonClick(7);
+		w->HandleButtonClick(TBSE_DATEFORWARD);
 		w->SetDirty();
 
 		_settings_newgame.game_creation.starting_year = Clamp(_settings_newgame.game_creation.starting_year + 1, MIN_YEAR, MAX_YEAR);
@@ -598,7 +647,7 @@
 static void ToolbarScenZoomIn(Window *w)
 {
 	if (DoZoomInOutWindow(ZOOM_IN, FindWindowById(WC_MAIN_WINDOW, 0))) {
-		w->HandleButtonClick(9);
+		w->HandleButtonClick(TBSE_ZOOMIN);
 		SndPlayFx(SND_15_BEEP);
 	}
 }
@@ -606,14 +655,14 @@
 static void ToolbarScenZoomOut(Window *w)
 {
 	if (DoZoomInOutWindow(ZOOM_OUT, FindWindowById(WC_MAIN_WINDOW, 0))) {
-		w->HandleButtonClick(10);
+		w->HandleButtonClick(TBSE_ZOOMOUT);
 		SndPlayFx(SND_15_BEEP);
 	}
 }
 
 static void ToolbarScenGenLand(Window *w)
 {
-	w->HandleButtonClick(11);
+	w->HandleButtonClick(TBSE_LANDGENERATE);
 	SndPlayFx(SND_15_BEEP);
 
 	ShowEditorTerraformToolbar();
@@ -622,35 +671,35 @@
 
 static void ToolbarScenGenTown(Window *w)
 {
-	w->HandleButtonClick(12);
+	w->HandleButtonClick(TBSE_TOWNGENERATE);
 	SndPlayFx(SND_15_BEEP);
 	ShowBuildTownWindow();
 }
 
 static void ToolbarScenGenIndustry(Window *w)
 {
-	w->HandleButtonClick(13);
+	w->HandleButtonClick(TBSE_INDUSTRYGENERATE);
 	SndPlayFx(SND_15_BEEP);
 	ShowBuildIndustryWindow();
 }
 
 static void ToolbarScenBuildRoad(Window *w)
 {
-	w->HandleButtonClick(14);
+	w->HandleButtonClick(TBSE_BUILDROAD);
 	SndPlayFx(SND_15_BEEP);
 	ShowBuildRoadScenToolbar();
 }
 
 static void ToolbarScenPlantTrees(Window *w)
 {
-	w->HandleButtonClick(15);
+	w->HandleButtonClick(TBSE_PLANTTREES);
 	SndPlayFx(SND_15_BEEP);
 	ShowBuildTreesToolbar();
 }
 
 static void ToolbarScenPlaceSign(Window *w)
 {
-	w->HandleButtonClick(16);
+	w->HandleButtonClick(TBSE_PLACESIGNS);
 	SndPlayFx(SND_15_BEEP);
 	SelectSignTool();
 }
@@ -666,16 +715,17 @@
 	/* There are 27 buttons plus some spacings if the space allows it */
 	uint button_width;
 	uint spacing;
-	if (w->width >= 27 * 22) {
+	if (w->width >= (int)w->widget_count * 22) {
 		button_width = 22;
-		spacing = w->width - (27 * button_width);
+		spacing = w->width - (w->widget_count * button_width);
 	} else {
-		button_width = w->width / 27;
+		button_width = w->width / w->widget_count;
 		spacing = 0;
 	}
+
 	uint extra_spacing_at[] = { 4, 8, 13, 17, 19, 24, 0 };
-
-	for (uint i = 0, x = 0, j = 0; i < 27; i++) {
+	uint i = 0;
+	for (uint x = 0, j = 0; i < w->widget_count; i++) {
 		if (extra_spacing_at[j] == i) {
 			j++;
 			uint add = spacing / (lengthof(extra_spacing_at) - j);
@@ -685,11 +735,11 @@
 
 		w->widget[i].type = WWT_IMGBTN;
 		w->widget[i].left = x;
-		x += (spacing != 0) ? button_width : (w->width - x) / (27 - i);
+		x += (spacing != 0) ? button_width : (w->width - x) / (w->widget_count - i);
 		w->widget[i].right = x - 1;
 	}
 
-	w->widget[27].type = WWT_EMPTY;
+	w->widget[i].type = WWT_EMPTY; // i now points to the last item
 	_toolbar_mode = TB_NORMAL;
 }
 
@@ -730,7 +780,7 @@
 	assert(max_icons >= 14 && max_icons <= 19);
 
 	/* first hide all icons */
-	for (uint i = 0; i < 27; i++) {
+	for (uint i = 0; i < w->widget_count; i++) {
 		w->widget[i].type = WWT_EMPTY;
 	}
 
@@ -782,8 +832,8 @@
 struct MainToolbarWindow : Window {
 	MainToolbarWindow(const WindowDesc *desc) : Window(desc)
 	{
-		this->SetWidgetDisabledState(0, _networking && !_network_server); // if not server, disable pause button
-		this->SetWidgetDisabledState(1, _networking); // if networking, disable fast-forward button
+		this->SetWidgetDisabledState(TBN_PAUSE, _networking && !_network_server); // if not server, disable pause button
+		this->SetWidgetDisabledState(TBN_FASTFORWARD, _networking); // if networking, disable fast-forward button
 
 		CLRBITS(this->flags4, WF_WHITE_BORDER_MASK);
 
@@ -801,12 +851,12 @@
 		/* If spectator, disable all construction buttons
 		* ie : Build road, rail, ships, airports and landscaping
 		* Since enabled state is the default, just disable when needed */
-		this->SetWidgetsDisabledState(_current_player == PLAYER_SPECTATOR, 19, 20, 21, 22, 23, WIDGET_LIST_END);
+		this->SetWidgetsDisabledState(_current_player == PLAYER_SPECTATOR, TBN_RAILS, TBN_ROADS, TBN_WATER, TBN_AIR, TBN_LANDSCAPE, WIDGET_LIST_END);
 		/* disable company list drop downs, if there are no companies */
-		this->SetWidgetsDisabledState(ActivePlayerCount() == 0, 7, 8, 13, 14, 15, 16, WIDGET_LIST_END);
+		this->SetWidgetsDisabledState(ActivePlayerCount() == TBN_PAUSE, TBN_STATIONS, TBN_FINANCES, TBN_TRAINS, TBN_ROADVEHS, TBN_SHIPS, TBN_AIRCRAFTS, WIDGET_LIST_END);
 
-		this->SetWidgetDisabledState(19, !CanBuildVehicleInfrastructure(VEH_TRAIN));
-		this->SetWidgetDisabledState(22, !CanBuildVehicleInfrastructure(VEH_AIRCRAFT));
+		this->SetWidgetDisabledState(TBN_RAILS, !CanBuildVehicleInfrastructure(VEH_TRAIN));
+		this->SetWidgetDisabledState(TBN_AIR, !CanBuildVehicleInfrastructure(VEH_AIRCRAFT));
 
 		this->DrawWidgets();
 	}
@@ -866,22 +916,16 @@
 		_place_proc(tile);
 	}
 
-	virtual void OnPlaceObjectAbort()
-	{
-		this->RaiseWidget(25);
-		this->SetDirty();
-	}
-
 	virtual void OnTick()
 	{
-		if (this->IsWidgetLowered(0) != !!_pause_game) {
-			this->ToggleWidgetLoweredState(0);
-			this->InvalidateWidget(0);
+		if (this->IsWidgetLowered(TBN_PAUSE) != !!_pause_game) {
+			this->ToggleWidgetLoweredState(TBN_PAUSE);
+			this->InvalidateWidget(TBN_PAUSE);
 		}
 
-		if (this->IsWidgetLowered(1) != !!_fast_forward) {
-			this->ToggleWidgetLoweredState(1);
-			this->InvalidateWidget(1);
+		if (this->IsWidgetLowered(TBN_FASTFORWARD) != !!_fast_forward) {
+			this->ToggleWidgetLoweredState(TBN_FASTFORWARD);
+			this->InvalidateWidget(TBN_FASTFORWARD);
 		}
 	}
 
@@ -896,7 +940,7 @@
 
 	virtual void OnTimeout()
 	{
-		for (uint i = 2; i < this->widget_count; i++) {
+		for (uint i = TBN_SETTINGS; i < this->widget_count; i++) {
 			if (this->IsWidgetLowered(i)) {
 				this->RaiseWidget(i);
 				this->InvalidateWidget(i);
@@ -906,7 +950,7 @@
 
 	virtual void OnInvalidateData(int data)
 	{
-		if (FindWindowById(WC_MAIN_WINDOW, 0) != NULL) HandleZoomMessage(this, FindWindowById(WC_MAIN_WINDOW, 0)->viewport, 17, 18);
+		if (FindWindowById(WC_MAIN_WINDOW, 0) != NULL) HandleZoomMessage(this, FindWindowById(WC_MAIN_WINDOW, 0)->viewport, TBN_ZOOMIN, TBN_ZOOMOUT);
 	}
 };
 
@@ -989,6 +1033,7 @@
 };
 
 struct ScenarioEditorToolbarWindow : Window {
+public:
 	ScenarioEditorToolbarWindow(const WindowDesc *desc) : Window(desc)
 	{
 		CLRBITS(this->flags4, WF_WHITE_BORDER_MASK);
@@ -1000,8 +1045,8 @@
 
 	virtual void OnPaint()
 	{
-		this->SetWidgetDisabledState(6, _settings_newgame.game_creation.starting_year <= MIN_YEAR);
-		this->SetWidgetDisabledState(7, _settings_newgame.game_creation.starting_year >= MAX_YEAR);
+		this->SetWidgetDisabledState(TBSE_DATEBACKWARD, _settings_newgame.game_creation.starting_year <= MIN_YEAR);
+		this->SetWidgetDisabledState(TBSE_DATEFORWARD, _settings_newgame.game_creation.starting_year >= MAX_YEAR);
 
 		/* Draw brown-red toolbar bg. */
 		GfxFillRect(0, 0, this->width - 1, this->height - 1, 0xB2);
@@ -1010,12 +1055,13 @@
 		this->DrawWidgets();
 
 		SetDParam(0, ConvertYMDToDate(_settings_newgame.game_creation.starting_year, 0, 1));
-		DrawStringCenteredTruncated(this->widget[6].right, this->widget[7].left, 6, STR_00AF, TC_FROMSTRING);
+		DrawStringCenteredTruncated(this->widget[TBSE_DATEBACKWARD].right, this->widget[TBSE_DATEFORWARD].left, 6, STR_00AF, TC_FROMSTRING);
 
 		/* We hide this panel when the toolbar space gets too small */
-		if (this->widget[4].left != this->widget[4].right) {
-			DrawStringCenteredTruncated(this->widget[4].left + 1, this->widget[4].right - 1,  1, STR_0221_OPENTTD, TC_FROMSTRING);
-			DrawStringCenteredTruncated(this->widget[4].left + 1, this->widget[4].right - 1, 11, STR_0222_SCENARIO_EDITOR, TC_FROMSTRING);
+		const Widget *panel = &this->widget[TBSE_SPACERPANEL];
+		if (panel->left != panel->right) {
+			DrawStringCenteredTruncated(panel->left + 1, panel->right - 1,  1, STR_0221_OPENTTD, TC_FROMSTRING);
+			DrawStringCenteredTruncated(panel->left + 1, panel->right - 1, 11, STR_0222_SCENARIO_EDITOR, TC_FROMSTRING);
 		}
 	}
 
@@ -1046,13 +1092,13 @@
 			case WKC_NUM_PLUS:
 			case WKC_EQUALS:
 			case WKC_SHIFT | WKC_EQUALS:
-			case WKC_SHIFT | WKC_F5: ToolbarZoomInClick(this); break;
+			case WKC_SHIFT | WKC_F5: ToolbarScenZoomIn(this); break;
 
 			/* those following are all fall through */
 			case WKC_NUM_MINUS:
 			case WKC_MINUS:
 			case WKC_SHIFT | WKC_MINUS:
-			case WKC_SHIFT | WKC_F6: ToolbarZoomOutClick(this); break;
+			case WKC_SHIFT | WKC_F6: ToolbarScenZoomOut(this); break;
 
 			case 'L': ShowEditorTerraformToolbar(); break;
 			case 'M': ShowSmallMap(); break;
@@ -1067,12 +1113,6 @@
 		_place_proc(tile);
 	}
 
-	virtual void OnPlaceObjectAbort()
-	{
-		this->RaiseWidget(25);
-		this->SetDirty();
-	}
-
 	virtual void OnResize(Point new_size, Point delta)
 	{
 		/* There are 15 buttons plus some spacings if the space allows it.
@@ -1093,8 +1133,7 @@
 		}
 		uint extra_spacing_at[] = { 3, 4, 7, 8, 10, 16, 0 };
 
-		/* Yes, it defines about 27 widgets for this toolbar */
-		for (uint i = 0, x = 0, j = 0, b = 0; i < 27; i++) {
+		for (uint i = 0, x = 0, j = 0, b = 0; i < this->widget_count; i++) {
 			switch (i) {
 				case 4:
 					this->widget[i].left = x;
@@ -1142,20 +1181,20 @@
 
 	virtual void OnTick()
 	{
-		if (this->IsWidgetLowered(0) != !!_pause_game) {
-			this->ToggleWidgetLoweredState(0);
+		if (this->IsWidgetLowered(TBSE_PAUSE) != !!_pause_game) {
+			this->ToggleWidgetLoweredState(TBSE_PAUSE);
 			this->SetDirty();
 		}
 
-		if (this->IsWidgetLowered(1) != !!_fast_forward) {
-			this->ToggleWidgetLoweredState(1);
+		if (this->IsWidgetLowered(TBSE_FASTFORWARD) != !!_fast_forward) {
+			this->ToggleWidgetLoweredState(TBSE_FASTFORWARD);
 			this->SetDirty();
 		}
 	}
 
 	virtual void OnInvalidateData(int data)
 	{
-		if (FindWindowById(WC_MAIN_WINDOW, 0) != NULL) HandleZoomMessage(this, FindWindowById(WC_MAIN_WINDOW, 0)->viewport, 17, 18);
+		if (FindWindowById(WC_MAIN_WINDOW, 0) != NULL) HandleZoomMessage(this, FindWindowById(WC_MAIN_WINDOW, 0)->viewport, TBSE_ZOOMIN, TBSE_ZOOMOUT);
 	}
 };
 
@@ -1409,7 +1448,7 @@
 	{
 		this->flags4 &= ~WF_WHITE_BORDER_MASK;
 		this->sel_index = (_local_player != PLAYER_SPECTATOR) ? _local_player : GetPlayerIndexFromMenu(0);
-		if (_networking && main_button == 9) {
+		if (_networking && main_button == TBN_PLAYERS) {
 			if (_local_player != PLAYER_SPECTATOR) {
 				this->sel_index++;
 			} else {
@@ -1433,7 +1472,7 @@
 		byte num = ActivePlayerCount();
 
 		/* Increase one to fit in PlayerList in the menu when in network */
-		if (_networking && this->main_button == 9) num++;
+		if (_networking && this->main_button == TBN_PLAYERS) num++;
 
 		if (this->item_count != num) {
 			this->item_count = num;
@@ -1457,7 +1496,7 @@
 		int gray = this->gray_items;
 
 		/* 9 = playerlist */
-		if (_networking && this->main_button == 9) {
+		if (_networking && this->main_button == TBN_PLAYERS) {
 			if (sel == 0) {
 				GfxFillRect(x, y, x + 238, y + 9, 0);
 			}
@@ -1496,7 +1535,7 @@
 			this->UpdatePlayerMenuHeight();
 			/* We have a new entry at the top of the list of menu 9 when networking
 				* so keep that in count */
-			if (_networking && this->main_button == 9) {
+			if (_networking && this->main_button == TBN_PLAYERS) {
 				if (index > 0) index = GetPlayerIndexFromMenu(index - 1) + 1;
 			} else {
 				index = GetPlayerIndexFromMenu(index);
@@ -1511,7 +1550,7 @@
 
 			/* We have a new entry at the top of the list of menu 9 when networking
 				* so keep that in count */
-			if (_networking && this->main_button == 9) {
+			if (_networking && this->main_button == TBN_PLAYERS) {
 				if (index > 0) index = GetPlayerIndexFromMenu(index - 1) + 1;
 			} else {
 				index = GetPlayerIndexFromMenu(index);