(svn r8436) -Fix
authortron
Sun, 28 Jan 2007 10:09:40 +0000
changeset 6111 32f6149dc192
parent 6110 c020b2be57ac
child 6112 77a567235d2f
(svn r8436) -Fix

-Feature: When linking the terraform toolbar to the build toolbars place them side by side instead of on top of each other
src/airport_gui.cpp
src/dock_gui.cpp
src/gui.h
src/rail_gui.cpp
src/road_gui.cpp
src/terraform_gui.cpp
--- a/src/airport_gui.cpp	Sun Jan 28 00:28:12 2007 +0000
+++ b/src/airport_gui.cpp	Sun Jan 28 10:09:40 2007 +0000
@@ -135,8 +135,8 @@
 	if (!IsValidPlayer(_current_player)) return;
 
 	DeleteWindowById(WC_BUILD_TOOLBAR, 0);
-	AllocateWindowDescFront(&_air_toolbar_desc, 0);
-	if (_patches.link_terraform_toolbar) ShowTerraformToolbar();
+	Window *w = AllocateWindowDescFront(&_air_toolbar_desc, 0);
+	if (_patches.link_terraform_toolbar) ShowTerraformToolbar(w);
 }
 
 static void BuildAirportPickerWndProc(Window *w, WindowEvent *e)
--- a/src/dock_gui.cpp	Sun Jan 28 00:28:12 2007 +0000
+++ b/src/dock_gui.cpp	Sun Jan 28 10:09:40 2007 +0000
@@ -219,8 +219,8 @@
 	if (!IsValidPlayer(_current_player)) return;
 
 	DeleteWindowById(WC_BUILD_TOOLBAR, 0);
-	AllocateWindowDesc(&_build_docks_toolbar_desc);
-	if (_patches.link_terraform_toolbar) ShowTerraformToolbar();
+	Window *w = AllocateWindowDesc(&_build_docks_toolbar_desc);
+	if (_patches.link_terraform_toolbar) ShowTerraformToolbar(w);
 }
 
 static void BuildDockStationWndProc(Window *w, WindowEvent *e)
--- a/src/gui.h	Sun Jan 28 00:28:12 2007 +0000
+++ b/src/gui.h	Sun Jan 28 10:09:40 2007 +0000
@@ -57,7 +57,7 @@
 void ShowBuildAirToolbar(void);
 
 /* terraform_gui.c */
-void ShowTerraformToolbar(void);
+void ShowTerraformToolbar(Window *link = NULL);
 
 /* tgp_gui.c */
 void ShowGenerateLandscape(void);
--- a/src/rail_gui.cpp	Sun Jan 28 00:28:12 2007 +0000
+++ b/src/rail_gui.cpp	Sun Jan 28 10:09:40 2007 +0000
@@ -624,7 +624,7 @@
 		_build_railroad_button_proc[button](w);
 		UpdateRemoveWidgetStatus(w, button + 4);
 	}
-	if (_patches.link_terraform_toolbar) ShowTerraformToolbar();
+	if (_patches.link_terraform_toolbar) ShowTerraformToolbar(w);
 }
 
 /* TODO: For custom stations, respect their allowed platforms/lengths bitmasks!
--- a/src/road_gui.cpp	Sun Jan 28 00:28:12 2007 +0000
+++ b/src/road_gui.cpp	Sun Jan 28 10:09:40 2007 +0000
@@ -329,8 +329,8 @@
 	if (!IsValidPlayer(_current_player)) return;
 
 	DeleteWindowById(WC_BUILD_TOOLBAR, 0);
-	AllocateWindowDesc(&_build_road_desc);
-	if (_patches.link_terraform_toolbar) ShowTerraformToolbar();
+	Window *w = AllocateWindowDesc(&_build_road_desc);
+	if (_patches.link_terraform_toolbar) ShowTerraformToolbar(w);
 }
 
 static const Widget _build_road_scen_widgets[] = {
--- a/src/terraform_gui.cpp	Sun Jan 28 00:28:12 2007 +0000
+++ b/src/terraform_gui.cpp	Sun Jan 28 10:09:40 2007 +0000
@@ -278,8 +278,15 @@
 	TerraformToolbWndProc
 };
 
-void ShowTerraformToolbar(void)
+void ShowTerraformToolbar(Window *link)
 {
 	if (!IsValidPlayer(_current_player)) return;
-	AllocateWindowDescFront(&_terraform_desc, 0);
+	Window *w = AllocateWindowDescFront(&_terraform_desc, 0);
+	if (w != NULL && link != NULL) {
+		/* Align the terraform toolbar under the main toolbar and put the linked
+		 * toolbar to left of it
+		 */
+		w->top = 22;
+		link->left = w->left - link->width;
+	}
 }