(svn r7622) -Codechange: Convert some more windows to ShowQuery. This includes the depot
authorDarkvater
Fri, 29 Dec 2006 17:56:34 +0000
changeset 5670 c6dcca763ebb
parent 5669 ea25407ffa55
child 5671 4c249f1e0098
(svn r7622) -Codechange: Convert some more windows to ShowQuery. This includes the depot
sell-all popup, quit/abandon game. The language files committed in r7619 go with this.
depot_gui.c
intro_gui.c
lang/english.txt
--- a/depot_gui.c	Fri Dec 29 17:54:47 2006 +0000
+++ b/depot_gui.c	Fri Dec 29 17:56:34 2006 +0000
@@ -142,89 +142,12 @@
 	}
 }
 
-static void DepotSellAllWndProc(Window *w, WindowEvent *e)
+static void DepotSellAllConfirmationCallback(Window *w, bool confirmed)
 {
-	TileIndex tile = w->window_number;
-	byte vehicle_type = WP(w, depot_d).type;
-
-	switch (e->event) {
-		case WE_PAINT:
-			if (vehicle_type == VEH_Aircraft) {
-				SetDParam(0, GetStationIndex(tile)); // Airport name
-			} else {
-				Depot *depot = GetDepotByTile(tile);
-				assert(depot != NULL);
-
-				SetDParam(0, depot->town_index);
-			}
-			DrawWindowWidgets(w);
-
-			DrawStringCentered(150, 25, STR_DEPOT_SELL_ALL_VEHICLE_CONFIRM, 0);
-			DrawStringCentered(150, 38, STR_ARE_YOU_SURE, 0);
-			break;
-
-		case WE_CLICK:
-			switch (e->we.click.widget) {
-				case 4:
-					DoCommandP(tile, vehicle_type, 0, NULL, CMD_DEPOT_SELL_ALL_VEHICLES);
-					/* Fallthrough */
-				case 3:
-					DeleteWindow(w);
-					break;
-			}
-			break;
-	}
-}
-
-static const Widget _depot_sell_all_widgets[] = {
-	{   WWT_CLOSEBOX,   RESIZE_NONE,    14,     0,    10,     0,    13, STR_00C5,        STR_018B_CLOSE_WINDOW},
-	{    WWT_CAPTION,   RESIZE_NONE,    14,    11,   299,     0,    13, 0x0,             STR_018C_WINDOW_TITLE_DRAG_THIS},
-	{      WWT_PANEL,   RESIZE_NONE,    14,     0,   299,    14,    71, 0x0,             STR_NULL},
-	{ WWT_PUSHTXTBTN,   RESIZE_NONE,    14,    85,   144,    52,    63, STR_012E_CANCEL, STR_NULL},
-	{ WWT_PUSHTXTBTN,   RESIZE_NONE,    14,   155,   214,    52,    63, STR_SELL,        STR_NULL},
-	{   WIDGETS_END},
-};
-
-static const WindowDesc _depot_sell_all_desc = {
-	WDP_CENTER, WDP_CENTER, 300, 72,
-	WC_DEPOT_SELL_ALL, WC_VEHICLE_DEPOT,
-	WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET,
-	_depot_sell_all_widgets,
-	DepotSellAllWndProc
-};
-
-static void ShowDepotSellAllWindow(TileIndex tile, byte type)
-{
-	Window *w = AllocateWindowDescFront(&_depot_sell_all_desc, tile);
-
-	if (w != NULL) {
-		w->caption_color = GetTileOwner(tile);
-		WP(w, depot_d).type = type;
-		switch (type) {
-			case VEH_Train:
-				w->widget[1].data     = STR_8800_TRAIN_DEPOT;
-				w->widget[3].tooltips = STR_DEPOT_SELL_ALL_CANCEL_TRAIN_TIP;
-				w->widget[4].tooltips = STR_DEPOT_SELL_ALL_TRAIN_TIP;
-				break;
-
-			case VEH_Road:
-				w->widget[1].data     = STR_9003_ROAD_VEHICLE_DEPOT;
-				w->widget[3].tooltips = STR_DEPOT_SELL_ALL_CANCEL_ROADVEH_TIP;
-				w->widget[4].tooltips = STR_DEPOT_SELL_ALL_ROADVEH_TIP;
-				break;
-
-			case VEH_Ship:
-				w->widget[1].data     = STR_9803_SHIP_DEPOT;
-				w->widget[3].tooltips = STR_DEPOT_SELL_ALL_CANCEL_SHIP_TIP;
-				w->widget[4].tooltips = STR_DEPOT_SELL_ALL_SHIP_TIP;
-				break;
-
-			case VEH_Aircraft:
-				w->widget[1].data     = STR_A002_AIRCRAFT_HANGAR;
-				w->widget[3].tooltips = STR_DEPOT_SELL_ALL_CANCEL_AIRCRAFT_TIP;
-				w->widget[4].tooltips = STR_DEPOT_SELL_ALL_AIRCRAFT_TIP;
-				break;
-		}
+	if (confirmed) {
+		TileIndex tile = w->window_number;
+		byte vehtype = WP(w, depot_d).type;
+		DoCommandP(tile, vehtype, 0, NULL, CMD_DEPOT_SELL_ALL_VEHICLES);
 	}
 }
 
@@ -849,7 +772,22 @@
 				case DEPOT_WIDGET_SELL_ALL:
 					/* Only open the confimation window if there are anything to sell */
 					if (WP(w, depot_d).engine_count != 0 || WP(w, depot_d).wagon_count != 0) {
-						ShowDepotSellAllWindow(w->window_number, WP(w, depot_d).type);
+						static const StringID confirm_captions[] = {
+							STR_8800_TRAIN_DEPOT,
+							STR_9003_ROAD_VEHICLE_DEPOT,
+							STR_9803_SHIP_DEPOT,
+							STR_A002_AIRCRAFT_HANGAR
+						};
+						TileIndex tile = w->window_number;
+						byte vehtype = WP(w, depot_d).type - VEH_Train;
+
+						SetDParam(0, (vehtype == VEH_Aircraft) ? GetStationIndex(tile) : GetDepotByTile(tile)->town_index);
+						ShowQuery(
+							confirm_captions[vehtype],
+							STR_DEPOT_SELL_CONFIRMATION_TEXT,
+							w,
+							DepotSellAllConfirmationCallback
+						);
 					}
 					break;
 
--- a/intro_gui.c	Fri Dec 29 17:54:47 2006 +0000
+++ b/intro_gui.c	Fri Dec 29 17:56:34 2006 +0000
@@ -106,20 +106,13 @@
 	AllocateWindowDesc(&_select_game_desc);
 }
 
-static const Widget _ask_abandon_game_widgets[] = {
-{ WWT_CLOSEBOX, RESIZE_NONE,  4,   0,  10,   0,  13, STR_00C5,      STR_018B_CLOSE_WINDOW},
-{  WWT_CAPTION, RESIZE_NONE,  4,  11, 179,   0,  13, STR_00C7_QUIT, STR_NULL},
-{    WWT_PANEL, RESIZE_NONE,  4,   0, 179,  14,  91, 0x0,           STR_NULL},
-{  WWT_TEXTBTN, RESIZE_NONE, 12,  25,  84,  72,  83, STR_00C9_NO,   STR_NULL},
-{  WWT_TEXTBTN, RESIZE_NONE, 12,  95, 154,  72,  83, STR_00C8_YES,  STR_NULL},
-{  WIDGETS_END },
-};
+static void AskExitGameCallback(Window *w, bool confirmed)
+{
+	if (confirmed) _exit_game = true;
+}
 
-static void AskAbandonGameWndProc(Window *w, WindowEvent *e)
+void AskExitGame(void)
 {
-	switch (e->event) {
-	case WE_PAINT:
-		DrawWindowWidgets(w);
 #if defined(_WIN32)
 		SetDParam(0, STR_0133_WINDOWS);
 #elif defined(__APPLE__)
@@ -135,86 +128,26 @@
 #else
 		SetDParam(0, STR_0134_UNIX);
 #endif
-		DrawStringMultiCenter(90, 38, STR_00CA_ARE_YOU_SURE_YOU_WANT_TO, 178);
-		return;
-
-	case WE_CLICK:
-		switch (e->we.click.widget) {
-			case 3: DeleteWindow(w);   break;
-			case 4: _exit_game = true; break;
-		}
-		break;
-
-	case WE_KEYPRESS: /* Exit game on pressing 'Enter' */
-		switch (e->we.keypress.keycode) {
-			case WKC_RETURN:
-			case WKC_NUM_ENTER:
-				_exit_game = true;
-				break;
-		}
-		break;
-	}
-}
-
-static const WindowDesc _ask_abandon_game_desc = {
-	WDP_CENTER, WDP_CENTER, 180, 92,
-	WC_ASK_ABANDON_GAME,0,
-	WDF_STD_TOOLTIPS | WDF_DEF_WIDGET | WDF_STD_BTN | WDF_UNCLICK_BUTTONS,
-	_ask_abandon_game_widgets,
-	AskAbandonGameWndProc
-};
-
-void AskExitGame(void)
-{
-	AllocateWindowDescFront(&_ask_abandon_game_desc, 0);
+	ShowQuery(
+		STR_00C7_QUIT,
+		STR_00CA_ARE_YOU_SURE_YOU_WANT_TO,
+		NULL,
+		AskExitGameCallback
+	);
 }
 
 
-static const Widget _ask_quit_game_widgets[] = {
-{ WWT_CLOSEBOX, RESIZE_NONE,  4,   0,  10,   0,  13, STR_00C5,           STR_018B_CLOSE_WINDOW},
-{  WWT_CAPTION, RESIZE_NONE,  4,  11, 179,   0,  13, STR_0161_QUIT_GAME, STR_NULL},
-{    WWT_PANEL, RESIZE_NONE,  4,   0, 179,  14,  91, 0x0,                STR_NULL},
-{  WWT_TEXTBTN, RESIZE_NONE, 12,  25,  84,  72,  83, STR_00C9_NO,        STR_NULL},
-{  WWT_TEXTBTN, RESIZE_NONE, 12,  95, 154,  72,  83, STR_00C8_YES,       STR_NULL},
-{  WIDGETS_END },
-};
-
-static void AskQuitGameWndProc(Window *w, WindowEvent *e)
+static void AskExitToGameMenuCallback(Window *w, bool confirmed)
 {
-	switch (e->event) {
-		case WE_PAINT:
-			DrawWindowWidgets(w);
-			DrawStringMultiCenter(
-				90, 38,
-				_game_mode != GM_EDITOR ?
-					STR_0160_ARE_YOU_SURE_YOU_WANT_TO : STR_029B_ARE_YOU_SURE_YOU_WANT_TO,
-				178
-			);
-			break;
-
-		case WE_CLICK:
-			switch (e->we.click.widget) {
-				case 3: DeleteWindow(w);        break;
-				case 4: _switch_mode = SM_MENU; break;
-			}
-			break;
-
-		case WE_KEYPRESS: /* Return to main menu on pressing 'Enter' */
-			if (e->we.keypress.keycode == WKC_RETURN) _switch_mode = SM_MENU;
-			break;
-	}
+	if (confirmed) _switch_mode = SM_MENU;
 }
 
-static const WindowDesc _ask_quit_game_desc = {
-	WDP_CENTER, WDP_CENTER, 180, 92,
-	WC_QUIT_GAME,0,
-	WDF_STD_TOOLTIPS | WDF_DEF_WIDGET | WDF_STD_BTN | WDF_UNCLICK_BUTTONS,
-	_ask_quit_game_widgets,
-	AskQuitGameWndProc
-};
-
-
 void AskExitToGameMenu(void)
 {
-	AllocateWindowDescFront(&_ask_quit_game_desc, 0);
+	ShowQuery(
+		STR_0161_QUIT_GAME,
+		(_game_mode != GM_EDITOR) ? STR_ABANDON_GAME_QUERY : STR_QUIT_SCENARIO_QUERY,
+		NULL,
+		AskExitToGameMenuCallback
+	);
 }
--- a/lang/english.txt	Fri Dec 29 17:54:47 2006 +0000
+++ b/lang/english.txt	Fri Dec 29 17:56:34 2006 +0000
@@ -359,7 +359,7 @@
 STR_015D_LOAD_GAME                                              :Load game
 STR_015E_QUIT_GAME                                              :Abandon game
 STR_015F_QUIT                                                   :Exit
-STR_0160_ARE_YOU_SURE_YOU_WANT_TO                               :{YELLOW}Are you sure you want to abandon this game?
+STR_ABANDON_GAME_QUERY                                          :{YELLOW}Are you sure you want to abandon this game?
 STR_0161_QUIT_GAME                                              :{WHITE}Abandon Game
 STR_SORT_ORDER_TIP                                              :{BLACK}Select sorting order (descending/ascending)
 STR_SORT_CRITERIA_TIP                                           :{BLACK}Select sorting criteria
@@ -738,7 +738,7 @@
 STR_029A_PLAY_SCENARIO                                          :{BLACK}Play Scenario
 STR_PLAY_HEIGHTMAP                                              :{BLACK}Play Heightmap
 STR_PLAY_HEIGHTMAP_HINT                                         :{BLACK}Start a new game, using a heightmap as landscape
-STR_029B_ARE_YOU_SURE_YOU_WANT_TO                               :{YELLOW}Are you sure you want to quit this scenario ?
+STR_QUIT_SCENARIO_QUERY                                         :{YELLOW}Are you sure you want to quit this scenario ?
 STR_029C_QUIT_EDITOR                                            :{WHITE}Quit Editor
 STR_029D_CAN_ONLY_BE_BUILT_IN_TOWNS                             :{WHITE}...can only be built in towns with a population of at least 1200
 STR_029E_MOVE_THE_STARTING_DATE                                 :{BLACK}Move the starting date backward 1 year
@@ -2946,20 +2946,7 @@
 STR_VEH_WITH_SHARED_ORDERS_LIST_TIP                             :{BLACK}Show all vehicles that share this schedule
 
 ### depot strings
-
-STR_SELL                                                        :{BLACK}Sell
-STR_DEPOT_SELL_ALL_VEHICLE_CONFIRM                              :{BLACK}You are about to sell all the vehicles in the depot.
-STR_ARE_YOU_SURE                                                :{BLACK}Are you sure?
-
-STR_DEPOT_SELL_ALL_TRAIN_TIP                                    :{BLACK}Confirm that you want to sell all the trains in the depot
-STR_DEPOT_SELL_ALL_ROADVEH_TIP                                  :{BLACK}Confirm that you want to sell all the road vehicles in the depot
-STR_DEPOT_SELL_ALL_SHIP_TIP                                     :{BLACK}Confirm that you want to sell all the ships in the depot
-STR_DEPOT_SELL_ALL_AIRCRAFT_TIP                                 :{BLACK}Confirm that you want to sell all the aircraft in the hangar
-
-STR_DEPOT_SELL_ALL_CANCEL_TRAIN_TIP                             :{BLACK}Do not sell all trains in the depot
-STR_DEPOT_SELL_ALL_CANCEL_ROADVEH_TIP                           :{BLACK}Do not sell all road vehicles in the depot
-STR_DEPOT_SELL_ALL_CANCEL_SHIP_TIP                              :{BLACK}Do not sell all ships in the depot
-STR_DEPOT_SELL_ALL_CANCEL_AIRCRAFT_TIP                          :{BLACK}Do not sell all aircraft in the hangar
+STR_DEPOT_SELL_CONFIRMATION_TEXT                                :{YELLOW}You are about to sell all the vehicles in the depot. Are you sure?
 
 STR_DEPOT_SELL_ALL_BUTTON_TRAIN_TIP                             :{BLACK}Sell all trains in the depot
 STR_DEPOT_SELL_ALL_BUTTON_ROADVEH_TIP                           :{BLACK}Sell all road vehicles in the depot