From 9f06e442ab455472146451b6469e7dbf36596c97 Mon Sep 17 00:00:00 2001 From: adelikat Date: Mon, 20 Jan 2020 15:58:32 -0600 Subject: [PATCH] move hex editor colors from Config to the tool itself using ConfigPersist --- BizHawk.Client.Common/config/Config.cs | 11 +- .../tools/HexEditor/HexColor.cs | 34 +++--- .../tools/HexEditor/HexEditor.cs | 101 ++++++++++-------- BizHawk.sln.DotSettings | 1 + 4 files changed, 75 insertions(+), 72 deletions(-) diff --git a/BizHawk.Client.Common/config/Config.cs b/BizHawk.Client.Common/config/Config.cs index e2a8fc8402..605c16d8d0 100644 --- a/BizHawk.Client.Common/config/Config.cs +++ b/BizHawk.Client.Common/config/Config.cs @@ -312,14 +312,6 @@ namespace BizHawk.Client.Common public PreviousType RamWatchDefinePrevious = PreviousType.LastFrame; public bool DisplayRamWatch = false; - // Hex Editor Colors - public Color HexBackgrndColor = SystemColors.Control; - public Color HexForegrndColor = SystemColors.ControlText; - public Color HexMenubarColor = SystemColors.Control; - public Color HexFreezeColor = Color.LightBlue; - public Color HexHighlightColor = Color.Pink; - public Color HexHighlightFreezeColor = Color.Violet; - // Video dumping settings public string VideoWriter = ""; public int JMDCompression = 3; @@ -344,8 +336,7 @@ namespace BizHawk.Client.Common public object GetCoreSettings(Type t) { - object ret; - CoreSettings.TryGetValue(t.ToString(), out ret); + CoreSettings.TryGetValue(t.ToString(), out var ret); return ret; } diff --git a/BizHawk.Client.EmuHawk/tools/HexEditor/HexColor.cs b/BizHawk.Client.EmuHawk/tools/HexEditor/HexColor.cs index 93e878a0f0..df0499f3e3 100644 --- a/BizHawk.Client.EmuHawk/tools/HexEditor/HexColor.cs +++ b/BizHawk.Client.EmuHawk/tools/HexEditor/HexColor.cs @@ -9,32 +9,30 @@ namespace BizHawk.Client.EmuHawk public partial class HexColorsForm : Form { private readonly HexEditor _hexEditor; - private readonly Config _config; - public HexColorsForm(HexEditor hexEditor, Config config) + public HexColorsForm(HexEditor hexEditor) { _hexEditor = hexEditor; - _config = config; InitializeComponent(); } private void HexColors_Form_Load(object sender, EventArgs e) { - HexBackgrnd.BackColor = _config.HexBackgrndColor; - HexForegrnd.BackColor = _config.HexForegrndColor; - HexMenubar.BackColor = _config.HexMenubarColor; - HexFreeze.BackColor = _config.HexFreezeColor; - HexFreezeHL.BackColor = _config.HexHighlightFreezeColor; - HexHighlight.BackColor = _config.HexHighlightColor; + HexBackgrnd.BackColor = _hexEditor.Colors.Background; + HexForegrnd.BackColor = _hexEditor.Colors.Foreground; + HexMenubar.BackColor = _hexEditor.Colors.MenuBar; + HexFreeze.BackColor = _hexEditor.Colors.Freeze; + HexFreezeHL.BackColor = _hexEditor.Colors.HighlightFreeze; + HexHighlight.BackColor = _hexEditor.Colors.Highlight; } private void HexBackground_Click(object sender, MouseEventArgs e) { if (colorDialog1.ShowDialog() == DialogResult.OK) { - _config.HexBackgrndColor = colorDialog1.Color; + _hexEditor.Colors.Background = colorDialog1.Color; _hexEditor.Header.BackColor = colorDialog1.Color; - _hexEditor.MemoryViewerBox.BackColor = _config.HexBackgrndColor; + _hexEditor.MemoryViewerBox.BackColor = _hexEditor.Colors.Background; HexBackgrnd.BackColor = colorDialog1.Color; } } @@ -43,9 +41,9 @@ namespace BizHawk.Client.EmuHawk { if (colorDialog1.ShowDialog() == DialogResult.OK) { - _config.HexForegrndColor = colorDialog1.Color; + _hexEditor.Colors.Foreground = colorDialog1.Color; _hexEditor.Header.ForeColor = colorDialog1.Color; - _hexEditor.MemoryViewerBox.ForeColor = _config.HexForegrndColor; + _hexEditor.MemoryViewerBox.ForeColor = _hexEditor.Colors.Foreground; HexForegrnd.BackColor = colorDialog1.Color; } } @@ -54,8 +52,8 @@ namespace BizHawk.Client.EmuHawk { if (colorDialog1.ShowDialog() == DialogResult.OK) { - _config.HexMenubarColor = colorDialog1.Color; - _hexEditor.HexMenuStrip.BackColor = _config.HexMenubarColor; + _hexEditor.Colors.MenuBar = colorDialog1.Color; + _hexEditor.HexMenuStrip.BackColor = _hexEditor.Colors.MenuBar; HexMenubar.BackColor = colorDialog1.Color; } } @@ -64,7 +62,7 @@ namespace BizHawk.Client.EmuHawk { if (colorDialog1.ShowDialog().IsOk()) { - _config.HexHighlightColor = colorDialog1.Color; + _hexEditor.Colors.Highlight = colorDialog1.Color; HexHighlight.BackColor = colorDialog1.Color; } } @@ -73,7 +71,7 @@ namespace BizHawk.Client.EmuHawk { if (colorDialog1.ShowDialog().IsOk()) { - _config.HexFreezeColor = colorDialog1.Color; + _hexEditor.Colors.Freeze = colorDialog1.Color; HexFreeze.BackColor = colorDialog1.Color; } } @@ -82,7 +80,7 @@ namespace BizHawk.Client.EmuHawk { if (colorDialog1.ShowDialog().IsOk()) { - _config.HexHighlightFreezeColor = colorDialog1.Color; + _hexEditor.Colors.HighlightFreeze = colorDialog1.Color; HexFreezeHL.BackColor = colorDialog1.Color; } } diff --git a/BizHawk.Client.EmuHawk/tools/HexEditor/HexEditor.cs b/BizHawk.Client.EmuHawk/tools/HexEditor/HexEditor.cs index bf4c2167b6..6bc3e31ea9 100644 --- a/BizHawk.Client.EmuHawk/tools/HexEditor/HexEditor.cs +++ b/BizHawk.Client.EmuHawk/tools/HexEditor/HexEditor.cs @@ -91,6 +91,27 @@ namespace BizHawk.Client.EmuHawk [ConfigPersist] private RecentFiles RecentTables { get; set; } + internal class ColorConfig + { + public Color Background { get; set; } = SystemColors.Control; + public Color Foreground { get; set; } = SystemColors.ControlText; + public Color MenuBar { get; set; } = SystemColors.Control; + public Color Freeze { get; set; }= Color.LightBlue; + public Color Highlight { get; set; } = Color.Pink; + public Color HighlightFreeze { get; set; } = Color.Violet; + } + + [ConfigPersist] + internal ColorConfig Colors { get; set; } = new ColorConfig(); + + private WatchSize WatchSize => (WatchSize)DataSize; + + private readonly Pen _blackPen = new Pen(Color.Black); + private SolidBrush _freezeBrush; + private SolidBrush _freezeHighlightBrush; + private SolidBrush _highlightBrush; + private SolidBrush _secondaryHighlightBrush; + public HexEditor() { _hexFind = new HexFind(this); @@ -116,7 +137,25 @@ namespace BizHawk.Client.EmuHawk AddressLabel.Font = font; } - private WatchSize WatchSize => (WatchSize)DataSize; + private void HexEditor_Load(object sender, EventArgs e) + { + LoadConfigSettings(); + DataSize = _domain.WordSize; + SetDataSize(DataSize); + + if (!string.IsNullOrWhiteSpace(LastDomain) + && MemoryDomains.Any(m => m.Name == LastDomain)) + { + SetMemoryDomain(LastDomain); + } + + if (RecentTables.AutoLoad) + { + LoadFileFromRecent(RecentTables[0]); + } + + FullUpdate(); + } #region API @@ -439,33 +478,18 @@ namespace BizHawk.Client.EmuHawk return false; } - private void HexEditor_Load(object sender, EventArgs e) - { - LoadConfigSettings(); - DataSize = _domain.WordSize; - SetDataSize(DataSize); - - if (!string.IsNullOrWhiteSpace(LastDomain) - && MemoryDomains.Any(m => m.Name == LastDomain)) - { - SetMemoryDomain(LastDomain); - } - - if (RecentTables.AutoLoad) - { - LoadFileFromRecent(RecentTables[0]); - } - - FullUpdate(); - } - private void LoadConfigSettings() { - HexMenuStrip.BackColor = Config.HexMenubarColor; - MemoryViewerBox.BackColor = Config.HexBackgrndColor; - MemoryViewerBox.ForeColor = Config.HexForegrndColor; - Header.BackColor = Config.HexBackgrndColor; - Header.ForeColor = Config.HexForegrndColor; + HexMenuStrip.BackColor = Colors.MenuBar; + MemoryViewerBox.BackColor = Colors.Background; + MemoryViewerBox.ForeColor = Colors.Foreground; + Header.BackColor = Colors.Background; + Header.ForeColor = Colors.Foreground; + + _freezeBrush = new SolidBrush(Colors.Freeze); + _freezeHighlightBrush = new SolidBrush(Colors.HighlightFreeze); + _highlightBrush = new SolidBrush(Colors.Highlight); + _secondaryHighlightBrush = new SolidBrush(Color.FromArgb(0x44, Colors.Highlight)); } private void CloseHexFind() @@ -1670,7 +1694,7 @@ namespace BizHawk.Client.EmuHawk private void SetColorsMenuItem_Click(object sender, EventArgs e) { - using var form = new HexColorsForm(this, Config); + using var form = new HexColorsForm(this); form.ShowHawkDialog(); } @@ -1681,12 +1705,7 @@ namespace BizHawk.Client.EmuHawk HexMenuStrip.BackColor = Color.FromName("Control"); Header.BackColor = Color.FromName("Control"); Header.ForeColor = Color.FromName("ControlText"); - Config.HexMenubarColor = Color.FromName("Control"); - Config.HexForegrndColor = Color.FromName("ControlText"); - Config.HexBackgrndColor = Color.FromName("Control"); - Config.HexFreezeColor = Color.LightBlue; - Config.HexHighlightColor = Color.Pink; - Config.HexHighlightFreezeColor = Color.Violet; + Colors = new ColorConfig(); } #endregion @@ -2060,12 +2079,6 @@ namespace BizHawk.Client.EmuHawk } } - private readonly Pen _blackPen = new Pen(Color.Black); - private readonly SolidBrush _freezeBrush = new SolidBrush(Global.Config.HexFreezeColor); - private readonly SolidBrush _freezeHighlightBrush = new SolidBrush(Global.Config.HexHighlightFreezeColor); - private readonly SolidBrush _highlightBrush = new SolidBrush(Global.Config.HexHighlightColor); - private readonly SolidBrush _secondaryHighlightBrush = new SolidBrush(Color.FromArgb(0x44, Global.Config.HexHighlightColor)); - private void MemoryViewerBox_Paint(object sender, PaintEventArgs e) { var activeCheats = Global.CheatList.Where(x => x.Enabled); @@ -2088,7 +2101,7 @@ namespace BizHawk.Client.EmuHawk var rect = new Rectangle(GetAddressCoordinates(cheat.Address ?? 0), new Size(width, _fontHeight)); e.Graphics.DrawRectangle(_blackPen, rect); - _freezeBrush.Color = Config.HexFreezeColor; + _freezeBrush.Color = Colors.Freeze; e.Graphics.FillRectangle(_freezeBrush, rect); } } @@ -2110,13 +2123,13 @@ namespace BizHawk.Client.EmuHawk if (Global.CheatList.IsActive(_domain, addressHighlighted)) { - _freezeHighlightBrush.Color = Config.HexHighlightFreezeColor; + _freezeHighlightBrush.Color = Colors.HighlightFreeze; e.Graphics.FillRectangle(_freezeHighlightBrush, rect); e.Graphics.FillRectangle(_freezeHighlightBrush, textRect); } else { - _highlightBrush.Color = Config.HexHighlightColor; + _highlightBrush.Color = Colors.Highlight; e.Graphics.FillRectangle(_highlightBrush, rect); e.Graphics.FillRectangle(_highlightBrush, textRect); } @@ -2137,13 +2150,13 @@ namespace BizHawk.Client.EmuHawk if (Global.CheatList.IsActive(_domain, address)) { - _freezeHighlightBrush.Color = Config.HexHighlightFreezeColor; + _freezeHighlightBrush.Color = Colors.HighlightFreeze; e.Graphics.FillRectangle(_freezeHighlightBrush, rect); e.Graphics.FillRectangle(_freezeHighlightBrush, textRect); } else { - _secondaryHighlightBrush.Color = Color.FromArgb(0x44, Config.HexHighlightColor); + _secondaryHighlightBrush.Color = Color.FromArgb(0x44, Colors.Highlight); e.Graphics.FillRectangle(_secondaryHighlightBrush, rect); e.Graphics.FillRectangle(_secondaryHighlightBrush, textRect); } diff --git a/BizHawk.sln.DotSettings b/BizHawk.sln.DotSettings index 2401ac5a34..df6986ead8 100644 --- a/BizHawk.sln.DotSettings +++ b/BizHawk.sln.DotSettings @@ -250,6 +250,7 @@ True True True + True True True True