mirror of https://github.com/OpenTTD/OpenTTD
Codechange: use StringParameters to pass parameters for QueryWindow strings
parent
b7bbeaf341
commit
27eeaf0160
|
@ -809,11 +809,10 @@ struct DepotWindow : Window {
|
||||||
case WID_D_SELL_ALL:
|
case WID_D_SELL_ALL:
|
||||||
/* Only open the confirmation window if there are anything to sell */
|
/* Only open the confirmation window if there are anything to sell */
|
||||||
if (!this->vehicle_list.empty() || !this->wagon_list.empty()) {
|
if (!this->vehicle_list.empty() || !this->wagon_list.empty()) {
|
||||||
SetDParam(0, this->type);
|
|
||||||
SetDParam(1, this->GetDepotIndex());
|
|
||||||
ShowQuery(
|
ShowQuery(
|
||||||
STR_DEPOT_CAPTION,
|
STR_DEPOT_CAPTION,
|
||||||
STR_DEPOT_SELL_CONFIRMATION_TEXT,
|
STR_DEPOT_SELL_CONFIRMATION_TEXT,
|
||||||
|
MakeParameters(this->type, this->GetDepotIndex()),
|
||||||
this,
|
this,
|
||||||
DepotSellAllConfirmationCallback
|
DepotSellAllConfirmationCallback
|
||||||
);
|
);
|
||||||
|
|
|
@ -762,14 +762,14 @@ public:
|
||||||
if (this->abstract_filetype == FT_SAVEGAME || this->abstract_filetype == FT_SCENARIO) {
|
if (this->abstract_filetype == FT_SAVEGAME || this->abstract_filetype == FT_SCENARIO) {
|
||||||
_file_to_saveload.name = FiosMakeSavegameName(this->filename_editbox.text.buf);
|
_file_to_saveload.name = FiosMakeSavegameName(this->filename_editbox.text.buf);
|
||||||
if (FioCheckFileExists(_file_to_saveload.name, Subdirectory::SAVE_DIR)) {
|
if (FioCheckFileExists(_file_to_saveload.name, Subdirectory::SAVE_DIR)) {
|
||||||
ShowQuery(STR_SAVELOAD_OVERWRITE_TITLE, STR_SAVELOAD_OVERWRITE_WARNING, this, SaveLoadWindow::SaveGameConfirmationCallback);
|
ShowQuery(STR_SAVELOAD_OVERWRITE_TITLE, STR_SAVELOAD_OVERWRITE_WARNING, MakeParameters(), this, SaveLoadWindow::SaveGameConfirmationCallback);
|
||||||
} else {
|
} else {
|
||||||
_switch_mode = SM_SAVE_GAME;
|
_switch_mode = SM_SAVE_GAME;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
_file_to_saveload.name = FiosMakeHeightmapName(this->filename_editbox.text.buf);
|
_file_to_saveload.name = FiosMakeHeightmapName(this->filename_editbox.text.buf);
|
||||||
if (FioCheckFileExists(_file_to_saveload.name, Subdirectory::SAVE_DIR)) {
|
if (FioCheckFileExists(_file_to_saveload.name, Subdirectory::SAVE_DIR)) {
|
||||||
ShowQuery(STR_SAVELOAD_OVERWRITE_TITLE, STR_SAVELOAD_OVERWRITE_WARNING, this, SaveLoadWindow::SaveHeightmapConfirmationCallback);
|
ShowQuery(STR_SAVELOAD_OVERWRITE_TITLE, STR_SAVELOAD_OVERWRITE_WARNING, MakeParameters(), this, SaveLoadWindow::SaveHeightmapConfirmationCallback);
|
||||||
} else {
|
} else {
|
||||||
_switch_mode = SM_SAVE_HEIGHTMAP;
|
_switch_mode = SM_SAVE_HEIGHTMAP;
|
||||||
}
|
}
|
||||||
|
|
|
@ -718,6 +718,7 @@ struct GenerateLandscapeWindow : public Window {
|
||||||
ShowQuery(
|
ShowQuery(
|
||||||
STR_WARNING_HEIGHTMAP_SCALE_CAPTION,
|
STR_WARNING_HEIGHTMAP_SCALE_CAPTION,
|
||||||
STR_WARNING_HEIGHTMAP_SCALE_MESSAGE,
|
STR_WARNING_HEIGHTMAP_SCALE_MESSAGE,
|
||||||
|
MakeParameters(),
|
||||||
this,
|
this,
|
||||||
LandscapeGenerationCallback);
|
LandscapeGenerationCallback);
|
||||||
} else {
|
} else {
|
||||||
|
@ -1397,6 +1398,7 @@ struct GenerateProgressWindow : public Window {
|
||||||
ShowQuery(
|
ShowQuery(
|
||||||
STR_GENERATION_ABORT_CAPTION,
|
STR_GENERATION_ABORT_CAPTION,
|
||||||
STR_GENERATION_ABORT_MESSAGE,
|
STR_GENERATION_ABORT_MESSAGE,
|
||||||
|
MakeParameters(),
|
||||||
this,
|
this,
|
||||||
AbortGeneratingWorldCallback
|
AbortGeneratingWorldCallback
|
||||||
);
|
);
|
||||||
|
|
|
@ -788,7 +788,7 @@ public:
|
||||||
|
|
||||||
case WID_GL_DELETE_GROUP: { // Delete the selected group
|
case WID_GL_DELETE_GROUP: { // Delete the selected group
|
||||||
this->group_confirm = this->vli.index;
|
this->group_confirm = this->vli.index;
|
||||||
ShowQuery(STR_QUERY_GROUP_DELETE_CAPTION, STR_GROUP_DELETE_QUERY_TEXT, this, DeleteGroupCallback);
|
ShowQuery(STR_QUERY_GROUP_DELETE_CAPTION, STR_GROUP_DELETE_QUERY_TEXT, MakeParameters(), this, DeleteGroupCallback);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -631,14 +631,14 @@ public:
|
||||||
case WID_DPI_CREATE_RANDOM_INDUSTRIES_WIDGET: {
|
case WID_DPI_CREATE_RANDOM_INDUSTRIES_WIDGET: {
|
||||||
assert(_game_mode == GM_EDITOR);
|
assert(_game_mode == GM_EDITOR);
|
||||||
this->HandleButtonClick(WID_DPI_CREATE_RANDOM_INDUSTRIES_WIDGET);
|
this->HandleButtonClick(WID_DPI_CREATE_RANDOM_INDUSTRIES_WIDGET);
|
||||||
ShowQuery(STR_FUND_INDUSTRY_MANY_RANDOM_INDUSTRIES_CAPTION, STR_FUND_INDUSTRY_MANY_RANDOM_INDUSTRIES_QUERY, nullptr, AskManyRandomIndustriesCallback);
|
ShowQuery(STR_FUND_INDUSTRY_MANY_RANDOM_INDUSTRIES_CAPTION, STR_FUND_INDUSTRY_MANY_RANDOM_INDUSTRIES_QUERY, MakeParameters(), nullptr, AskManyRandomIndustriesCallback);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case WID_DPI_REMOVE_ALL_INDUSTRIES_WIDGET: {
|
case WID_DPI_REMOVE_ALL_INDUSTRIES_WIDGET: {
|
||||||
assert(_game_mode == GM_EDITOR);
|
assert(_game_mode == GM_EDITOR);
|
||||||
this->HandleButtonClick(WID_DPI_REMOVE_ALL_INDUSTRIES_WIDGET);
|
this->HandleButtonClick(WID_DPI_REMOVE_ALL_INDUSTRIES_WIDGET);
|
||||||
ShowQuery(STR_FUND_INDUSTRY_REMOVE_ALL_INDUSTRIES_CAPTION, STR_FUND_INDUSTRY_REMOVE_ALL_INDUSTRIES_QUERY, nullptr, AskRemoveAllIndustriesCallback);
|
ShowQuery(STR_FUND_INDUSTRY_REMOVE_ALL_INDUSTRIES_CAPTION, STR_FUND_INDUSTRY_REMOVE_ALL_INDUSTRIES_QUERY, MakeParameters(), nullptr, AskRemoveAllIndustriesCallback);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -481,6 +481,7 @@ void AskExitGame()
|
||||||
ShowQuery(
|
ShowQuery(
|
||||||
STR_QUIT_CAPTION,
|
STR_QUIT_CAPTION,
|
||||||
STR_QUIT_ARE_YOU_SURE_YOU_WANT_TO_EXIT_OPENTTD,
|
STR_QUIT_ARE_YOU_SURE_YOU_WANT_TO_EXIT_OPENTTD,
|
||||||
|
MakeParameters(),
|
||||||
nullptr,
|
nullptr,
|
||||||
AskExitGameCallback,
|
AskExitGameCallback,
|
||||||
true
|
true
|
||||||
|
@ -501,6 +502,7 @@ void AskExitToGameMenu()
|
||||||
ShowQuery(
|
ShowQuery(
|
||||||
STR_ABANDON_GAME_CAPTION,
|
STR_ABANDON_GAME_CAPTION,
|
||||||
(_game_mode != GM_EDITOR) ? STR_ABANDON_GAME_QUERY : STR_ABANDON_SCENARIO_QUERY,
|
(_game_mode != GM_EDITOR) ? STR_ABANDON_GAME_QUERY : STR_ABANDON_SCENARIO_QUERY,
|
||||||
|
MakeParameters(),
|
||||||
nullptr,
|
nullptr,
|
||||||
AskExitToGameMenuCallback,
|
AskExitToGameMenuCallback,
|
||||||
true
|
true
|
||||||
|
|
|
@ -188,6 +188,7 @@ CommandCost CmdPause(DoCommandFlag flags, PauseMode mode, bool pause)
|
||||||
ShowQuery(
|
ShowQuery(
|
||||||
STR_NEWGRF_UNPAUSE_WARNING_TITLE,
|
STR_NEWGRF_UNPAUSE_WARNING_TITLE,
|
||||||
STR_NEWGRF_UNPAUSE_WARNING,
|
STR_NEWGRF_UNPAUSE_WARNING,
|
||||||
|
MakeParameters(),
|
||||||
nullptr,
|
nullptr,
|
||||||
AskUnsafeUnpauseCallback
|
AskUnsafeUnpauseCallback
|
||||||
);
|
);
|
||||||
|
|
|
@ -1093,18 +1093,18 @@ void ShowQueryString(StringID str, StringID caption, uint maxsize, Window *paren
|
||||||
*/
|
*/
|
||||||
struct QueryWindow : public Window {
|
struct QueryWindow : public Window {
|
||||||
QueryCallbackProc *proc; ///< callback function executed on closing of popup. Window* points to parent, bool is true if 'yes' clicked, false otherwise
|
QueryCallbackProc *proc; ///< callback function executed on closing of popup. Window* points to parent, bool is true if 'yes' clicked, false otherwise
|
||||||
std::vector<StringParameterBackup> params; ///< local copy of #_global_string_params
|
std::vector<StringParameterBackup> params; ///< Parameters for the message.
|
||||||
StringID message; ///< message shown for query window
|
StringID message; ///< message shown for query window
|
||||||
|
|
||||||
QueryWindow(WindowDesc *desc, StringID caption, StringID message, Window *parent, QueryCallbackProc *callback) : Window(desc)
|
QueryWindow(WindowDesc *desc, StringID caption, StringID message, StringParameters &¶ms, Window *parent, QueryCallbackProc *callback) : Window(desc)
|
||||||
{
|
{
|
||||||
/* Create a backup of the variadic arguments to strings because it will be
|
CopyOutDParam(this->params, std::move(params));
|
||||||
* overridden pretty often. We will copy these back for drawing */
|
|
||||||
CopyOutDParam(this->params, 10);
|
|
||||||
this->message = message;
|
this->message = message;
|
||||||
this->proc = callback;
|
this->proc = callback;
|
||||||
this->parent = parent;
|
this->parent = parent;
|
||||||
|
|
||||||
|
CopyInDParam(this->params);
|
||||||
|
|
||||||
this->CreateNestedTree();
|
this->CreateNestedTree();
|
||||||
this->GetWidget<NWidgetCore>(WID_Q_CAPTION)->SetDataTip(caption, STR_NULL);
|
this->GetWidget<NWidgetCore>(WID_Q_CAPTION)->SetDataTip(caption, STR_NULL);
|
||||||
this->FinishInitNested(WN_CONFIRM_POPUP_QUERY);
|
this->FinishInitNested(WN_CONFIRM_POPUP_QUERY);
|
||||||
|
@ -1219,12 +1219,13 @@ static WindowDesc _query_desc(__FILE__, __LINE__,
|
||||||
* The window is aligned to the centre of its parent.
|
* The window is aligned to the centre of its parent.
|
||||||
* @param caption string shown as window caption
|
* @param caption string shown as window caption
|
||||||
* @param message string that will be shown for the window
|
* @param message string that will be shown for the window
|
||||||
|
* @param params Parameters for the message.
|
||||||
* @param parent pointer to parent window, if this pointer is nullptr the parent becomes
|
* @param parent pointer to parent window, if this pointer is nullptr the parent becomes
|
||||||
* the main window WC_MAIN_WINDOW
|
* the main window WC_MAIN_WINDOW
|
||||||
* @param callback callback function pointer to set in the window descriptor
|
* @param callback callback function pointer to set in the window descriptor
|
||||||
* @param focus whether the window should be focussed (by default false)
|
* @param focus whether the window should be focussed (by default false)
|
||||||
*/
|
*/
|
||||||
void ShowQuery(StringID caption, StringID message, Window *parent, QueryCallbackProc *callback, bool focus)
|
void ShowQuery(StringID caption, StringID message, StringParameters &¶ms, Window *parent, QueryCallbackProc *callback, bool focus)
|
||||||
{
|
{
|
||||||
if (parent == nullptr) parent = GetMainWindow();
|
if (parent == nullptr) parent = GetMainWindow();
|
||||||
|
|
||||||
|
@ -1238,6 +1239,6 @@ void ShowQuery(StringID caption, StringID message, Window *parent, QueryCallback
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
QueryWindow *q = new QueryWindow(&_query_desc, caption, message, parent, callback);
|
QueryWindow *q = new QueryWindow(&_query_desc, caption, message, std::move(params), parent, callback);
|
||||||
if (focus) SetFocusedWindow(q);
|
if (focus) SetFocusedWindow(q);
|
||||||
}
|
}
|
||||||
|
|
|
@ -869,7 +869,7 @@ public:
|
||||||
if (_accepted_external_search) {
|
if (_accepted_external_search) {
|
||||||
this->OpenExternalSearch();
|
this->OpenExternalSearch();
|
||||||
} else {
|
} else {
|
||||||
ShowQuery(STR_CONTENT_SEARCH_EXTERNAL_DISCLAIMER_CAPTION, STR_CONTENT_SEARCH_EXTERNAL_DISCLAIMER, this, ExternalSearchDisclaimerCallback);
|
ShowQuery(STR_CONTENT_SEARCH_EXTERNAL_DISCLAIMER_CAPTION, STR_CONTENT_SEARCH_EXTERNAL_DISCLAIMER, MakeParameters(), this, ExternalSearchDisclaimerCallback);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1842,6 +1842,7 @@ public:
|
||||||
|
|
||||||
case WID_CL_MATRIX: {
|
case WID_CL_MATRIX: {
|
||||||
StringID text = STR_NULL;
|
StringID text = STR_NULL;
|
||||||
|
auto params = MakeParameters(0);
|
||||||
QueryCallbackProc *callback = nullptr;
|
QueryCallbackProc *callback = nullptr;
|
||||||
|
|
||||||
switch (index) {
|
switch (index) {
|
||||||
|
@ -1849,28 +1850,28 @@ public:
|
||||||
_admin_client_id = this->dd_client_id;
|
_admin_client_id = this->dd_client_id;
|
||||||
text = STR_NETWORK_CLIENT_LIST_ASK_CLIENT_KICK;
|
text = STR_NETWORK_CLIENT_LIST_ASK_CLIENT_KICK;
|
||||||
callback = AdminClientKickCallback;
|
callback = AdminClientKickCallback;
|
||||||
SetDParamStr(0, NetworkClientInfo::GetByClientID(_admin_client_id)->client_name);
|
params.SetParam(0, NetworkClientInfo::GetByClientID(_admin_client_id)->client_name);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DD_CLIENT_ADMIN_BAN:
|
case DD_CLIENT_ADMIN_BAN:
|
||||||
_admin_client_id = this->dd_client_id;
|
_admin_client_id = this->dd_client_id;
|
||||||
text = STR_NETWORK_CLIENT_LIST_ASK_CLIENT_BAN;
|
text = STR_NETWORK_CLIENT_LIST_ASK_CLIENT_BAN;
|
||||||
callback = AdminClientBanCallback;
|
callback = AdminClientBanCallback;
|
||||||
SetDParamStr(0, NetworkClientInfo::GetByClientID(_admin_client_id)->client_name);
|
params.SetParam(0, NetworkClientInfo::GetByClientID(_admin_client_id)->client_name);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DD_COMPANY_ADMIN_RESET:
|
case DD_COMPANY_ADMIN_RESET:
|
||||||
_admin_company_id = this->dd_company_id;
|
_admin_company_id = this->dd_company_id;
|
||||||
text = STR_NETWORK_CLIENT_LIST_ASK_COMPANY_RESET;
|
text = STR_NETWORK_CLIENT_LIST_ASK_COMPANY_RESET;
|
||||||
callback = AdminCompanyResetCallback;
|
callback = AdminCompanyResetCallback;
|
||||||
SetDParam(0, _admin_company_id);
|
params.SetParam(0, _admin_company_id);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DD_COMPANY_ADMIN_UNLOCK:
|
case DD_COMPANY_ADMIN_UNLOCK:
|
||||||
_admin_company_id = this->dd_company_id;
|
_admin_company_id = this->dd_company_id;
|
||||||
text = STR_NETWORK_CLIENT_LIST_ASK_COMPANY_UNLOCK;
|
text = STR_NETWORK_CLIENT_LIST_ASK_COMPANY_UNLOCK;
|
||||||
callback = AdminCompanyUnlockCallback;
|
callback = AdminCompanyUnlockCallback;
|
||||||
SetDParam(0, _admin_company_id);
|
params.SetParam(0, _admin_company_id);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -1881,7 +1882,7 @@ public:
|
||||||
assert(callback != nullptr);
|
assert(callback != nullptr);
|
||||||
|
|
||||||
/* Always ask confirmation for all admin actions. */
|
/* Always ask confirmation for all admin actions. */
|
||||||
ShowQuery(STR_NETWORK_CLIENT_LIST_ASK_CAPTION, text, this, callback);
|
ShowQuery(STR_NETWORK_CLIENT_LIST_ASK_CAPTION, text, std::move(params), this, callback);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1124,6 +1124,7 @@ struct NewGRFWindow : public Window, NewGRFScanCallback {
|
||||||
ShowQuery(
|
ShowQuery(
|
||||||
STR_NEWGRF_POPUP_CAUTION_CAPTION,
|
STR_NEWGRF_POPUP_CAUTION_CAPTION,
|
||||||
STR_NEWGRF_CONFIRMATION_TEXT,
|
STR_NEWGRF_CONFIRMATION_TEXT,
|
||||||
|
MakeParameters(),
|
||||||
this,
|
this,
|
||||||
NewGRFConfirmationCallback
|
NewGRFConfirmationCallback
|
||||||
);
|
);
|
||||||
|
|
|
@ -885,9 +885,7 @@ void MakeScreenshotWithConfirm(ScreenshotType t)
|
||||||
if (width * height > 8192 * 8192) {
|
if (width * height > 8192 * 8192) {
|
||||||
/* Ask for confirmation */
|
/* Ask for confirmation */
|
||||||
_confirmed_screenshot_type = t;
|
_confirmed_screenshot_type = t;
|
||||||
SetDParam(0, width);
|
ShowQuery(STR_WARNING_SCREENSHOT_SIZE_CAPTION, STR_WARNING_SCREENSHOT_SIZE_MESSAGE, MakeParameters(width, height), nullptr, ScreenshotConfirmationCallback);
|
||||||
SetDParam(1, height);
|
|
||||||
ShowQuery(STR_WARNING_SCREENSHOT_SIZE_CAPTION, STR_WARNING_SCREENSHOT_SIZE_MESSAGE, nullptr, ScreenshotConfirmationCallback);
|
|
||||||
} else {
|
} else {
|
||||||
/* Less than 64M pixels, just do it */
|
/* Less than 64M pixels, just do it */
|
||||||
MakeScreenshot(t, {});
|
MakeScreenshot(t, {});
|
||||||
|
|
|
@ -2536,6 +2536,7 @@ struct GameSettingsWindow : Window {
|
||||||
ShowQuery(
|
ShowQuery(
|
||||||
STR_CONFIG_SETTING_RESET_ALL_CONFIRMATION_DIALOG_CAPTION,
|
STR_CONFIG_SETTING_RESET_ALL_CONFIRMATION_DIALOG_CAPTION,
|
||||||
STR_CONFIG_SETTING_RESET_ALL_CONFIRMATION_DIALOG_TEXT,
|
STR_CONFIG_SETTING_RESET_ALL_CONFIRMATION_DIALOG_TEXT,
|
||||||
|
MakeParameters(),
|
||||||
this,
|
this,
|
||||||
ResetAllSettingsConfirmationCallback
|
ResetAllSettingsConfirmationCallback
|
||||||
);
|
);
|
||||||
|
|
|
@ -637,7 +637,7 @@ struct ScenarioEditorLandscapeGenerationWindow : Window {
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WID_ETT_RESET_LANDSCAPE: // Reset landscape
|
case WID_ETT_RESET_LANDSCAPE: // Reset landscape
|
||||||
ShowQuery(STR_QUERY_RESET_LANDSCAPE_CAPTION, STR_RESET_LANDSCAPE_CONFIRMATION_TEXT, nullptr, ResetLandscapeConfirmationCallback);
|
ShowQuery(STR_QUERY_RESET_LANDSCAPE_CAPTION, STR_RESET_LANDSCAPE_CONFIRMATION_TEXT, MakeParameters(), nullptr, ResetLandscapeConfirmationCallback);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default: NOT_REACHED();
|
default: NOT_REACHED();
|
||||||
|
|
|
@ -29,7 +29,7 @@ DECLARE_ENUM_AS_BIT_SET(QueryStringFlags)
|
||||||
typedef void QueryCallbackProc(Window*, bool);
|
typedef void QueryCallbackProc(Window*, bool);
|
||||||
|
|
||||||
void ShowQueryString(StringID str, StringID caption, uint max_len, Window *parent, CharSetFilter afilter, QueryStringFlags flags);
|
void ShowQueryString(StringID str, StringID caption, uint max_len, Window *parent, CharSetFilter afilter, QueryStringFlags flags);
|
||||||
void ShowQuery(StringID caption, StringID message, Window *w, QueryCallbackProc *callback, bool focus = false);
|
void ShowQuery(StringID caption, StringID message, class StringParameters &¶ms, Window *w, QueryCallbackProc *callback, bool focus = false);
|
||||||
|
|
||||||
/** The number of 'characters' on the on-screen keyboard. */
|
/** The number of 'characters' on the on-screen keyboard. */
|
||||||
static const uint OSK_KEYBOARD_ENTRIES = 50;
|
static const uint OSK_KEYBOARD_ENTRIES = 50;
|
||||||
|
|
Loading…
Reference in New Issue