Index: binaries/data/config/default.cfg
===================================================================
--- binaries/data/config/default.cfg
+++ binaries/data/config/default.cfg
@@ -151,6 +151,7 @@
silhouettes = "Alt+Shift+S" ; Toggle unit silhouettes
showsky = "Alt+Z" ; Toggle sky
summary = "Ctrl+Tab" ; Toggle in-game summary
+options.toggle = "Alt+O" ; Toggle options window
; > CLIPBOARD CONTROLS
copy = "Ctrl+C" ; Copy to clipboard
Index: binaries/data/mods/public/gui/common/functions_global_object.js
===================================================================
--- binaries/data/mods/public/gui/common/functions_global_object.js
+++ binaries/data/mods/public/gui/common/functions_global_object.js
@@ -4,6 +4,11 @@
var g_MessageBoxBtnFunctions = [];
var g_MessageBoxCallbackArgs = [];
+/*
+ * Identifier whether the Options window is shown.
+ */
+var g_OptionsShown = false;
+
var g_MessageBoxCallbackFunction = function(btnCode)
{
if (btnCode !== undefined && g_MessageBoxBtnFunctions[btnCode])
@@ -156,3 +161,14 @@
"mapSettings": Engine.GetInitAttributes().settings
};
}
+
+function showOptions()
+{
+ if (!g_OptionsShown)
+ Engine.PushGuiPage("page_options.xml");
+}
+
+function setOptionsHotkey(func)
+{
+ Engine.GetGUIObjectByName("hotkey.options.toggle").onpress = func || (() => showOptions());
+}
Index: binaries/data/mods/public/gui/common/global.xml
===================================================================
--- binaries/data/mods/public/gui/common/global.xml
+++ binaries/data/mods/public/gui/common/global.xml
@@ -14,6 +14,13 @@
+
+
+
Index: binaries/data/mods/public/gui/lobby/lobby.js
===================================================================
--- binaries/data/mods/public/gui/lobby/lobby.js
+++ binaries/data/mods/public/gui/lobby/lobby.js
@@ -401,6 +401,7 @@
// Get all messages since the login
for (let msg of Engine.LobbyGuiPollHistoricMessages())
g_NetMessageTypes[msg.type][msg.level](msg);
+ setOptionsHotkey();
}
function updateLobbyColumns()
Index: binaries/data/mods/public/gui/manual/intro.txt
===================================================================
--- binaries/data/mods/public/gui/manual/intro.txt
+++ binaries/data/mods/public/gui/manual/intro.txt
@@ -49,6 +49,7 @@
Shift + F11: Save current profiler data to "logs/profile.txt"
F2: Take screenshot (in .png format, location is displayed in the top left of the GUI after the file has been saved, and can also be seen in the console/logs if you miss it there)
Shift + F2: Take huge screenshot (6400px*4800px, in .bmp format, location is displayed in the top left of the GUI after the file has been saved, and can also be seen in the console/logs if you miss it there)
+Alt + O: Toggle options window.
Alt + S: Switch to the next tab.
Alt + W: Switch to the previous tab.
Index: binaries/data/mods/public/gui/options/options.js
===================================================================
--- binaries/data/mods/public/gui/options/options.js
+++ binaries/data/mods/public/gui/options/options.js
@@ -141,6 +141,8 @@
function init(data, hotloadData)
{
+ g_OptionsShown = true;
+
g_HasCallback = hotloadData && hotloadData.callback || data && data.callback;
g_SelectedCategory = hotloadData ? hotloadData.selectedCategory : 0;
@@ -150,6 +152,7 @@
placeTabButtons();
displayOptions();
+ setOptionsHotkey(closePage);
}
function getHotloadData()
@@ -386,8 +389,12 @@
500, 200,
translate("You have unsaved changes, do you want to close this window?"),
translate("Warning"),
- [translate("No"), translate("Yes")],
- [null, closePageWithoutConfirmation]);
+ [translate("No"), translate("Keep temporary and close"), translate("Save and close")],
+ [null, closePageWithoutConfirmation, () => {
+ saveChanges();
+ closePageWithoutConfirmation();
+ }]
+ );
else
closePageWithoutConfirmation();
}
@@ -398,4 +405,5 @@
Engine.PopGuiPageCB();
else
Engine.PopGuiPage();
+ g_OptionsShown = false;
}
Index: binaries/data/mods/public/gui/page_replaymenu.xml
===================================================================
--- binaries/data/mods/public/gui/page_replaymenu.xml
+++ binaries/data/mods/public/gui/page_replaymenu.xml
@@ -8,6 +8,8 @@
common/sprites.xml
common/styles.xml
+ common/global.xml
+
replaymenu/sprites.xml
replaymenu/replay_menu.xml
Index: binaries/data/mods/public/gui/pregame/mainmenu.js
===================================================================
--- binaries/data/mods/public/gui/pregame/mainmenu.js
+++ binaries/data/mods/public/gui/pregame/mainmenu.js
@@ -38,6 +38,7 @@
guiObj.sprite = g_BackgroundLayerset[i].sprite;
guiObj.z = i;
}
+ setOptionsHotkey();
}
function getHotloadData()
Index: binaries/data/mods/public/gui/session/session.js
===================================================================
--- binaries/data/mods/public/gui/session/session.js
+++ binaries/data/mods/public/gui/session/session.js
@@ -300,6 +300,7 @@
g_Selection.selected = hotloadData.selection;
initChatWindow();
+ setOptionsHotkey();
sendLobbyPlayerlistUpdate();
onSimulationUpdate();