From df5fee6103deb5dd42e8ec5dec690b09d8a1ce1a Mon Sep 17 00:00:00 2001 From: phosit Date: Wed, 30 Oct 2024 18:56:33 +0100 Subject: [PATCH] Rename PushGuiPage to OpenChildPage There is no `PopGuiPage` anymore. For symmetry there should also be no `PushGuiPage`. --- .../gui/regainFocus/pushWithPopOnInit.js | 2 +- .../_test.gui/gui/sequential/sequential.js | 4 +- .../mods/mod/gui/common/functions_msgbox.js | 4 +- binaries/data/mods/mod/gui/common/terms.js | 2 +- binaries/data/mods/mod/gui/modmod/modmod.js | 2 +- binaries/data/mods/mod/gui/modmod/modmod.xml | 2 +- binaries/data/mods/mod/gui/modmod/modmodio.js | 2 +- .../data/mods/public/autostart/entrypoint.js | 2 +- .../campaigns/default_menu/CampaignMenu.js | 2 +- .../gui/campaigns/setup/CampaignSetupPage.js | 4 +- .../gui/common/functions_global_object.js | 2 +- .../public/gui/common/functions_utility.js | 2 +- .../Panels/Buttons/LobbyButton.js | 2 +- .../public/gui/gamesetup_mp/gamesetup_mp.js | 2 +- .../gui/lobby/LobbyPage/Buttons/HostButton.js | 2 +- .../gui/lobby/LobbyPage/Buttons/JoinButton.js | 2 +- .../data/mods/public/gui/locale/locale.js | 2 +- .../data/mods/public/gui/options/options.js | 2 +- .../mods/public/gui/pregame/MainMenuItems.js | 50 +++++++------------ .../public/gui/pregame/SplashscreenHandler.js | 6 ++- .../public/gui/prelobby/entrance/entrance.js | 4 +- .../public/gui/prelobby/register/register.js | 2 +- .../reference/structree/Boxes/EntityBox.js | 4 +- .../mods/public/gui/session/MenuButtons.js | 12 ++--- .../public/gui/session/SessionMessageBox.js | 2 +- .../gui/session/campaigns/CampaignSession.js | 2 +- .../public/gui/session/selection_panels.js | 2 +- .../data/mods/public/gui/summary/summary.xml | 2 +- source/gui/GUIManager.cpp | 8 +-- source/gui/GUIManager.h | 2 +- .../gui/Scripting/JSInterface_GUIManager.cpp | 6 +-- source/gui/tests/test_GuiManager.h | 14 +++--- 32 files changed, 71 insertions(+), 87 deletions(-) diff --git a/binaries/data/mods/_test.gui/gui/regainFocus/pushWithPopOnInit.js b/binaries/data/mods/_test.gui/gui/regainFocus/pushWithPopOnInit.js index 14f188ba39..3152923203 100644 --- a/binaries/data/mods/_test.gui/gui/regainFocus/pushWithPopOnInit.js +++ b/binaries/data/mods/_test.gui/gui/regainFocus/pushWithPopOnInit.js @@ -1,4 +1,4 @@ function init() { - return Engine.PushGuiPage("regainFocus/page_emptyPage.xml"); + return Engine.OpenChildPage("regainFocus/page_emptyPage.xml"); } diff --git a/binaries/data/mods/_test.gui/gui/sequential/sequential.js b/binaries/data/mods/_test.gui/gui/sequential/sequential.js index e87c9984bf..08f919ebb8 100644 --- a/binaries/data/mods/_test.gui/gui/sequential/sequential.js +++ b/binaries/data/mods/_test.gui/gui/sequential/sequential.js @@ -1,5 +1,5 @@ async function init() { - await Engine.PushGuiPage("regainFocus/page_emptyPage.xml"); - await Engine.PushGuiPage("regainFocus/page_emptyPage.xml"); + await Engine.OpenChildPage("regainFocus/page_emptyPage.xml"); + await Engine.OpenChildPage("regainFocus/page_emptyPage.xml"); } diff --git a/binaries/data/mods/mod/gui/common/functions_msgbox.js b/binaries/data/mods/mod/gui/common/functions_msgbox.js index 46cb5512ed..308d6e9493 100644 --- a/binaries/data/mods/mod/gui/common/functions_msgbox.js +++ b/binaries/data/mods/mod/gui/common/functions_msgbox.js @@ -1,6 +1,6 @@ function messageBox(width, height, message, title, buttonCaptions) { - return Engine.PushGuiPage( + return Engine.OpenChildPage( "page_msgbox.xml", { "width": width, @@ -13,7 +13,7 @@ function messageBox(width, height, message, title, buttonCaptions) function timedConfirmation(width, height, message, timeParameter, timeout, title, buttonCaptions) { - return Engine.PushGuiPage( + return Engine.OpenChildPage( "page_timedconfirmation.xml", { "width": width, diff --git a/binaries/data/mods/mod/gui/common/terms.js b/binaries/data/mods/mod/gui/common/terms.js index b05ad037f4..e69a8c1bf9 100644 --- a/binaries/data/mods/mod/gui/common/terms.js +++ b/binaries/data/mods/mod/gui/common/terms.js @@ -7,7 +7,7 @@ function initTerms(terms) async function openTerms(page) { - const data = await Engine.PushGuiPage( + const data = await Engine.OpenChildPage( "page_termsdialog.xml", { "file": g_Terms[page].file, diff --git a/binaries/data/mods/mod/gui/modmod/modmod.js b/binaries/data/mods/mod/gui/modmod/modmod.js index b8eaf635e2..3bd1faa93e 100644 --- a/binaries/data/mods/mod/gui/modmod/modmod.js +++ b/binaries/data/mods/mod/gui/modmod/modmod.js @@ -84,7 +84,7 @@ function init(data, hotloadData) initMods(); initGUIButtons(data); if (g_HasIncompatibleMods) - Engine.PushGuiPage("page_incompatible_mods.xml", {}); + Engine.OpenChildPage("page_incompatible_mods.xml", {}); } function initMods() diff --git a/binaries/data/mods/mod/gui/modmod/modmod.xml b/binaries/data/mods/mod/gui/modmod/modmod.xml index 5b5e0a9be8..62a42e5fd3 100644 --- a/binaries/data/mods/mod/gui/modmod/modmod.xml +++ b/binaries/data/mods/mod/gui/modmod/modmod.xml @@ -200,7 +200,7 @@ Help - Engine.PushGuiPage("page_modhelp.xml"); + Engine.OpenChildPage("page_modhelp.xml"); diff --git a/binaries/data/mods/mod/gui/modmod/modmodio.js b/binaries/data/mods/mod/gui/modmod/modmodio.js index e27b325184..cc2fef30bf 100644 --- a/binaries/data/mods/mod/gui/modmod/modmodio.js +++ b/binaries/data/mods/mod/gui/modmod/modmodio.js @@ -28,6 +28,6 @@ async function openModIo(data) if (!data.accepted) return; - await Engine.PushGuiPage("page_modio.xml"); + await Engine.OpenChildPage("page_modio.xml"); initMods(); } diff --git a/binaries/data/mods/public/autostart/entrypoint.js b/binaries/data/mods/public/autostart/entrypoint.js index 101ef98950..ea11df93b5 100644 --- a/binaries/data/mods/public/autostart/entrypoint.js +++ b/binaries/data/mods/public/autostart/entrypoint.js @@ -7,7 +7,7 @@ Engine.HasXmppClient = () => false; Engine.SetRankedGame = () => {}; Engine.TextureExists = () => false; -Engine.PushGuiPage = () => {}; +Engine.OpenChildPage = () => {}; Engine.SwitchGuiPage = () => {}; var translateObjectKeys = () => {} diff --git a/binaries/data/mods/public/gui/campaigns/default_menu/CampaignMenu.js b/binaries/data/mods/public/gui/campaigns/default_menu/CampaignMenu.js index 2d805fa0c0..85485937c7 100644 --- a/binaries/data/mods/public/gui/campaigns/default_menu/CampaignMenu.js +++ b/binaries/data/mods/public/gui/campaigns/default_menu/CampaignMenu.js @@ -28,7 +28,7 @@ class CampaignMenu extends AutoWatcher async loadSavegame() { - const gameId = await Engine.PushGuiPage( + const gameId = await Engine.OpenChildPage( 'page_loadgame.xml', { "campaignRun": this.run.filename diff --git a/binaries/data/mods/public/gui/campaigns/setup/CampaignSetupPage.js b/binaries/data/mods/public/gui/campaigns/setup/CampaignSetupPage.js index 88fdfbce58..f16b892c58 100644 --- a/binaries/data/mods/public/gui/campaigns/setup/CampaignSetupPage.js +++ b/binaries/data/mods/public/gui/campaigns/setup/CampaignSetupPage.js @@ -12,13 +12,13 @@ class CampaignSetupPage extends AutoWatcher this.templates = CampaignTemplate.getAvailableTemplates(); Engine.GetGUIObjectByName("mainMenuButton").onPress = () => Engine.SwitchGuiPage("page_pregame.xml"); - Engine.GetGUIObjectByName("startCampButton").onPress = () => Engine.PushGuiPage("campaigns/new_modal/page.xml", this.selectedTemplate); + Engine.GetGUIObjectByName("startCampButton").onPress = () => Engine.OpenChildPage("campaigns/new_modal/page.xml", this.selectedTemplate); this.campaignSelection = Engine.GetGUIObjectByName("campaignSelection"); this.campaignSelection.onMouseLeftDoubleClickItem = () => { if (this.selectedIndex === -1) return; - Engine.PushGuiPage("campaigns/new_modal/page.xml", this.selectedTemplate); + Engine.OpenChildPage("campaigns/new_modal/page.xml", this.selectedTemplate); }; this.campaignSelection.onSelectionChange = () => { this.selectedIndex = this.campaignSelection.selected; diff --git a/binaries/data/mods/public/gui/common/functions_global_object.js b/binaries/data/mods/public/gui/common/functions_global_object.js index ae4f66bf34..9d591da12a 100644 --- a/binaries/data/mods/public/gui/common/functions_global_object.js +++ b/binaries/data/mods/public/gui/common/functions_global_object.js @@ -46,7 +46,7 @@ function cancelOnLoadGameError(msg) Engine.SwitchGuiPage("page_pregame.xml"); if (msg) - Engine.PushGuiPage("page_msgbox.xml", { + Engine.OpenChildPage("page_msgbox.xml", { "width": 500, "height": 200, "message": msg, diff --git a/binaries/data/mods/public/gui/common/functions_utility.js b/binaries/data/mods/public/gui/common/functions_utility.js index c719654755..b92b6be112 100644 --- a/binaries/data/mods/public/gui/common/functions_utility.js +++ b/binaries/data/mods/public/gui/common/functions_utility.js @@ -302,7 +302,7 @@ async function pageLoop(page, args) { let completionValue = { "nextPage": page, "args": args }; while (completionValue?.nextPage != null) - completionValue = await Engine.PushGuiPage(completionValue.nextPage, completionValue.args); + completionValue = await Engine.OpenChildPage(completionValue.nextPage, completionValue.args); return completionValue; } diff --git a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/Panels/Buttons/LobbyButton.js b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/Panels/Buttons/LobbyButton.js index fb711e14e5..b8ff6b0ff7 100644 --- a/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/Panels/Buttons/LobbyButton.js +++ b/binaries/data/mods/public/gui/gamesetup/Pages/GameSetupPage/Panels/Buttons/LobbyButton.js @@ -11,7 +11,7 @@ class LobbyButton onPress() { if (Engine.HasXmppClient()) - Engine.PushGuiPage("page_lobby.xml", { "dialog": true }); + Engine.OpenChildPage("page_lobby.xml", { "dialog": true }); } } diff --git a/binaries/data/mods/public/gui/gamesetup_mp/gamesetup_mp.js b/binaries/data/mods/public/gui/gamesetup_mp/gamesetup_mp.js index e92cc2f180..6433822af8 100644 --- a/binaries/data/mods/public/gui/gamesetup_mp/gamesetup_mp.js +++ b/binaries/data/mods/public/gui/gamesetup_mp/gamesetup_mp.js @@ -348,7 +348,7 @@ async function handleAuthenticated(message, loadSavedGame) } g_IsConnecting = false; - const savegameID = loadSavedGame ? await Engine.PushGuiPage("page_loadgame.xml") : undefined; + const savegameID = loadSavedGame ? await Engine.OpenChildPage("page_loadgame.xml") : undefined; if (loadSavedGame && !savegameID) { diff --git a/binaries/data/mods/public/gui/lobby/LobbyPage/Buttons/HostButton.js b/binaries/data/mods/public/gui/lobby/LobbyPage/Buttons/HostButton.js index 361e5fe8fb..0048668a46 100644 --- a/binaries/data/mods/public/gui/lobby/LobbyPage/Buttons/HostButton.js +++ b/binaries/data/mods/public/gui/lobby/LobbyPage/Buttons/HostButton.js @@ -22,7 +22,7 @@ class HostButton onPress(loadSavedGame) { - Engine.PushGuiPage("page_gamesetup_mp.xml", { + Engine.OpenChildPage("page_gamesetup_mp.xml", { "loadSavedGame": loadSavedGame, "multiplayerGameType": "host", "name": g_Nickname, diff --git a/binaries/data/mods/public/gui/lobby/LobbyPage/Buttons/JoinButton.js b/binaries/data/mods/public/gui/lobby/LobbyPage/Buttons/JoinButton.js index 01bcacb8e9..3a9287db56 100644 --- a/binaries/data/mods/public/gui/lobby/LobbyPage/Buttons/JoinButton.js +++ b/binaries/data/mods/public/gui/lobby/LobbyPage/Buttons/JoinButton.js @@ -70,7 +70,7 @@ class JoinButton if (this.joinButton.hidden) return; - Engine.PushGuiPage("page_gamesetup_mp.xml", { + Engine.OpenChildPage("page_gamesetup_mp.xml", { "multiplayerGameType": "join", "name": g_Nickname, "rating": this.getRejoinRating(stanza), diff --git a/binaries/data/mods/public/gui/locale/locale.js b/binaries/data/mods/public/gui/locale/locale.js index c74206f6d2..27a642aae7 100644 --- a/binaries/data/mods/public/gui/locale/locale.js +++ b/binaries/data/mods/public/gui/locale/locale.js @@ -46,7 +46,7 @@ function languageSelectionChanged() async function openAdvancedMenu() { let localeText = Engine.GetGUIObjectByName("localeText"); - const locale = await Engine.PushGuiPage("page_locale_advanced.xml", { "locale": localeText.caption }); + const locale = await Engine.OpenChildPage("page_locale_advanced.xml", { "locale": localeText.caption }); if (!locale) return; diff --git a/binaries/data/mods/public/gui/options/options.js b/binaries/data/mods/public/gui/options/options.js index 93aa71ae3b..887fd1c879 100644 --- a/binaries/data/mods/public/gui/options/options.js +++ b/binaries/data/mods/public/gui/options/options.js @@ -81,7 +81,7 @@ var g_OptionType = { }, "initGUI": (option, control) => { control.children[2].onPress = async() => { - const color = await Engine.PushGuiPage("page_colormixer.xml", control.caption); + const color = await Engine.OpenChildPage("page_colormixer.xml", control.caption); if (color != control.caption) { diff --git a/binaries/data/mods/public/gui/pregame/MainMenuItems.js b/binaries/data/mods/public/gui/pregame/MainMenuItems.js index f86db02309..a1015473b7 100644 --- a/binaries/data/mods/public/gui/pregame/MainMenuItems.js +++ b/binaries/data/mods/public/gui/pregame/MainMenuItems.js @@ -6,9 +6,7 @@ var g_MainMenuItems = [ { "caption": translate("Manual"), "tooltip": translate("Open the 0 A.D. Game Manual."), - "onPress": () => { - Engine.PushGuiPage("page_manual.xml"); - } + "onPress": Engine.OpenChildPage.bind(null, "page_manual.xml") }, { "caption": translate("Tutorial"), @@ -35,9 +33,9 @@ var g_MainMenuItems = [ { "caption": translate("Tips and Tricks"), "tooltip": translate("Discover simple tips, tricks, and game mechanics."), - "onPress": () => { - Engine.PushGuiPage("page_tips.xml", { "tipScrolling": true }); - } + "onPress": Engine.OpenChildPage.bind(null, "page_tips.xml", { + "tipScrolling": true + }) }, { "caption": translate("Structure Tree"), @@ -54,16 +52,12 @@ var g_MainMenuItems = [ { "caption": translate("Catafalque Overview"), "tooltip": translate("Compare the bonuses of catafalques featured in 0 A.D."), - "onPress": () => { - Engine.PushGuiPage("page_catafalque.xml"); - } + "onPress": Engine.OpenChildPage.bind(null, "page_catafalque.xml") }, { "caption": translate("Map Overview"), "tooltip": translate("View the different maps featured in 0 A.D."), - "onPress": () => { - Engine.PushGuiPage("page_mapbrowser.xml"); - }, + "onPress": Engine.OpenChildPage.bind(null, "page_mapbrowser.xml") } ] }, @@ -98,7 +92,7 @@ var g_MainMenuItems = [ "caption": translate("Load Game"), "tooltip": translate("Load a saved game."), "onPress": async() => { - const gameId = await Engine.PushGuiPage("page_loadgame.xml"); + const gameId = await Engine.OpenChildPage("page_loadgame.xml"); if (!gameId) return; @@ -185,23 +179,21 @@ var g_MainMenuItems = [ "hotkey": "lobby", "onPress": () => { if (Engine.StartXmppClient) - Engine.PushGuiPage("page_prelobby_entrance.xml"); + Engine.OpenChildPage("page_prelobby_entrance.xml"); } }, { // Translation: Join a game by specifying the host's IP address. "caption": translate("Join Game"), "tooltip": translate("Joining an existing multiplayer game."), - "onPress": () => { - Engine.PushGuiPage("page_gamesetup_mp.xml", { + "onPress": Engine.OpenChildPage.bind(null, "page_gamesetup_mp.xml", { "multiplayerGameType": "join" - }); - } + }) }, { "caption": translate("Host New Game"), "tooltip": translate("Host a new multiplayer game."), - "onPress": Engine.PushGuiPage.bind(null, "page_gamesetup_mp.xml", { + "onPress": Engine.OpenChildPage.bind(null, "page_gamesetup_mp.xml", { "multiplayerGameType": "host", "loadSavedGame": false }) @@ -209,7 +201,7 @@ var g_MainMenuItems = [ { "caption": translate("Host Saved Game"), "tooltip": translate("Continue playing a game from a savegame."), - "onPress": Engine.PushGuiPage.bind(null, "page_gamesetup_mp.xml", { + "onPress": Engine.OpenChildPage.bind(null, "page_gamesetup_mp.xml", { "multiplayerGameType": "host", "loadSavedGame": true }) @@ -237,22 +229,18 @@ var g_MainMenuItems = [ "caption": translate("Options"), "tooltip": translate("Adjust game settings."), "onPress": async() => { - fireConfigChangeHandlers(await Engine.PushGuiPage("page_options.xml")); + fireConfigChangeHandlers(await Engine.OpenChildPage("page_options.xml")); } }, { "caption": translate("Hotkeys"), "tooltip": translate("Adjust hotkeys."), - "onPress": () => { - Engine.PushGuiPage("hotkeys/page_hotkeys.xml"); - } + "onPress": Engine.OpenChildPage.bind(null, "hotkeys/page_hotkeys.xml") }, { "caption": translate("Language"), "tooltip": translate("Choose the language of the game."), - "onPress": () => { - Engine.PushGuiPage("page_locale.xml"); - } + "onPress": Engine.OpenChildPage.bind(null, "page_locale.xml") }, { "caption": translate("Mod Selection"), @@ -264,9 +252,7 @@ var g_MainMenuItems = [ { "caption": translate("Welcome Screen"), "tooltip": translate("Show the Welcome Screen again. Useful if you hid it by mistake."), - "onPress": () => { - Engine.PushGuiPage("page_splashscreen.xml"); - } + "onPress": Engine.OpenChildPage.bind(null, "page_splashscreen.xml") } ] }, @@ -296,9 +282,7 @@ var g_MainMenuItems = [ { "caption": translate("Credits"), "tooltip": translate("Show the 0 A.D. credits."), - "onPress": () => { - Engine.PushGuiPage("page_credits.xml"); - } + "onPress": Engine.OpenChildPage.bind(null, "page_credits.xml") }, { "caption": translate("Exit"), diff --git a/binaries/data/mods/public/gui/pregame/SplashscreenHandler.js b/binaries/data/mods/public/gui/pregame/SplashscreenHandler.js index 59bd66dc67..765c851378 100644 --- a/binaries/data/mods/public/gui/pregame/SplashscreenHandler.js +++ b/binaries/data/mods/public/gui/pregame/SplashscreenHandler.js @@ -31,7 +31,9 @@ class SplashScreenHandler this.showSplashScreen = false; if (Engine.ConfigDB_GetValue("user", "gui.splashscreen.enable") === "true" || - Engine.ConfigDB_GetValue("user", "gui.splashscreen.version") !== Engine.CalculateMD5(Engine.ReadFile("gui/splashscreen/splashscreen.xml"))) - Engine.PushGuiPage("page_splashscreen.xml", {}); + Engine.ConfigDB_GetValue("user", "gui.splashscreen.version") !== Engine.CalculateMD5(Engine.ReadFile("gui/splashscreen/splashscreen.xml"))) + { + Engine.OpenChildPage("page_splashscreen.xml", {}); + } } } diff --git a/binaries/data/mods/public/gui/prelobby/entrance/entrance.js b/binaries/data/mods/public/gui/prelobby/entrance/entrance.js index be34802a1c..03eaeb1af2 100644 --- a/binaries/data/mods/public/gui/prelobby/entrance/entrance.js +++ b/binaries/data/mods/public/gui/prelobby/entrance/entrance.js @@ -10,10 +10,10 @@ function init() function loginButton() { - Engine.PushGuiPage("page_prelobby_login.xml"); + Engine.OpenChildPage("page_prelobby_login.xml"); } function registerButton() { - Engine.PushGuiPage("page_prelobby_register.xml"); + Engine.OpenChildPage("page_prelobby_register.xml"); } diff --git a/binaries/data/mods/public/gui/prelobby/register/register.js b/binaries/data/mods/public/gui/prelobby/register/register.js index d56a4ac060..1a99a07b99 100644 --- a/binaries/data/mods/public/gui/prelobby/register/register.js +++ b/binaries/data/mods/public/gui/prelobby/register/register.js @@ -41,5 +41,5 @@ async function onRegistered() Engine.StopXmppClient(); - Engine.PushGuiPage("page_prelobby_login.xml"); + Engine.OpenChildPage("page_prelobby_login.xml"); } diff --git a/binaries/data/mods/public/gui/reference/structree/Boxes/EntityBox.js b/binaries/data/mods/public/gui/reference/structree/Boxes/EntityBox.js index c63e2a9441..c010e63899 100644 --- a/binaries/data/mods/public/gui/reference/structree/Boxes/EntityBox.js +++ b/binaries/data/mods/public/gui/reference/structree/Boxes/EntityBox.js @@ -10,12 +10,10 @@ class EntityBox static setViewerOnPress(guiObject, templateName, civCode) { - let viewerFunc = () => { - Engine.PushGuiPage("page_viewer.xml", { + let viewerFunc = Engine.OpenChildPage.bind(null, "page_viewer.xml", { "templateName": templateName, "civ": civCode }); - }; guiObject.onPress = viewerFunc; guiObject.onPressRight = viewerFunc; } diff --git a/binaries/data/mods/public/gui/session/MenuButtons.js b/binaries/data/mods/public/gui/session/MenuButtons.js index 4fda15821f..1302245649 100644 --- a/binaries/data/mods/public/gui/session/MenuButtons.js +++ b/binaries/data/mods/public/gui/session/MenuButtons.js @@ -20,7 +20,7 @@ MenuButtons.prototype.Manual = class { closeOpenDialogs(); this.pauseControl.implicitPause(); - await Engine.PushGuiPage("page_manual.xml"); + await Engine.OpenChildPage("page_manual.xml"); resumeGame(); } }; @@ -60,7 +60,7 @@ MenuButtons.prototype.Save = class closeOpenDialogs(); this.pauseControl.implicitPause(); - await Engine.PushGuiPage( + await Engine.OpenChildPage( "page_loadgame.xml", { "savedGameData": getSavedGameData(), @@ -103,7 +103,7 @@ MenuButtons.prototype.Summary = class // Allows players to see their own summary. // If they have shared ally vision researched, they are able to see the summary of there allies too. let simState = Engine.GuiInterfaceCall("GetExtendedSimulationState"); - const data = await Engine.PushGuiPage( + const data = await Engine.OpenChildPage( "page_summary.xml", { "sim": { @@ -149,7 +149,7 @@ MenuButtons.prototype.Lobby = class if (!Engine.HasXmppClient()) return; closeOpenDialogs(); - Engine.PushGuiPage("page_lobby.xml", { "dialog": true }); + Engine.OpenChildPage("page_lobby.xml", { "dialog": true }); } }; @@ -167,7 +167,7 @@ MenuButtons.prototype.Options = class closeOpenDialogs(); this.pauseControl.implicitPause(); - fireConfigChangeHandlers(await Engine.PushGuiPage("page_options.xml")); + fireConfigChangeHandlers(await Engine.OpenChildPage("page_options.xml")); resumeGame(); } }; @@ -186,7 +186,7 @@ MenuButtons.prototype.Hotkeys = class closeOpenDialogs(); this.pauseControl.implicitPause(); - await Engine.PushGuiPage("hotkeys/page_hotkeys.xml"); + await Engine.OpenChildPage("hotkeys/page_hotkeys.xml"); resumeGame(); } }; diff --git a/binaries/data/mods/public/gui/session/SessionMessageBox.js b/binaries/data/mods/public/gui/session/SessionMessageBox.js index b3bcb5d0c0..9d17a80632 100644 --- a/binaries/data/mods/public/gui/session/SessionMessageBox.js +++ b/binaries/data/mods/public/gui/session/SessionMessageBox.js @@ -9,7 +9,7 @@ class SessionMessageBox closeOpenDialogs(); g_PauseControl.implicitPause(); - const buttonId = await Engine.PushGuiPage( + const buttonId = await Engine.OpenChildPage( "page_msgbox.xml", { "width": this.Width, diff --git a/binaries/data/mods/public/gui/session/campaigns/CampaignSession.js b/binaries/data/mods/public/gui/session/campaigns/CampaignSession.js index 6aba40bc74..baaf7dbd30 100644 --- a/binaries/data/mods/public/gui/session/campaigns/CampaignSession.js +++ b/binaries/data/mods/public/gui/session/campaigns/CampaignSession.js @@ -23,7 +23,7 @@ class CampaignSession this.endGameData.won = won; // Run the endgame script. - Engine.PushGuiPage(this.getEndGame(), this.endGameData); + Engine.OpenChildPage(this.getEndGame(), this.endGameData); closePageCallback(); } diff --git a/binaries/data/mods/public/gui/session/selection_panels.js b/binaries/data/mods/public/gui/session/selection_panels.js index 287b141e87..16caf5798d 100644 --- a/binaries/data/mods/public/gui/session/selection_panels.js +++ b/binaries/data/mods/public/gui/session/selection_panels.js @@ -1269,7 +1269,7 @@ async function showTemplateDetails(templateName, civCode) return; g_PauseControl.implicitPause(); - await Engine.PushGuiPage( + await Engine.OpenChildPage( "page_viewer.xml", { "templateName": templateName, diff --git a/binaries/data/mods/public/gui/summary/summary.xml b/binaries/data/mods/public/gui/summary/summary.xml index adaeca9df6..84ac23ec40 100644 --- a/binaries/data/mods/public/gui/summary/summary.xml +++ b/binaries/data/mods/public/gui/summary/summary.xml @@ -172,7 +172,7 @@ > if (Engine.HasXmppClient()) - Engine.PushGuiPage("page_lobby.xml", { "dialog": true }); + Engine.OpenChildPage("page_lobby.xml", { "dialog": true }); diff --git a/source/gui/GUIManager.cpp b/source/gui/GUIManager.cpp index ed531ce571..3eb2a0fe39 100644 --- a/source/gui/GUIManager.cpp +++ b/source/gui/GUIManager.cpp @@ -113,10 +113,10 @@ void CGUIManager::SwitchPage(const CStrW& pageName, const ScriptInterface* srcSc m_PageStack.clear(); } - PushPage(pageName, initDataClone); + OpenChildPage(pageName, initDataClone); } -JS::Value CGUIManager::PushPage(const CStrW& pageName, Script::StructuredClone initData) +JS::Value CGUIManager::OpenChildPage(const CStrW& pageName, Script::StructuredClone initData) { // Store the callback handler in the current GUI page before opening the new one JS::RootedValue promise{m_ScriptInterface.GetGeneralJSContext(), [&] @@ -130,8 +130,8 @@ JS::Value CGUIManager::PushPage(const CStrW& pageName, Script::StructuredClone i return m_PageStack.back().ReplacePromise(*currentPage.GetScriptInterface()); }()}; - // Push the page prior to loading its contents, because that may push - // another GUI page on init which should be pushed on top of this new page. + // Emplace the page prior to loading its contents, because that may open + // another GUI page on init which should be emplaced on top of this new page. m_PageStack.emplace_back(pageName, initData); m_PageStack.back().LoadPage(m_ScriptContext); diff --git a/source/gui/GUIManager.h b/source/gui/GUIManager.h index 7fc063e7e1..140b62a3c4 100644 --- a/source/gui/GUIManager.h +++ b/source/gui/GUIManager.h @@ -71,7 +71,7 @@ public: * user inputs. * The returned promise will be fulfilled once the pushed page is closed. */ - JS::Value PushPage(const CStrW& pageName, Script::StructuredClone initData); + JS::Value OpenChildPage(const CStrW& pageName, Script::StructuredClone initData); /** * Called when a file has been modified, to hotload changes. diff --git a/source/gui/Scripting/JSInterface_GUIManager.cpp b/source/gui/Scripting/JSInterface_GUIManager.cpp index e2907f9c47..3e92698905 100644 --- a/source/gui/Scripting/JSInterface_GUIManager.cpp +++ b/source/gui/Scripting/JSInterface_GUIManager.cpp @@ -33,9 +33,9 @@ namespace JSI_GUIManager // Note that the initData argument may only contain clonable data. // Functions aren't supported for example! // It returns a promise. -JS::Value PushGuiPage(const ScriptRequest& rq, const std::wstring& name, JS::HandleValue initData) +JS::Value OpenChildPage(const ScriptRequest& rq, const std::wstring& name, JS::HandleValue initData) { - return g_GUI->PushPage(name, Script::WriteStructuredClone(rq, initData)); + return g_GUI->OpenChildPage(name, Script::WriteStructuredClone(rq, initData)); } void SwitchGuiPage(const ScriptInterface& scriptInterface, const std::wstring& name, JS::HandleValue initData) @@ -66,7 +66,7 @@ CParamNode GetTemplate(const std::string& templateName) void RegisterScriptFunctions(const ScriptRequest& rq) { - ScriptFunction::Register<&PushGuiPage>(rq, "PushGuiPage"); + ScriptFunction::Register<&OpenChildPage>(rq, "OpenChildPage"); ScriptFunction::Register<&SwitchGuiPage>(rq, "SwitchGuiPage"); ScriptFunction::Register<&SetCursor>(rq, "SetCursor"); ScriptFunction::Register<&ResetCursor>(rq, "ResetCursor"); diff --git a/source/gui/tests/test_GuiManager.h b/source/gui/tests/test_GuiManager.h index 1ea3fa205b..b46da35147 100644 --- a/source/gui/tests/test_GuiManager.h +++ b/source/gui/tests/test_GuiManager.h @@ -83,7 +83,7 @@ public: Script::CreateObject(rq, &val); Script::StructuredClone data = Script::WriteStructuredClone(rq, JS::NullHandleValue); - g_GUI->PushPage(L"event/page_event.xml", data); + g_GUI->OpenChildPage(L"event/page_event.xml", data); const ScriptInterface& pageScriptInterface = *(g_GUI->GetActiveGUI()->GetScriptInterface()); ScriptRequest prq(pageScriptInterface); @@ -146,7 +146,7 @@ public: Script::CreateObject(rq, &val); Script::StructuredClone data = Script::WriteStructuredClone(rq, JS::NullHandleValue); - g_GUI->PushPage(L"hotkey/page_hotkey.xml", data); + g_GUI->OpenChildPage(L"hotkey/page_hotkey.xml", data); // Press 'a'. SDL_Event_ hotkeyNotification; @@ -228,11 +228,11 @@ public: Script::WriteStructuredClone(rq, JS::UndefinedHandleValue)}; TS_ASSERT_EQUALS(g_GUI->GetPageCount(), 0); - g_GUI->PushPage(L"regainFocus/page_emptyPage.xml", undefined); + g_GUI->OpenChildPage(L"regainFocus/page_emptyPage.xml", undefined); TS_ASSERT_EQUALS(g_GUI->GetPageCount(), 1); // This page instantly pushes an empty page with a callback that pops another page again. - g_GUI->PushPage(L"regainFocus/page_pushWithPopOnInit.xml", undefined); + g_GUI->OpenChildPage(L"regainFocus/page_pushWithPopOnInit.xml", undefined); TS_ASSERT_EQUALS(g_GUI->GetPageCount(), 3); // Pop the empty page and execute the continuation. @@ -254,7 +254,7 @@ public: const Script::StructuredClone undefined{ Script::WriteStructuredClone(rq, JS::UndefinedHandleValue)}; - g_GUI->PushPage(L"regainFocus/page_emptyPage.xml", undefined); + g_GUI->OpenChildPage(L"regainFocus/page_emptyPage.xml", undefined); for (const auto& [reject, result] : testSteps) @@ -263,7 +263,7 @@ public: const Script::StructuredClone clonedValue{Script::WriteStructuredClone(rq, value)}; const JS::RootedValue promise{rq.cx, - g_GUI->PushPage(L"resolveReject/page_resolveReject.xml", clonedValue)}; + g_GUI->OpenChildPage(L"resolveReject/page_resolveReject.xml", clonedValue)}; // Check whether promises are settled in the page stack and flush the stack. g_GUI->TickObjects(); @@ -277,7 +277,7 @@ public: const ScriptRequest rq{g_GUI->GetScriptInterface()}; const Script::StructuredClone undefined{ Script::WriteStructuredClone(rq, JS::UndefinedHandleValue)}; - g_GUI->PushPage(L"sequential/page_sequential.xml", undefined); + g_GUI->OpenChildPage(L"sequential/page_sequential.xml", undefined); TS_ASSERT_EQUALS(g_GUI->GetPageCount(), 2); CloseTopmostPage(); TS_ASSERT_EQUALS(g_GUI->GetPageCount(), 2);