From 364eaa34c65a0e00d32f82e1fc583cafc2630632 Mon Sep 17 00:00:00 2001 From: Itms Date: Sun, 22 Apr 2018 12:03:51 +0000 Subject: [PATCH] Move some utility functions from the public mod to the mod mod in preparation for upcoming commit. Small fixes and improvement while I'm at it, by temple and elexis. This was SVN commit r21754. --- .../mods/mod/gui/common/functions_msgbox.js | 48 ++++++++++++++++++ binaries/data/mods/mod/gui/common/l10n.js | 15 +++++- .../mods/{public => mod}/gui/msgbox/msgbox.js | 0 .../{public => mod}/gui/msgbox/msgbox.xml | 0 .../mods/{public => mod}/gui/page_msgbox.xml | 1 - binaries/data/mods/mod/l10n/messages.json | 4 +- .../gui/common/functions_global_object.js | 49 ------------------- .../public/gui/common/functions_utility.js | 11 ----- binaries/data/mods/public/l10n/messages.json | 2 - 9 files changed, 64 insertions(+), 66 deletions(-) create mode 100644 binaries/data/mods/mod/gui/common/functions_msgbox.js rename binaries/data/mods/{public => mod}/gui/msgbox/msgbox.js (100%) rename binaries/data/mods/{public => mod}/gui/msgbox/msgbox.xml (100%) rename binaries/data/mods/{public => mod}/gui/page_msgbox.xml (85%) diff --git a/binaries/data/mods/mod/gui/common/functions_msgbox.js b/binaries/data/mods/mod/gui/common/functions_msgbox.js new file mode 100644 index 0000000000..a83a5eecc2 --- /dev/null +++ b/binaries/data/mods/mod/gui/common/functions_msgbox.js @@ -0,0 +1,48 @@ +// We want to pass callback functions for the different buttons in a convenient way. +// Because passing functions accross compartment boundaries is a pain, we just store them here together with some optional arguments. +// The messageBox page will return the code of the pressed button and the according function will be called. +var g_MessageBoxBtnFunctions = []; +var g_MessageBoxCallbackArgs = []; + +function messageBoxCallbackFunction(btnCode) +{ + if (btnCode !== undefined && g_MessageBoxBtnFunctions[btnCode]) + { + // Cache the variables to make it possible to call a messageBox from a callback function. + let callbackFunction = g_MessageBoxBtnFunctions[btnCode]; + let callbackArgs = g_MessageBoxCallbackArgs[btnCode]; + + g_MessageBoxBtnFunctions = []; + g_MessageBoxCallbackArgs = []; + + if (callbackArgs !== undefined) + callbackFunction(callbackArgs); + else + callbackFunction(); + return; + } + + g_MessageBoxBtnFunctions = []; + g_MessageBoxCallbackArgs = []; +}; + +function messageBox(mbWidth, mbHeight, mbMessage, mbTitle, mbButtonCaptions, mbBtnCode, mbCallbackArgs) +{ + if (g_MessageBoxBtnFunctions && g_MessageBoxBtnFunctions.length) + { + warn("A messagebox was called when a previous callback function is still set, aborting!"); + return; + } + + g_MessageBoxBtnFunctions = mbBtnCode; + g_MessageBoxCallbackArgs = mbCallbackArgs || g_MessageBoxCallbackArgs; + + Engine.PushGuiPage("page_msgbox.xml", { + "width": mbWidth, + "height": mbHeight, + "message": mbMessage, + "title": mbTitle, + "buttonCaptions": mbButtonCaptions, + "callback": mbBtnCode && "messageBoxCallbackFunction" + }); +} diff --git a/binaries/data/mods/mod/gui/common/l10n.js b/binaries/data/mods/mod/gui/common/l10n.js index 555addddee..0bbbf1dcc7 100644 --- a/binaries/data/mods/mod/gui/common/l10n.js +++ b/binaries/data/mods/mod/gui/common/l10n.js @@ -1,3 +1,16 @@ +/** + * Convert time in milliseconds to [HH:]mm:ss string representation. + * + * @param time Time period in milliseconds (integer) + * @return String representing time period + */ +function timeToString(time) +{ + return Engine.FormatMillisecondsIntoDateStringGMT(time, time < 1000 * 60 * 60 ? + // Translation: Time-format string. See http://userguide.icu-project.org/formatparse/datetime for a guide to the meaning of the letters. + translate("mm:ss") : translate("HH:mm:ss")); +} + /** * These functions rely on the JS cache where possible and * should be prefered over the Engine.Translate ones to optimize the performance. @@ -44,7 +57,7 @@ function translatePlural(singularMessage, pluralMessage, number) function translateWithContext(context, message) { if (!g_TranslationsWithContext[context]) - g_TranslationsWithContext[context] = {} + g_TranslationsWithContext[context] = {}; if (!g_TranslationsWithContext[context][message]) g_TranslationsWithContext[context][message] = Engine.TranslateWithContext(context, message); diff --git a/binaries/data/mods/public/gui/msgbox/msgbox.js b/binaries/data/mods/mod/gui/msgbox/msgbox.js similarity index 100% rename from binaries/data/mods/public/gui/msgbox/msgbox.js rename to binaries/data/mods/mod/gui/msgbox/msgbox.js diff --git a/binaries/data/mods/public/gui/msgbox/msgbox.xml b/binaries/data/mods/mod/gui/msgbox/msgbox.xml similarity index 100% rename from binaries/data/mods/public/gui/msgbox/msgbox.xml rename to binaries/data/mods/mod/gui/msgbox/msgbox.xml diff --git a/binaries/data/mods/public/gui/page_msgbox.xml b/binaries/data/mods/mod/gui/page_msgbox.xml similarity index 85% rename from binaries/data/mods/public/gui/page_msgbox.xml rename to binaries/data/mods/mod/gui/page_msgbox.xml index bfada3f703..f15226e0a5 100644 --- a/binaries/data/mods/public/gui/page_msgbox.xml +++ b/binaries/data/mods/mod/gui/page_msgbox.xml @@ -5,5 +5,4 @@ common/modern/sprites.xml msgbox/msgbox.xml - common/global.xml diff --git a/binaries/data/mods/mod/l10n/messages.json b/binaries/data/mods/mod/l10n/messages.json index e6edfaf7f4..f1fb95c293 100644 --- a/binaries/data/mods/mod/l10n/messages.json +++ b/binaries/data/mods/mod/l10n/messages.json @@ -8,7 +8,7 @@ { "extractor": "javascript", "filemasks": [ - "gui/modmod/**.js" + "gui/**.js" ], "options": { "format": "javascript-format", @@ -28,7 +28,7 @@ { "extractor": "xml", "filemasks": [ - "gui/modmod/**.xml" + "gui/**.xml" ], "options": { "format": "none", 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 ea06f1836e..b33ff49cd9 100644 --- a/binaries/data/mods/public/gui/common/functions_global_object.js +++ b/binaries/data/mods/public/gui/common/functions_global_object.js @@ -1,52 +1,3 @@ -// We want to pass callback functions for the different buttons in a convenient way. -// Because passing functions accross compartment boundaries is a pain, we just store them here together with some optional arguments. -// The messageBox page will return the code of the pressed button and the according function will be called. -var g_MessageBoxBtnFunctions = []; -var g_MessageBoxCallbackArgs = []; - -var g_MessageBoxCallbackFunction = function(btnCode) -{ - if (btnCode !== undefined && g_MessageBoxBtnFunctions[btnCode]) - { - // Cache the variables to make it possible to call a messageBox from a callback function. - let callbackFunction = g_MessageBoxBtnFunctions[btnCode]; - let callbackArgs = g_MessageBoxCallbackArgs[btnCode]; - - g_MessageBoxBtnFunctions = []; - g_MessageBoxCallbackArgs = []; - - if (callbackArgs !== undefined) - callbackFunction(callbackArgs); - else - callbackFunction(); - return; - } - - g_MessageBoxBtnFunctions = []; - g_MessageBoxCallbackArgs = []; -}; - -function messageBox(mbWidth, mbHeight, mbMessage, mbTitle, mbButtonCaptions, mbBtnCode, mbCallbackArgs) -{ - if (g_MessageBoxBtnFunctions && g_MessageBoxBtnFunctions.length) - { - warn("A messagebox was called when a previous callback function is still set, aborting!"); - return; - } - - g_MessageBoxBtnFunctions = mbBtnCode; - g_MessageBoxCallbackArgs = mbCallbackArgs || g_MessageBoxCallbackArgs; - - Engine.PushGuiPage("page_msgbox.xml", { - "width": mbWidth, - "height": mbHeight, - "message": mbMessage, - "title": mbTitle, - "buttonCaptions": mbButtonCaptions, - "callback": mbBtnCode && "g_MessageBoxCallbackFunction" - }); -} - function openURL(url) { Engine.OpenURL(url); diff --git a/binaries/data/mods/public/gui/common/functions_utility.js b/binaries/data/mods/public/gui/common/functions_utility.js index dd9fa954db..aa212d26e2 100644 --- a/binaries/data/mods/public/gui/common/functions_utility.js +++ b/binaries/data/mods/public/gui/common/functions_utility.js @@ -105,17 +105,6 @@ function translateMapTitle(mapTitle) return mapTitle == "random" ? translateWithContext("map selection", "Random") : translate(mapTitle); } -/** - * Convert time in milliseconds to [hh:]mm:ss string representation. - * @param time Time period in milliseconds (integer) - * @return String representing time period - */ -function timeToString(time) -{ - return Engine.FormatMillisecondsIntoDateStringGMT(time, time < 1000 * 60 * 60 ? - translate("mm:ss") : translate("HH:mm:ss")); -} - function removeDupes(array) { // loop backwards to make splice operations cheaper diff --git a/binaries/data/mods/public/l10n/messages.json b/binaries/data/mods/public/l10n/messages.json index d2c2bb9d93..ae2562b9e5 100644 --- a/binaries/data/mods/public/l10n/messages.json +++ b/binaries/data/mods/public/l10n/messages.json @@ -240,7 +240,6 @@ "gui/common/**.js", "gui/credits/**.js", "gui/locale/**.js", - "gui/msgbox/**.js", "gui/options/**.js", "gui/pregame/**.js", "gui/reference/common/**.js", @@ -276,7 +275,6 @@ "gui/common/**.xml", "gui/credits/**.xml", "gui/locale/**.xml", - "gui/msgbox/**.xml", "gui/options/**.xml", "gui/pregame/**.xml", "gui/reference/structree/**.xml",