From f23df59e6363de7c89ea1a1c8c9a75acae0e1a5c Mon Sep 17 00:00:00 2001 From: sway2020 <65274619+sway2020@users.noreply.github.com> Date: Fri, 10 Dec 2021 20:25:40 -0800 Subject: [PATCH] Add new keyboard shortcut to hide toolbar panels --- src/GUI/UIThreading.cs | 23 ++++++------- src/Icons/Collapse-Inverted.png | Bin 0 -> 10884 bytes src/Icons/Expand-Inverted.png | Bin 0 -> 12035 bytes src/ModInfo.cs | 11 +++--- src/ModSettings.cs | 4 +++ src/OptionsKeymapping.cs | 13 +++++++ src/Properties/AssemblyInfo.cs | 2 +- src/Translations/en.xml | 1 + src/YetAnotherToolbar.cs | 59 +++++++++++++++++++++++++------- src/YetAnotherToolbar.csproj | 2 ++ 10 files changed, 85 insertions(+), 30 deletions(-) create mode 100644 src/Icons/Collapse-Inverted.png create mode 100644 src/Icons/Expand-Inverted.png diff --git a/src/GUI/UIThreading.cs b/src/GUI/UIThreading.cs index 60a1219..ed4e017 100644 --- a/src/GUI/UIThreading.cs +++ b/src/GUI/UIThreading.cs @@ -26,6 +26,7 @@ public override void OnUpdate(float realTimeDelta, float simulationTimeDelta) KeyCode modeToggleKey = (KeyCode)(Settings.modeToggleKey.keyCode); KeyCode quickMenuKey = (KeyCode)(Settings.quickMenuKey.keyCode); + KeyCode hideMenuKey = (KeyCode)(Settings.hideMenuKey.keyCode); // Null checks for safety. // Check modifier keys according to settings. @@ -42,6 +43,10 @@ public override void OnUpdate(float realTimeDelta, float simulationTimeDelta) { ProcessPressedKey(1); } + else if (quickMenuKey != KeyCode.None && Input.GetKey(hideMenuKey) && CheckHotkey(Settings.hideMenuKey, altPressed, ctrlPressed, shiftPressed)) + { + ProcessPressedKey(2); + } else { // Relevant keys aren't pressed anymore; this keystroke is over, so reset and continue. @@ -79,24 +84,16 @@ public void ProcessPressedKey(int index) YetAnotherToolbar.instance.Expand(); YetAnotherToolbar.instance.mainButton.normalFgSprite = "Collapse"; } - - // show update notice - if (!YetAnotherToolbar.instance.shownUpdateNoticeFlag) - { - YetAnotherToolbar.instance.shownUpdateNoticeFlag = true; - // show update notice - if (!Settings.disableUpdateNotice && (ModInfo.updateNoticeDate > Settings.lastUpdateNotice)) - { - UIUpdateNoticePopUp.ShowAt(); - Settings.lastUpdateNotice = ModInfo.updateNoticeDate; - XMLUtils.SaveSettings(); - } - } + } else if (index == 1) { UIQuickMenuPopUp.ShowAt(YetAnotherToolbar.instance.mainButton); } + else if (index == 2) + { + YetAnotherToolbar.instance.ToggleMenuVisibility(); + } } catch (Exception e) diff --git a/src/Icons/Collapse-Inverted.png b/src/Icons/Collapse-Inverted.png new file mode 100644 index 0000000000000000000000000000000000000000..73361ddfa2e3230f6512efacff4ef85b4da025b2 GIT binary patch literal 10884 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 V;l^s!PuP?InyR`gFO_Tq{|ledSqA_B literal 0 HcmV?d00001 diff --git a/src/Icons/Expand-Inverted.png b/src/Icons/Expand-Inverted.png new file mode 100644 index 0000000000000000000000000000000000000000..63799a6b24a4a2bc79b48f75b8a6cd0a45a38af9 GIT binary patch literal 12035 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 "Yet Another Toolbar " + version; public string Description { get { return Translations.Translate("YAT_DESC"); } } - public const double updateNoticeDate = 20210921; + public const double updateNoticeDate = 20211210; public const string updateNotice = - "- Fix the main button position issue on non-16:9 resolutions\n\n" + + "- New keyboard shortcut (Alt+Space) to quickly hide toolbar panels\n\n" + - "- Offset and row/column numbers now can be manually entered\n\n"; + " Unlike closing a panel, you can continue placing selected assets when the panels are hidden\n" + + " This should be useful when the panels are expanded to 3+ rows\n" + + " YAT\'s main button will be shown in inverted colors when this feature is active\n"; public void OnEnabled() { @@ -116,6 +118,7 @@ public void OnSettingsUI(UIHelperBase helper) // shortcut keys panel.gameObject.AddComponent(); panel.gameObject.AddComponent(); + panel.gameObject.AddComponent(); group.AddSpace(10); } diff --git a/src/ModSettings.cs b/src/ModSettings.cs index 7631a1c..33224e7 100644 --- a/src/ModSettings.cs +++ b/src/ModSettings.cs @@ -28,6 +28,7 @@ internal static class Settings internal static KeyBinding modeToggleKey = new KeyBinding { keyCode = (int)KeyCode.T, control = false, shift = false, alt = true }; internal static KeyBinding quickMenuKey = new KeyBinding { keyCode = (int)KeyCode.Q, control = false, shift = false, alt = true }; + internal static KeyBinding hideMenuKey = new KeyBinding { keyCode = (int)KeyCode.Space, control = false, shift = false, alt = true }; } ///

@@ -84,6 +85,9 @@ public class XMLSettingsFile [XmlElement("quickMenuKey")] public KeyBinding QuickMenuKey { get => Settings.quickMenuKey; set => Settings.quickMenuKey = value; } + [XmlElement("hideMenuKey")] + public KeyBinding HideMenuKey { get => Settings.hideMenuKey; set => Settings.hideMenuKey = value; } + [XmlElement("Language")] public string Language { diff --git a/src/OptionsKeymapping.cs b/src/OptionsKeymapping.cs index 63da857..8ef49e0 100644 --- a/src/OptionsKeymapping.cs +++ b/src/OptionsKeymapping.cs @@ -246,4 +246,17 @@ public override void UpdateSettingKeyBinding() Settings.quickMenuKey = keyBinding; } } + + public class HideMenuKeyMapping : OptionsKeymapping + { + HideMenuKeyMapping() + { + keyBinding = Settings.hideMenuKey; + labelString = Translations.Translate("YAT_SET_HMKEY"); + } + public override void UpdateSettingKeyBinding() + { + Settings.hideMenuKey = keyBinding; + } + } } \ No newline at end of file diff --git a/src/Properties/AssemblyInfo.cs b/src/Properties/AssemblyInfo.cs index 46922cd..83def0a 100644 --- a/src/Properties/AssemblyInfo.cs +++ b/src/Properties/AssemblyInfo.cs @@ -29,5 +29,5 @@ // Build Number // Revision // -[assembly: AssemblyVersion("1.0.2")] +[assembly: AssemblyVersion("1.0.3")] //[assembly: AssemblyFileVersion("1.1")] diff --git a/src/Translations/en.xml b/src/Translations/en.xml index 5e5bf51..6786fa9 100644 --- a/src/Translations/en.xml +++ b/src/Translations/en.xml @@ -25,6 +25,7 @@ + diff --git a/src/YetAnotherToolbar.cs b/src/YetAnotherToolbar.cs index 72b3057..94cdd8d 100644 --- a/src/YetAnotherToolbar.cs +++ b/src/YetAnotherToolbar.cs @@ -20,6 +20,9 @@ public class YetAnotherToolbar : MonoBehaviour private Dictionary dictVerticalScrollbars = new Dictionary(); public bool shownUpdateNoticeFlag = false; + private bool hideMenuFlag = false; + private Vector2 lastMenuPosition; + public void Start() { try @@ -70,18 +73,6 @@ public void Start() mainButton.normalFgSprite = "Collapse"; } - // show update notice - if (!YetAnotherToolbar.instance.shownUpdateNoticeFlag) - { - YetAnotherToolbar.instance.shownUpdateNoticeFlag = true; - // show update notice - if (!Settings.disableUpdateNotice && (ModInfo.updateNoticeDate > Settings.lastUpdateNotice)) - { - UIUpdateNoticePopUp.ShowAt(); - Settings.lastUpdateNotice = ModInfo.updateNoticeDate; - XMLUtils.SaveSettings(); - } - } }; } } @@ -105,6 +96,19 @@ public void Update() Expand(); } UpdateBackground(); + + // show update notice + if (!YetAnotherToolbar.instance.shownUpdateNoticeFlag) + { + YetAnotherToolbar.instance.shownUpdateNoticeFlag = true; + // show update notice + if (!Settings.disableUpdateNotice && (ModInfo.updateNoticeDate > Settings.lastUpdateNotice)) + { + UIUpdateNoticePopUp.ShowAt(); + Settings.lastUpdateNotice = ModInfo.updateNoticeDate; + XMLUtils.SaveSettings(); + } + } } } @@ -116,6 +120,8 @@ private static UITextureAtlas LoadResources() { "Collapse", "Expand", + "Collapse-Inverted", + "Expand-Inverted", "SubcategoriesPanel75", "SubcategoriesPanel50", "SubcategoriesPanel25", @@ -179,8 +185,35 @@ public void RestoreScale() tsContainer.transform.localScale = new Vector2(Settings.toolbarScale, Settings.toolbarScale); } + public void ToggleMenuVisibility() + { + if (!this.hideMenuFlag) + { + this.hideMenuFlag = true; + lastMenuPosition = tsContainer.relativePosition; + tsContainer.relativePosition = new Vector2(-50000, -50000); + + if (Settings.expanded) mainButton.normalFgSprite = "Collapse-Inverted"; + else mainButton.normalFgSprite = "Expand-Inverted"; + } + else + { + this.hideMenuFlag = false; + tsContainer.relativePosition = this.lastMenuPosition; + if (Settings.expanded) mainButton.normalFgSprite = "Collapse"; + else mainButton.normalFgSprite = "Expand"; + } + } + + public void CheckMenuVisibility() + { + if (!this.hideMenuFlag) return; + ToggleMenuVisibility(); + } + public void UpdatePanelPosition() { + CheckMenuVisibility(); UIView view = UIView.GetAView(); float x = (596f * view.GetScreenResolution().x / 1920f) + Settings.horizontalOffset; float y = -110f + Settings.verticalOffset; @@ -196,8 +229,10 @@ public void UpdatePanelPosition() } + private void UpdateLayout(int numOfRows, int numOfCols) { + CheckMenuVisibility(); try { UITabContainer gtsContainer; diff --git a/src/YetAnotherToolbar.csproj b/src/YetAnotherToolbar.csproj index ac285be..96b10e1 100644 --- a/src/YetAnotherToolbar.csproj +++ b/src/YetAnotherToolbar.csproj @@ -88,6 +88,8 @@ + +