(svn r14302) -Codechange: simplify and make the vehicle list and group windows behave the same w.r.t. getting wider (by default) for trains than the other vehicles.
authorrubidium
Fri, 12 Sep 2008 21:58:36 +0000
changeset 10118 6b418b016a89
parent 10117 dd9f49319539
child 10119 00bd6a85b068
(svn r14302) -Codechange: simplify and make the vehicle list and group windows behave the same w.r.t. getting wider (by default) for trains than the other vehicles.
src/group_gui.cpp
src/vehicle_gui.cpp
--- a/src/group_gui.cpp	Fri Sep 12 21:20:12 2008 +0000
+++ b/src/group_gui.cpp	Fri Sep 12 21:58:36 2008 +0000
@@ -256,6 +256,7 @@
 		}
 
 		this->FindWindowPlacementAndResize(desc);
+		if (this->vehicle_type == VEH_TRAIN) ResizeWindow(this, 65, 0);
 	}
 
 	~VehicleGroupWindow()
@@ -723,9 +724,9 @@
 };
 
 
-static const WindowDesc _group_desc = {
-	WDP_AUTO, WDP_AUTO, 460, 194, 526, 246,
-	WC_TRAINS_LIST, WC_NONE,
+static WindowDesc _group_desc = {
+	WDP_AUTO, WDP_AUTO, 460, 194, 460, 246,
+	WC_INVALID, WC_NONE,
 	WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_STICKY_BUTTON | WDF_RESIZABLE,
 	_group_widgets,
 };
@@ -734,18 +735,7 @@
 {
 	if (!IsValidPlayerID(player)) return;
 
-	WindowClass wc;
-
-	switch (vehicle_type) {
-		default: NOT_REACHED();
-		case VEH_TRAIN:    wc = WC_TRAINS_LIST;   break;
-		case VEH_ROAD:     wc = WC_ROADVEH_LIST;  break;
-		case VEH_SHIP:     wc = WC_SHIPS_LIST;    break;
-		case VEH_AIRCRAFT: wc = WC_AIRCRAFT_LIST; break;
-	}
-
+	_group_desc.cls = GetWindowClassForVehicleType(vehicle_type);
 	WindowNumber num = (vehicle_type << 11) | VLW_GROUP_LIST | player;
-	DeleteWindowById(wc, num);
-	Window *w = new VehicleGroupWindow(&_group_desc, num);
-	w->window_class = wc;
+	AllocateWindowDescFront<VehicleGroupWindow>(&_group_desc, num);
 }
--- a/src/vehicle_gui.cpp	Fri Sep 12 21:20:12 2008 +0000
+++ b/src/vehicle_gui.cpp	Fri Sep 12 21:58:36 2008 +0000
@@ -861,6 +861,7 @@
 		this->vehicles.NeedResort();
 
 		this->FindWindowPlacementAndResize(desc);
+		if (this->vehicle_type == VEH_TRAIN) ResizeWindow(this, 65, 0);
 	}
 
 	~VehicleListWindow()
@@ -1100,61 +1101,20 @@
 	}
 };
 
-static const WindowDesc _player_vehicle_list_train_desc = {
-	WDP_AUTO, WDP_AUTO, 260, 194, 325, 246,
-	WC_TRAINS_LIST, WC_NONE,
-	WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_STICKY_BUTTON | WDF_RESIZABLE,
-	_vehicle_list_widgets,
-};
-
-static const WindowDesc _player_vehicle_list_road_veh_desc = {
+static WindowDesc _vehicle_list_desc = {
 	WDP_AUTO, WDP_AUTO, 260, 194, 260, 246,
-	WC_ROADVEH_LIST, WC_NONE,
-	WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_STICKY_BUTTON | WDF_RESIZABLE,
-	_vehicle_list_widgets,
-};
-
-static const WindowDesc _player_vehicle_list_ship_desc = {
-	WDP_AUTO, WDP_AUTO, 260, 194, 260, 246,
-	WC_SHIPS_LIST, WC_NONE,
-	WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_STICKY_BUTTON | WDF_RESIZABLE,
-	_vehicle_list_widgets,
-};
-
-static const WindowDesc _player_vehicle_list_aircraft_desc = {
-	WDP_AUTO, WDP_AUTO, 260, 194, 260, 246,
-	WC_AIRCRAFT_LIST, WC_NONE,
+	WC_INVALID, WC_NONE,
 	WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_STICKY_BUTTON | WDF_RESIZABLE,
 	_vehicle_list_widgets,
 };
 
 static void ShowVehicleListWindowLocal(PlayerID player, uint16 VLW_flag, VehicleType vehicle_type, uint16 unique_number)
 {
-	VehicleListWindow *w;
-	WindowNumber num;
-
 	if (!IsValidPlayerID(player)) return;
 
-	num = (unique_number << 16) | (vehicle_type << 11) | VLW_flag | player;
-
-	/* The vehicle list windows have been unified. Just some strings need
-	 * to be changed which happens in the WE_CREATE event and resizing
-	 * some of the windows to the correct size */
-	switch (vehicle_type) {
-		default: NOT_REACHED();
-		case VEH_TRAIN:
-			w = AllocateWindowDescFront<VehicleListWindow>(&_player_vehicle_list_train_desc, num);
-			break;
-		case VEH_ROAD:
-			w = AllocateWindowDescFront<VehicleListWindow>(&_player_vehicle_list_road_veh_desc, num);
-			break;
-		case VEH_SHIP:
-			w = AllocateWindowDescFront<VehicleListWindow>(&_player_vehicle_list_ship_desc, num);
-			break;
-		case VEH_AIRCRAFT:
-			w = AllocateWindowDescFront<VehicleListWindow>(&_player_vehicle_list_aircraft_desc, num);
-			break;
-	}
+	_vehicle_list_desc.cls = GetWindowClassForVehicleType(vehicle_type);
+	WindowNumber num = (unique_number << 16) | (vehicle_type << 11) | VLW_flag | player;
+	AllocateWindowDescFront<VehicleListWindow>(&_vehicle_list_desc, num);
 }
 
 void ShowVehicleListWindow(PlayerID player, VehicleType vehicle_type)