From d5642b6558a9574f44adfaafc6335d9824a27cd5 Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Tue, 21 Dec 2021 08:29:15 -0500 Subject: [PATCH] Added safe mode toggle to Preferences menu --- BeefLibs/Beefy2D/src/sys/SysMenu.bf | 6 ++++++ BeefLibs/Beefy2D/src/widgets/IMenu.bf | 1 + BeefLibs/Beefy2D/src/widgets/Menu.bf | 5 +++++ IDE/src/Commands.bf | 1 + IDE/src/IDEApp.bf | 20 ++++++++++++++------ 5 files changed, 27 insertions(+), 6 deletions(-) diff --git a/BeefLibs/Beefy2D/src/sys/SysMenu.bf b/BeefLibs/Beefy2D/src/sys/SysMenu.bf index 4dc7cda1..a125a554 100644 --- a/BeefLibs/Beefy2D/src/sys/SysMenu.bf +++ b/BeefLibs/Beefy2D/src/sys/SysMenu.bf @@ -69,6 +69,12 @@ namespace Beefy.sys Modify(mText, mHotKey, mBitmap, mEnabled, mCheckState, mRadioCheck); } + public void SetCheckState(int32 checkState) + { + mCheckState = checkState; + Modify(mText, mHotKey, mBitmap, mEnabled, mCheckState, mRadioCheck); + } + public void SetHotKey(StringView hotKey) { if (hotKey.IsNull) diff --git a/BeefLibs/Beefy2D/src/widgets/IMenu.bf b/BeefLibs/Beefy2D/src/widgets/IMenu.bf index a2174048..5156ffbf 100644 --- a/BeefLibs/Beefy2D/src/widgets/IMenu.bf +++ b/BeefLibs/Beefy2D/src/widgets/IMenu.bf @@ -10,6 +10,7 @@ namespace Beefy.widgets public interface IMenu { void SetDisabled(bool enable); + void SetCheckState(int32 checkState); } public interface IMenuContainer diff --git a/BeefLibs/Beefy2D/src/widgets/Menu.bf b/BeefLibs/Beefy2D/src/widgets/Menu.bf index dd6adfc5..2cfdf1dc 100644 --- a/BeefLibs/Beefy2D/src/widgets/Menu.bf +++ b/BeefLibs/Beefy2D/src/widgets/Menu.bf @@ -616,5 +616,10 @@ namespace Beefy.widgets { mDisabled = disabled; } + + public void SetCheckState(int32 checkState) + { + + } } } diff --git a/IDE/src/Commands.bf b/IDE/src/Commands.bf index 7883e4b2..3ba093c2 100644 --- a/IDE/src/Commands.bf +++ b/IDE/src/Commands.bf @@ -253,6 +253,7 @@ namespace IDE Add("Run Normal Tests", new () => { gApp.[Friend]RunTests(false, false); }); Add("Run To Cursor", new => gApp.[Friend]RunToCursor); Add("Run Without Compiling", new => gApp.[Friend]RunWithoutCompiling); + Add("Safe Mode Toggle", new () => { gApp.SafeModeToggle(); }); Add("Save All", new () => { gApp.SaveAll(); }); Add("Save As", new () => { gApp.SaveAs(); }); Add("Save File", new => gApp.SaveFile); diff --git a/IDE/src/IDEApp.bf b/IDE/src/IDEApp.bf index c27fc710..ac1dcbf4 100644 --- a/IDE/src/IDEApp.bf +++ b/IDE/src/IDEApp.bf @@ -4895,6 +4895,14 @@ namespace IDE CreateDefaultLayout(false); } + [IDECommand] + public void SafeModeToggle() + { + mSafeMode = !mSafeMode; + mNoResolve = mSafeMode; + mWantsBeefClean = true; + } + [IDECommand] public void ShowKeyboardShortcuts() { @@ -5331,6 +5339,7 @@ namespace IDE AddMenuItem(prefMenu, "&Settings", "Settings"); AddMenuItem(prefMenu, "Reload Settings", "Reload Settings"); AddMenuItem(prefMenu, "Reset UI", "Reset UI"); + AddMenuItem(prefMenu, "Safe Mode", "Safe Mode Toggle", new (menu) => { menu.SetCheckState(mSafeMode ? 1 : 0); }, null, true, mSafeMode ? 1 : 0); AddMenuItem(subMenu, "Close Workspace", "Close Workspace", new => UpdateMenuItem_HasWorkspace); AddMenuItem(subMenu, "E&xit", "Exit"); @@ -12078,11 +12087,11 @@ namespace IDE if (mErrorsPanel != null) mErrorsPanel.ClearParserErrors(null); - delete mBfResolveCompiler; - delete mBfResolveSystem; - delete mBfResolveHelper; - delete mBfBuildCompiler; - delete mBfBuildSystem; + DeleteAndNullify!(mBfResolveCompiler); + DeleteAndNullify!(mBfResolveSystem); + DeleteAndNullify!(mBfResolveHelper); + DeleteAndNullify!(mBfBuildCompiler); + DeleteAndNullify!(mBfBuildSystem); /// mDebugger.FullReportMemory(); @@ -13736,7 +13745,6 @@ namespace IDE [Import("user32.lib"), CLink, CallingConvention(.Stdcall)] public static extern bool MessageBeep(MessageBeepType type); #endif - } static