From c9884669421a8e0d77c2f6766f9a70ea80a711bb Mon Sep 17 00:00:00 2001 From: adelikat Date: Mon, 28 Jul 2014 02:10:31 +0000 Subject: [PATCH] Convert some more toolhelper methods to extensions --- .../Extensions/ControlExtensions.cs | 18 ++++++++++ .../Extensions/ToolExtensions.cs | 18 ++++++++++ BizHawk.Client.EmuHawk/tools/Cheats/Cheats.cs | 20 ++++++----- BizHawk.Client.EmuHawk/tools/ToolHelpers.cs | 35 ------------------- .../tools/Watch/RamSearch.cs | 14 ++++---- .../tools/Watch/RamWatch.cs | 18 +++++----- 6 files changed, 65 insertions(+), 58 deletions(-) diff --git a/BizHawk.Client.EmuHawk/Extensions/ControlExtensions.cs b/BizHawk.Client.EmuHawk/Extensions/ControlExtensions.cs index 8cb64020e3..002c1af7aa 100644 --- a/BizHawk.Client.EmuHawk/Extensions/ControlExtensions.cs +++ b/BizHawk.Client.EmuHawk/Extensions/ControlExtensions.cs @@ -34,6 +34,24 @@ namespace BizHawk.Client.EmuHawk.WinFormExtensions { control.Invoke(action); } + + public static void AddColumn(this ListView listView, string columnName, bool enabled, int columnWidth) + { + if (enabled) + { + if (listView.Columns[columnName] == null) + { + var column = new ColumnHeader + { + Name = columnName, + Text = columnName.Replace("Column", string.Empty), + Width = columnWidth, + }; + + listView.Columns.Add(column); + } + } + } } public static class FormExtensions diff --git a/BizHawk.Client.EmuHawk/Extensions/ToolExtensions.cs b/BizHawk.Client.EmuHawk/Extensions/ToolExtensions.cs index b1cc56c163..8c3f05a396 100644 --- a/BizHawk.Client.EmuHawk/Extensions/ToolExtensions.cs +++ b/BizHawk.Client.EmuHawk/Extensions/ToolExtensions.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Windows.Forms; using System.Linq; +using BizHawk.Emulation.Common; using BizHawk.Client.Common; namespace BizHawk.Client.EmuHawk.ToolExtensions @@ -69,5 +70,22 @@ namespace BizHawk.Client.EmuHawk.ToolExtensions { Global.CheatList.RemoveRange(watches.Where(watch => !watch.IsSeparator)); } + + public static IEnumerable MenuItems(this MemoryDomainList domains, Action setCallback, string selected = "", int? maxSize = null) + { + foreach (var domain in domains) + { + var name = domain.Name; + var item = new ToolStripMenuItem + { + Text = name, + Enabled = !(maxSize.HasValue && domain.Size > maxSize.Value), + Checked = name == selected + }; + item.Click += (o, ev) => setCallback(name); + + yield return item; + } + } } } diff --git a/BizHawk.Client.EmuHawk/tools/Cheats/Cheats.cs b/BizHawk.Client.EmuHawk/tools/Cheats/Cheats.cs index c12a2535ae..f774f163f2 100644 --- a/BizHawk.Client.EmuHawk/tools/Cheats/Cheats.cs +++ b/BizHawk.Client.EmuHawk/tools/Cheats/Cheats.cs @@ -9,7 +9,9 @@ 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; +using BizHawk.Client.EmuHawk.WinFormExtensions; namespace BizHawk.Client.EmuHawk { @@ -235,15 +237,15 @@ namespace BizHawk.Client.EmuHawk private void LoadColumnInfo() { CheatListView.Columns.Clear(); - ToolHelpers.AddColumn(CheatListView, NAME, Global.Config.CheatsColumnShow[NAME], GetColumnWidth(NAME)); - ToolHelpers.AddColumn(CheatListView, ADDRESS, Global.Config.CheatsColumnShow[ADDRESS], GetColumnWidth(ADDRESS)); - ToolHelpers.AddColumn(CheatListView, VALUE, Global.Config.CheatsColumnShow[VALUE], GetColumnWidth(VALUE)); - ToolHelpers.AddColumn(CheatListView, COMPARE, Global.Config.CheatsColumnShow[COMPARE], GetColumnWidth(COMPARE)); - ToolHelpers.AddColumn(CheatListView, ON, Global.Config.CheatsColumnShow[ON], GetColumnWidth(ON)); - ToolHelpers.AddColumn(CheatListView, DOMAIN, Global.Config.CheatsColumnShow[DOMAIN], GetColumnWidth(DOMAIN)); - ToolHelpers.AddColumn(CheatListView, SIZE, Global.Config.CheatsColumnShow[SIZE], GetColumnWidth(SIZE)); - ToolHelpers.AddColumn(CheatListView, ENDIAN, Global.Config.CheatsColumnShow[ENDIAN], GetColumnWidth(ENDIAN)); - ToolHelpers.AddColumn(CheatListView, TYPE, Global.Config.CheatsColumnShow[TYPE], GetColumnWidth(TYPE)); + CheatListView.AddColumn(NAME, Global.Config.CheatsColumnShow[NAME], GetColumnWidth(NAME)); + CheatListView.AddColumn(ADDRESS, Global.Config.CheatsColumnShow[ADDRESS], GetColumnWidth(ADDRESS)); + CheatListView.AddColumn(VALUE, Global.Config.CheatsColumnShow[VALUE], GetColumnWidth(VALUE)); + CheatListView.AddColumn(COMPARE, Global.Config.CheatsColumnShow[COMPARE], GetColumnWidth(COMPARE)); + CheatListView.AddColumn(ON, Global.Config.CheatsColumnShow[ON], GetColumnWidth(ON)); + CheatListView.AddColumn(DOMAIN, Global.Config.CheatsColumnShow[DOMAIN], GetColumnWidth(DOMAIN)); + CheatListView.AddColumn(SIZE, Global.Config.CheatsColumnShow[SIZE], GetColumnWidth(SIZE)); + CheatListView.AddColumn(ENDIAN, Global.Config.CheatsColumnShow[ENDIAN], GetColumnWidth(ENDIAN)); + CheatListView.AddColumn(TYPE, Global.Config.CheatsColumnShow[TYPE], GetColumnWidth(TYPE)); ColumnPositions(); } diff --git a/BizHawk.Client.EmuHawk/tools/ToolHelpers.cs b/BizHawk.Client.EmuHawk/tools/ToolHelpers.cs index 68bc34893a..f5ffc4d73d 100644 --- a/BizHawk.Client.EmuHawk/tools/ToolHelpers.cs +++ b/BizHawk.Client.EmuHawk/tools/ToolHelpers.cs @@ -205,23 +205,6 @@ namespace BizHawk.Client.EmuHawk return new FileInfo(sfd.FileName); } - public static IEnumerable GenerateMemoryDomainMenuItems(Action setCallback, string selectedDomain = "", int? maxSize = null) - { - var items = new List(); - - foreach (var domain in Global.Emulator.MemoryDomains) - { - var name = domain.Name; - var item = new ToolStripMenuItem { Text = name }; - item.Click += (o, ev) => setCallback(name); - item.Checked = name == selectedDomain; - item.Enabled = !(maxSize.HasValue && domain.Size > maxSize.Value); - items.Add(item); - } - - return items; - } - public static void PopulateMemoryDomainDropdown(ref ComboBox dropdown, MemoryDomain startDomain) { dropdown.Items.Clear(); @@ -257,23 +240,5 @@ namespace BizHawk.Client.EmuHawk GlobalWin.Tools.Load(); GlobalWin.Tools.HexEditor.SetToAddresses(addresses, domain, size); } - - public static void AddColumn(ListView listView, string columnName, bool enabled, int columnWidth) - { - if (enabled) - { - if (listView.Columns[columnName] == null) - { - var column = new ColumnHeader - { - Name = columnName, - Text = columnName.Replace("Column", string.Empty), - Width = columnWidth, - }; - - listView.Columns.Add(column); - } - } - } } } diff --git a/BizHawk.Client.EmuHawk/tools/Watch/RamSearch.cs b/BizHawk.Client.EmuHawk/tools/Watch/RamSearch.cs index 39b8d36c5d..228de9f167 100644 --- a/BizHawk.Client.EmuHawk/tools/Watch/RamSearch.cs +++ b/BizHawk.Client.EmuHawk/tools/Watch/RamSearch.cs @@ -586,11 +586,11 @@ namespace BizHawk.Client.EmuHawk private void LoadColumnInfo() { WatchListView.Columns.Clear(); - ToolHelpers.AddColumn(WatchListView, WatchList.ADDRESS, true, GetColumnWidth(WatchList.ADDRESS)); - ToolHelpers.AddColumn(WatchListView, WatchList.VALUE, true, GetColumnWidth(WatchList.VALUE)); - ToolHelpers.AddColumn(WatchListView, WatchList.PREV, Global.Config.RamSearchShowPrevColumn, GetColumnWidth(WatchList.PREV)); - ToolHelpers.AddColumn(WatchListView, WatchList.CHANGES, Global.Config.RamSearchShowChangeColumn, GetColumnWidth(WatchList.CHANGES)); - ToolHelpers.AddColumn(WatchListView, WatchList.DIFF, Global.Config.RamSearchShowDiffColumn, GetColumnWidth(WatchList.DIFF)); + WatchListView.AddColumn(WatchList.ADDRESS, true, GetColumnWidth(WatchList.ADDRESS)); + WatchListView.AddColumn(WatchList.VALUE, true, GetColumnWidth(WatchList.VALUE)); + WatchListView.AddColumn(WatchList.PREV, Global.Config.RamSearchShowPrevColumn, GetColumnWidth(WatchList.PREV)); + WatchListView.AddColumn(WatchList.CHANGES, Global.Config.RamSearchShowChangeColumn, GetColumnWidth(WatchList.CHANGES)); + WatchListView.AddColumn(WatchList.DIFF, Global.Config.RamSearchShowDiffColumn, GetColumnWidth(WatchList.DIFF)); ColumnPositions(); } @@ -1045,7 +1045,9 @@ namespace BizHawk.Client.EmuHawk private void MemoryDomainsSubMenu_DropDownOpened(object sender, EventArgs e) { MemoryDomainsSubMenu.DropDownItems.Clear(); - MemoryDomainsSubMenu.DropDownItems.AddRange(ToolHelpers.GenerateMemoryDomainMenuItems(SetMemoryDomain, _searches.Domain.Name, MaxSupportedSize).ToArray()); + MemoryDomainsSubMenu.DropDownItems.AddRange( + Global.Emulator.MemoryDomains.MenuItems(SetMemoryDomain, _searches.Domain.Name, MaxSupportedSize) + .ToArray()); } private void SizeSubMenu_DropDownOpened(object sender, EventArgs e) diff --git a/BizHawk.Client.EmuHawk/tools/Watch/RamWatch.cs b/BizHawk.Client.EmuHawk/tools/Watch/RamWatch.cs index 1305add63a..dd5ce02475 100644 --- a/BizHawk.Client.EmuHawk/tools/Watch/RamWatch.cs +++ b/BizHawk.Client.EmuHawk/tools/Watch/RamWatch.cs @@ -404,13 +404,13 @@ namespace BizHawk.Client.EmuHawk private void LoadColumnInfo() { WatchListView.Columns.Clear(); - ToolHelpers.AddColumn(WatchListView, WatchList.ADDRESS, Global.Config.RamWatchShowAddressColumn, GetColumnWidth(WatchList.ADDRESS)); - ToolHelpers.AddColumn(WatchListView, WatchList.VALUE, true, GetColumnWidth(WatchList.VALUE)); - ToolHelpers.AddColumn(WatchListView, WatchList.PREV, Global.Config.RamWatchShowPrevColumn, GetColumnWidth(WatchList.PREV)); - ToolHelpers.AddColumn(WatchListView, WatchList.CHANGES, Global.Config.RamWatchShowChangeColumn, GetColumnWidth(WatchList.CHANGES)); - ToolHelpers.AddColumn(WatchListView, WatchList.DIFF, Global.Config.RamWatchShowDiffColumn, GetColumnWidth(WatchList.DIFF)); - ToolHelpers.AddColumn(WatchListView, WatchList.DOMAIN, Global.Config.RamWatchShowDomainColumn, GetColumnWidth(WatchList.DOMAIN)); - ToolHelpers.AddColumn(WatchListView, WatchList.NOTES, true, GetColumnWidth(WatchList.NOTES)); + WatchListView.AddColumn(WatchList.ADDRESS, Global.Config.RamWatchShowAddressColumn, GetColumnWidth(WatchList.ADDRESS)); + WatchListView.AddColumn(WatchList.VALUE, true, GetColumnWidth(WatchList.VALUE)); + WatchListView.AddColumn(WatchList.PREV, Global.Config.RamWatchShowPrevColumn, GetColumnWidth(WatchList.PREV)); + WatchListView.AddColumn(WatchList.CHANGES, Global.Config.RamWatchShowChangeColumn, GetColumnWidth(WatchList.CHANGES)); + WatchListView.AddColumn(WatchList.DIFF, Global.Config.RamWatchShowDiffColumn, GetColumnWidth(WatchList.DIFF)); + WatchListView.AddColumn(WatchList.DOMAIN, Global.Config.RamWatchShowDomainColumn, GetColumnWidth(WatchList.DOMAIN)); + WatchListView.AddColumn(WatchList.NOTES, true, GetColumnWidth(WatchList.NOTES)); ColumnPositions(); } @@ -714,7 +714,9 @@ namespace BizHawk.Client.EmuHawk private void MemoryDomainsSubMenu_DropDownOpened(object sender, EventArgs e) { MemoryDomainsSubMenu.DropDownItems.Clear(); - MemoryDomainsSubMenu.DropDownItems.AddRange(ToolHelpers.GenerateMemoryDomainMenuItems(SetMemoryDomain, _watches.Domain.Name).ToArray()); + MemoryDomainsSubMenu.DropDownItems.AddRange( + Global.Emulator.MemoryDomains.MenuItems(SetMemoryDomain, _watches.Domain.Name) + .ToArray()); } private void NewWatchMenuItem_Click(object sender, EventArgs e)