From ae24ad7a31cb070b19eed318f6e1e728b44340b5 Mon Sep 17 00:00:00 2001 From: DRVeyl Date: Sun, 27 Feb 2022 19:51:02 -0500 Subject: [PATCH] Settings page controls update rate display toggle Don't implement toggle in selected DispalyModules, implement globally in Settings. Access static value via GuiUtils. Per-window refresh rate currently implemented for Ascent Guidance and Custom Info Window as copy-pasta. --- MechJeb2/GuiUtils.cs | 1 + MechJeb2/MechJebModuleAscentGuidance.cs | 3 +-- MechJeb2/MechJebModuleCustomInfoWindow.cs | 3 +-- MechJeb2/MechJebModuleSettings.cs | 6 ++++++ 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/MechJeb2/GuiUtils.cs b/MechJeb2/GuiUtils.cs index e70bd6406..ce6bd2388 100644 --- a/MechJeb2/GuiUtils.cs +++ b/MechJeb2/GuiUtils.cs @@ -414,6 +414,7 @@ public enum SkinType { Default, MechJeb1, Compact } public static int scaledScreenWidth = 1; public static int scaledScreenHeight = 1; public static bool dontUseDropDownMenu = false; + public static bool showAdvancedWindowSettings = false; public static GUISkin defaultSkin; public static GUISkin compactSkin; public static GUISkin transparentSkin; diff --git a/MechJeb2/MechJebModuleAscentGuidance.cs b/MechJeb2/MechJebModuleAscentGuidance.cs index 52978ec1d..0b2277378 100644 --- a/MechJeb2/MechJebModuleAscentGuidance.cs +++ b/MechJeb2/MechJebModuleAscentGuidance.cs @@ -545,11 +545,10 @@ private void UpdateStrings() } } - private bool advancedSettings = false; private void RefreshRateGUI() { int oldRate = refreshRate; - if (advancedSettings = GUILayout.Toggle(advancedSettings,"Advanced Window Settings")) + if (GuiUtils.showAdvancedWindowSettings) GuiUtils.SimpleTextBox("Update Interval",refreshRate,"Hz"); if (oldRate != refreshRate) { diff --git a/MechJeb2/MechJebModuleCustomInfoWindow.cs b/MechJeb2/MechJebModuleCustomInfoWindow.cs index 54af2cede..5a27952d9 100644 --- a/MechJeb2/MechJebModuleCustomInfoWindow.cs +++ b/MechJeb2/MechJebModuleCustomInfoWindow.cs @@ -69,11 +69,10 @@ public virtual void UpdateWindowItems() lastRefresh = now; } - private bool advancedSettings = false; private void RefreshRateGUI() { int oldRate = refreshRate; - if (advancedSettings = GUILayout.Toggle(advancedSettings,"Advanced Window Settings")) + if (GuiUtils.showAdvancedWindowSettings) GuiUtils.SimpleTextBox("Update Interval",refreshRate,"Hz"); if (oldRate != refreshRate) { diff --git a/MechJeb2/MechJebModuleSettings.cs b/MechJeb2/MechJebModuleSettings.cs index 935db027b..e4771b314 100644 --- a/MechJeb2/MechJebModuleSettings.cs +++ b/MechJeb2/MechJebModuleSettings.cs @@ -33,6 +33,9 @@ public MechJebModuleSettings(MechJebCore core) : base(core) [ToggleInfoItem("#MechJeb_rssMode", InfoItem.Category.Misc), Persistent(pass = (int)Pass.Global)]//Module disabling does not kill throttle (RSS/RO) public bool rssMode = false; + [Persistent(pass = (int)Pass.Global)] + public bool showAdvancedWindowSettings = false; + public override void OnLoad(ConfigNode local, ConfigNode type, ConfigNode global) { base.OnLoad(local, type, global); @@ -96,6 +99,9 @@ protected override void WindowGUI(int windowID) dontUseDropDownMenu = GUILayout.Toggle(dontUseDropDownMenu, Localizer.Format("#MechJeb_Settings_checkbox1"));//"Replace drop down menu with arrow selector" GuiUtils.dontUseDropDownMenu = dontUseDropDownMenu; + showAdvancedWindowSettings = GUILayout.Toggle(showAdvancedWindowSettings,"Show Advanced Window Settings"); + GuiUtils.showAdvancedWindowSettings = showAdvancedWindowSettings; + MechJebModuleCustomWindowEditor ed = core.GetComputerModule(); ed.registry.Find(i => i.id == "Toggle:Settings.hideBrakeOnEject").DrawItem();