From ce4ce0bacc59b5705610a1f81c6a2ce5021f3a52 Mon Sep 17 00:00:00 2001 From: adelikat Date: Mon, 28 Jul 2014 01:51:11 +0000 Subject: [PATCH] Convert some static methods in ToolHelpers to extension methods --- .../BizHawk.Client.EmuHawk.csproj | 1 + .../Extensions/ToolExtensions.cs | 59 +++++++++++++++++++ BizHawk.Client.EmuHawk/MainForm.Events.cs | 13 +--- BizHawk.Client.EmuHawk/MainForm.cs | 5 +- BizHawk.Client.EmuHawk/tools/Cheats/Cheats.cs | 6 +- .../tools/HexEditor/HexEditor.cs | 8 +-- .../tools/Lua/LuaConsole.cs | 7 ++- BizHawk.Client.EmuHawk/tools/PCE/PCECDL.cs | 5 +- .../tools/TAStudio/TAStudio.cs | 6 +- BizHawk.Client.EmuHawk/tools/ToolHelpers.cs | 53 ----------------- .../tools/Watch/RamSearch.cs | 6 +- .../tools/Watch/RamWatch.cs | 9 +-- 12 files changed, 87 insertions(+), 91 deletions(-) create mode 100644 BizHawk.Client.EmuHawk/Extensions/ToolExtensions.cs diff --git a/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj b/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj index dabafde2bb..40c54f7f43 100644 --- a/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj +++ b/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj @@ -498,6 +498,7 @@ + diff --git a/BizHawk.Client.EmuHawk/Extensions/ToolExtensions.cs b/BizHawk.Client.EmuHawk/Extensions/ToolExtensions.cs new file mode 100644 index 0000000000..85e3089e5f --- /dev/null +++ b/BizHawk.Client.EmuHawk/Extensions/ToolExtensions.cs @@ -0,0 +1,59 @@ +using System; +using System.Collections.Generic; +using System.Windows.Forms; + +using BizHawk.Client.Common; + +namespace BizHawk.Client.EmuHawk.ToolExtensions +{ + public static class ToolExtensions + { + public static ToolStripItem[] RecentMenu(this RecentFiles recent, Action loadFileCallback, bool autoload = false) + { + var items = new List(); + + if (recent.Empty) + { + var none = new ToolStripMenuItem { Enabled = false, Text = "None" }; + items.Add(none); + } + else + { + foreach (var filename in recent) + { + var temp = filename; + var item = new ToolStripMenuItem { Text = temp }; + item.Click += (o, ev) => loadFileCallback(temp); + items.Add(item); + } + } + + items.Add(new ToolStripSeparator()); + + var clearitem = new ToolStripMenuItem { Text = "&Clear" }; + clearitem.Click += (o, ev) => recent.Clear(); + items.Add(clearitem); + + if (autoload) + { + var auto = new ToolStripMenuItem { Text = "&Autoload", Checked = recent.AutoLoad }; + auto.Click += (o, ev) => recent.ToggleAutoLoad(); + items.Add(auto); + } + + return items.ToArray(); + } + + public static void HandleLoadError(this RecentFiles recent, string path) + { + GlobalWin.Sound.StopSound(); + var result = MessageBox.Show("Could not open " + path + "\nRemove from list?", "File not found", MessageBoxButtons.YesNo, MessageBoxIcon.Error); + if (result == DialogResult.Yes) + { + recent.Remove(path); + } + + GlobalWin.Sound.StartSound(); + } + } +} diff --git a/BizHawk.Client.EmuHawk/MainForm.Events.cs b/BizHawk.Client.EmuHawk/MainForm.Events.cs index 77c3627c46..2c0363af8e 100644 --- a/BizHawk.Client.EmuHawk/MainForm.Events.cs +++ b/BizHawk.Client.EmuHawk/MainForm.Events.cs @@ -18,6 +18,7 @@ using BizHawk.Client.Common; using BizHawk.Client.EmuHawk.config.NES; using BizHawk.Client.EmuHawk.CustomControls; using BizHawk.Client.EmuHawk.WinFormExtensions; +using BizHawk.Client.EmuHawk.ToolExtensions; namespace BizHawk.Client.EmuHawk { @@ -41,11 +42,7 @@ namespace BizHawk.Client.EmuHawk { RecentRomSubMenu.DropDownItems.Clear(); RecentRomSubMenu.DropDownItems.AddRange( - ToolHelpers.GenerateRecentMenu(Global.Config.RecentRoms, LoadRomFromRecent) - ); - RecentRomSubMenu.DropDownItems.Add( - ToolHelpers.GenerateAutoLoadItem(Global.Config.RecentRoms) - ); + Global.Config.RecentRoms.RecentMenu(LoadRomFromRecent, true)); } private void SaveStateSubMenu_DropDownOpened(object sender, EventArgs e) @@ -261,11 +258,7 @@ namespace BizHawk.Client.EmuHawk { RecentMovieSubMenu.DropDownItems.Clear(); RecentMovieSubMenu.DropDownItems.AddRange( - ToolHelpers.GenerateRecentMenu(Global.Config.RecentMovies, LoadMoviesFromRecent) - ); - RecentMovieSubMenu.DropDownItems.Add( - ToolHelpers.GenerateAutoLoadItem(Global.Config.RecentMovies) - ); + Global.Config.RecentMovies.RecentMenu(LoadMoviesFromRecent, true)); } private void MovieEndSubMenu_DropDownOpened(object sender, EventArgs e) diff --git a/BizHawk.Client.EmuHawk/MainForm.cs b/BizHawk.Client.EmuHawk/MainForm.cs index 8370dadd5e..7fcd081f29 100644 --- a/BizHawk.Client.EmuHawk/MainForm.cs +++ b/BizHawk.Client.EmuHawk/MainForm.cs @@ -34,6 +34,7 @@ using BizHawk.Emulation.DiscSystem; using BizHawk.Emulation.Cores.Nintendo.N64; using BizHawk.Client.EmuHawk.WinFormExtensions; +using BizHawk.Client.EmuHawk.ToolExtensions; namespace BizHawk.Client.EmuHawk { @@ -1564,7 +1565,7 @@ namespace BizHawk.Client.EmuHawk } else { - ToolHelpers.HandleLoadError(Global.Config.RecentMovies, path); + Global.Config.RecentMovies.HandleLoadError(path); } } @@ -1572,7 +1573,7 @@ namespace BizHawk.Client.EmuHawk { if (!LoadRom(rom)) { - ToolHelpers.HandleLoadError(Global.Config.RecentRoms, rom); + Global.Config.RecentRoms.HandleLoadError(rom); } } diff --git a/BizHawk.Client.EmuHawk/tools/Cheats/Cheats.cs b/BizHawk.Client.EmuHawk/tools/Cheats/Cheats.cs index 7f176e347c..c12a2535ae 100644 --- a/BizHawk.Client.EmuHawk/tools/Cheats/Cheats.cs +++ b/BizHawk.Client.EmuHawk/tools/Cheats/Cheats.cs @@ -9,6 +9,7 @@ using System.Windows.Forms; using BizHawk.Client.Common; using BizHawk.Emulation.Cores.Nintendo.SNES; using BizHawk.Emulation.Cores.Sega.Genesis; +using BizHawk.Client.EmuHawk.ToolExtensions; namespace BizHawk.Client.EmuHawk { @@ -102,7 +103,7 @@ namespace BizHawk.Client.EmuHawk var loadResult = Global.CheatList.Load(path, append: false); if (!loadResult) { - ToolHelpers.HandleLoadError(Global.Config.RecentWatches, path); + Global.Config.RecentWatches.HandleLoadError(path); } else { @@ -467,8 +468,7 @@ namespace BizHawk.Client.EmuHawk { RecentSubMenu.DropDownItems.Clear(); RecentSubMenu.DropDownItems.AddRange( - ToolHelpers.GenerateRecentMenu(Global.Config.RecentCheats, LoadFileFromRecent) - ); + Global.Config.RecentCheats.RecentMenu(LoadFileFromRecent)); } private void NewMenuItem_Click(object sender, EventArgs e) diff --git a/BizHawk.Client.EmuHawk/tools/HexEditor/HexEditor.cs b/BizHawk.Client.EmuHawk/tools/HexEditor/HexEditor.cs index 2fb636e8c0..425c041d8e 100644 --- a/BizHawk.Client.EmuHawk/tools/HexEditor/HexEditor.cs +++ b/BizHawk.Client.EmuHawk/tools/HexEditor/HexEditor.cs @@ -15,6 +15,7 @@ using BizHawk.Common.IOExtensions; using BizHawk.Emulation.Common; using BizHawk.Client.Common; using BizHawk.Client.EmuHawk.WinFormExtensions; +using BizHawk.Client.EmuHawk.ToolExtensions; namespace BizHawk.Client.EmuHawk { @@ -1336,7 +1337,7 @@ namespace BizHawk.Client.EmuHawk var result = LoadTable(path); if (!result) { - ToolHelpers.HandleLoadError(Global.Config.RecentTables, path); + Global.Config.RecentTables.HandleLoadError(path); } else { @@ -1349,10 +1350,7 @@ namespace BizHawk.Client.EmuHawk { RecentTablesSubMenu.DropDownItems.Clear(); RecentTablesSubMenu.DropDownItems.AddRange( - ToolHelpers.GenerateRecentMenu(Global.Config.RecentTables, LoadFileFromRecent)); - - RecentTablesSubMenu.DropDownItems.Add( - ToolHelpers.GenerateAutoLoadItem(Global.Config.RecentTables)); + Global.Config.RecentTables.RecentMenu(LoadFileFromRecent, true)); } private void ExitMenuItem_Click(object sender, EventArgs e) diff --git a/BizHawk.Client.EmuHawk/tools/Lua/LuaConsole.cs b/BizHawk.Client.EmuHawk/tools/Lua/LuaConsole.cs index 812704e481..b1f131cb02 100644 --- a/BizHawk.Client.EmuHawk/tools/Lua/LuaConsole.cs +++ b/BizHawk.Client.EmuHawk/tools/Lua/LuaConsole.cs @@ -12,6 +12,7 @@ using LuaInterface; using BizHawk.Client.Common; using BizHawk.Emulation.Common; using BizHawk.Client.EmuHawk.WinFormExtensions; +using BizHawk.Client.EmuHawk.ToolExtensions; namespace BizHawk.Client.EmuHawk { @@ -510,7 +511,7 @@ namespace BizHawk.Client.EmuHawk { if (!_luaList.LoadLuaSession(path)) { - ToolHelpers.HandleLoadError(Global.Config.RecentLuaSession, path); + Global.Config.RecentLuaSession.HandleLoadError(path); } else { @@ -584,14 +585,14 @@ namespace BizHawk.Client.EmuHawk { RecentSessionsSubMenu.DropDownItems.Clear(); RecentSessionsSubMenu.DropDownItems.AddRange( - ToolHelpers.GenerateRecentMenu(Global.Config.RecentLuaSession, LoadSessionFromRecent)); + Global.Config.RecentLuaSession.RecentMenu(LoadSessionFromRecent)); } private void RecentScriptsSubMenu_DropDownOpened(object sender, EventArgs e) { RecentScriptsSubMenu.DropDownItems.Clear(); RecentScriptsSubMenu.DropDownItems.AddRange( - ToolHelpers.GenerateRecentMenu(Global.Config.RecentLua, LoadLuaFromRecent)); + Global.Config.RecentLua.RecentMenu(LoadLuaFromRecent)); } private void NewSessionMenuItem_Click(object sender, EventArgs e) diff --git a/BizHawk.Client.EmuHawk/tools/PCE/PCECDL.cs b/BizHawk.Client.EmuHawk/tools/PCE/PCECDL.cs index 74a86b0208..3fe08f81fb 100644 --- a/BizHawk.Client.EmuHawk/tools/PCE/PCECDL.cs +++ b/BizHawk.Client.EmuHawk/tools/PCE/PCECDL.cs @@ -7,6 +7,7 @@ using System.Windows.Forms; using BizHawk.Client.Common; using BizHawk.Emulation.Cores.Components.H6280; using BizHawk.Emulation.Cores.PCEngine; +using BizHawk.Client.EmuHawk.ToolExtensions; namespace BizHawk.Client.EmuHawk { @@ -175,9 +176,7 @@ namespace BizHawk.Client.EmuHawk { RecentSubMenu.DropDownItems.Clear(); RecentSubMenu.DropDownItems.AddRange( - ToolHelpers.GenerateRecentMenu(Global.Config.RecentPceCdlFiles, LoadFile)); - RecentSubMenu.DropDownItems.Add( - ToolHelpers.GenerateAutoLoadItem(Global.Config.RecentPceCdlFiles)); + Global.Config.RecentPceCdlFiles.RecentMenu(LoadFile, true)); } private void NewMenuItem_Click(object sender, EventArgs e) diff --git a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs index aac329fcc4..b463671819 100644 --- a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs +++ b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs @@ -10,6 +10,7 @@ using BizHawk.Client.Common; using BizHawk.Client.Common.MovieConversionExtensions; using BizHawk.Client.EmuHawk.WinFormExtensions; +using BizHawk.Client.EmuHawk.ToolExtensions; namespace BizHawk.Client.EmuHawk { @@ -213,7 +214,7 @@ namespace BizHawk.Client.EmuHawk var file = new FileInfo(path); if (!file.Exists) { - ToolHelpers.HandleLoadError(Global.Config.RecentTas, path); + Global.Config.RecentTas.HandleLoadError(path); } GlobalWin.MainForm.StartNewMovie(movie, record: false); @@ -505,8 +506,7 @@ namespace BizHawk.Client.EmuHawk { RecentSubMenu.DropDownItems.Clear(); RecentSubMenu.DropDownItems.AddRange( - ToolHelpers.GenerateRecentMenu(Global.Config.RecentTas, LoadProject) - ); + Global.Config.RecentTas.RecentMenu(LoadProject)); } private void NewTasMenuItem_Click(object sender, EventArgs e) diff --git a/BizHawk.Client.EmuHawk/tools/ToolHelpers.cs b/BizHawk.Client.EmuHawk/tools/ToolHelpers.cs index 279b700d8d..7e8a8e6c92 100644 --- a/BizHawk.Client.EmuHawk/tools/ToolHelpers.cs +++ b/BizHawk.Client.EmuHawk/tools/ToolHelpers.cs @@ -205,54 +205,6 @@ namespace BizHawk.Client.EmuHawk return new FileInfo(sfd.FileName); } - public static ToolStripMenuItem GenerateAutoLoadItem(RecentFiles recent) - { - var auto = new ToolStripMenuItem { Text = "&Autoload", Checked = recent.AutoLoad }; - auto.Click += (o, ev) => recent.ToggleAutoLoad(); - return auto; - } - - public static ToolStripItem[] GenerateRecentMenu(RecentFiles recent, Action loadFileCallback) - { - var items = new List(); - - if (recent.Empty) - { - var none = new ToolStripMenuItem { Enabled = false, Text = "None" }; - items.Add(none); - } - else - { - foreach (var filename in recent) - { - var temp = filename; - var item = new ToolStripMenuItem { Text = temp }; - item.Click += (o, ev) => loadFileCallback(temp); - items.Add(item); - } - } - - items.Add(new ToolStripSeparator()); - - var clearitem = new ToolStripMenuItem { Text = "&Clear" }; - clearitem.Click += (o, ev) => recent.Clear(); - items.Add(clearitem); - - return items.ToArray(); - } - - public static void HandleLoadError(RecentFiles recent, string path) - { - GlobalWin.Sound.StopSound(); - var result = MessageBox.Show("Could not open " + path + "\nRemove from list?", "File not found", MessageBoxButtons.YesNo, MessageBoxIcon.Error); - if (result == DialogResult.Yes) - { - recent.Remove(path); - } - - GlobalWin.Sound.StartSound(); - } - public static IEnumerable GenerateMemoryDomainMenuItems(Action setCallback, string selectedDomain = "", int? maxSize = null) { var items = new List(); @@ -306,11 +258,6 @@ namespace BizHawk.Client.EmuHawk watches .Where(w => !w.IsSeparator) .Select(w => new Cheat(w, w.Value ?? 0))); - - //foreach (var watch in watches.Where(watch => !watch.IsSeparator)) - //{ - // Global.CheatList.Add(new Cheat(watch, watch.Value ?? 0)); - //} } public static void UnfreezeAddress(IEnumerable watches) diff --git a/BizHawk.Client.EmuHawk/tools/Watch/RamSearch.cs b/BizHawk.Client.EmuHawk/tools/Watch/RamSearch.cs index 5098a7338e..dca119fc1a 100644 --- a/BizHawk.Client.EmuHawk/tools/Watch/RamSearch.cs +++ b/BizHawk.Client.EmuHawk/tools/Watch/RamSearch.cs @@ -14,6 +14,7 @@ using BizHawk.Common.NumberExtensions; using BizHawk.Client.Common; using BizHawk.Client.EmuHawk.WinFormExtensions; +using BizHawk.Client.EmuHawk.ToolExtensions; namespace BizHawk.Client.EmuHawk { @@ -555,7 +556,7 @@ namespace BizHawk.Client.EmuHawk if (!file.Exists) { - ToolHelpers.HandleLoadError(Global.Config.RecentSearches, path); + Global.Config.RecentSearches.HandleLoadError(path); } else { @@ -962,8 +963,7 @@ namespace BizHawk.Client.EmuHawk { RecentSubMenu.DropDownItems.Clear(); RecentSubMenu.DropDownItems.AddRange( - ToolHelpers.GenerateRecentMenu(Global.Config.RecentSearches, LoadFileFromRecent) - ); + Global.Config.RecentSearches.RecentMenu(LoadFileFromRecent)); } private void OpenMenuItem_Click(object sender, EventArgs e) diff --git a/BizHawk.Client.EmuHawk/tools/Watch/RamWatch.cs b/BizHawk.Client.EmuHawk/tools/Watch/RamWatch.cs index aa65a72ef8..c7c43676b5 100644 --- a/BizHawk.Client.EmuHawk/tools/Watch/RamWatch.cs +++ b/BizHawk.Client.EmuHawk/tools/Watch/RamWatch.cs @@ -9,6 +9,7 @@ using System.Windows.Forms; using BizHawk.Client.Common; using BizHawk.Client.EmuHawk.WinFormExtensions; +using BizHawk.Client.EmuHawk.ToolExtensions; namespace BizHawk.Client.EmuHawk { @@ -145,7 +146,7 @@ namespace BizHawk.Client.EmuHawk var load_result = _watches.Load(path, append: false); if (!load_result) { - ToolHelpers.HandleLoadError(Global.Config.RecentWatches, path); + Global.Config.RecentWatches.HandleLoadError(path); } else { @@ -684,11 +685,7 @@ namespace BizHawk.Client.EmuHawk { RecentSubMenu.DropDownItems.Clear(); RecentSubMenu.DropDownItems.AddRange( - ToolHelpers.GenerateRecentMenu(Global.Config.RecentWatches, LoadFileFromRecent) - ); - RecentSubMenu.DropDownItems.Add( - ToolHelpers.GenerateAutoLoadItem(Global.Config.RecentWatches) - ); + Global.Config.RecentWatches.RecentMenu(LoadFileFromRecent, true)); } private void ExitMenuItem_Click(object sender, EventArgs e)