From 4a332c1fb0c51e219d16842724f44364f99c35b7 Mon Sep 17 00:00:00 2001 From: adelikat Date: Mon, 16 Dec 2019 17:53:54 -0600 Subject: [PATCH] SNES config dialogs - pass in dependencies --- BizHawk.Client.EmuHawk/MainForm.Events.cs | 12 ++++-- .../config/SNES/SNESControllerConfig.cs | 23 ++++++----- .../config/SNES/SNESOptions.cs | 41 ++++++++----------- BizHawk.sln.DotSettings | 1 + 4 files changed, 41 insertions(+), 36 deletions(-) diff --git a/BizHawk.Client.EmuHawk/MainForm.Events.cs b/BizHawk.Client.EmuHawk/MainForm.Events.cs index 09974b9fce..d736693a30 100644 --- a/BizHawk.Client.EmuHawk/MainForm.Events.cs +++ b/BizHawk.Client.EmuHawk/MainForm.Events.cs @@ -2216,8 +2216,11 @@ namespace BizHawk.Client.EmuHawk private void SNESControllerConfigurationMenuItem_Click(object sender, EventArgs e) { - using var form = new SNESControllerSettings(); - form.ShowDialog(); + if (Emulator is LibsnesCore bsnes) + { + using var form = new SNESControllerSettings(this, bsnes.GetSyncSettings().Clone()); + form.ShowDialog(); + } } private void SnesGfxDebuggerMenuItem_Click(object sender, EventArgs e) @@ -2238,7 +2241,10 @@ namespace BizHawk.Client.EmuHawk private void SnesOptionsMenuItem_Click(object sender, EventArgs e) { - SNESOptions.DoSettingsDialog(this); + if (Emulator is LibsnesCore bsnes) + { + SNESOptions.DoSettingsDialog(this, bsnes); + } } private void Snes9xSettingsMenuItem_Click(object sender, EventArgs e) diff --git a/BizHawk.Client.EmuHawk/config/SNES/SNESControllerConfig.cs b/BizHawk.Client.EmuHawk/config/SNES/SNESControllerConfig.cs index c67b9c2fbc..9c46603367 100644 --- a/BizHawk.Client.EmuHawk/config/SNES/SNESControllerConfig.cs +++ b/BizHawk.Client.EmuHawk/config/SNES/SNESControllerConfig.cs @@ -9,24 +9,27 @@ namespace BizHawk.Client.EmuHawk { public partial class SNESControllerSettings : Form { - private LibsnesCore.SnesSyncSettings _syncSettings; - private bool _supressDropdownChangeEvents; + private readonly MainForm _mainForm; + private readonly LibsnesCore.SnesSyncSettings _syncSettings; + private bool _suppressDropdownChangeEvents; - public SNESControllerSettings() + public SNESControllerSettings( + MainForm mainForm, + LibsnesCore.SnesSyncSettings syncSettings) { + _mainForm = mainForm; + _syncSettings = syncSettings; InitializeComponent(); } private void SNESControllerSettings_Load(object sender, EventArgs e) { - _syncSettings = ((LibsnesCore)Global.Emulator).GetSyncSettings().Clone(); - LimitAnalogChangeCheckBox.Checked = _syncSettings.LimitAnalogChangeSensitivity; - _supressDropdownChangeEvents = true; + _suppressDropdownChangeEvents = true; Port1ComboBox.PopulateFromEnum(_syncSettings.LeftPort); Port2ComboBox.PopulateFromEnum(_syncSettings.RightPort); - _supressDropdownChangeEvents = false; + _suppressDropdownChangeEvents = false; } private void OkBtn_Click(object sender, EventArgs e) @@ -42,7 +45,7 @@ namespace BizHawk.Client.EmuHawk _syncSettings.RightPort = (LibsnesControllerDeck.ControllerType)Enum.Parse(typeof(LibsnesControllerDeck.ControllerType), Port2ComboBox.SelectedItem.ToString()); _syncSettings.LimitAnalogChangeSensitivity = LimitAnalogChangeCheckBox.Checked; - GlobalWin.MainForm.PutCoreSyncSettings(_syncSettings); + _mainForm.PutCoreSyncSettings(_syncSettings); } DialogResult = DialogResult.OK; @@ -51,14 +54,14 @@ namespace BizHawk.Client.EmuHawk private void CancelBtn_Click(object sender, EventArgs e) { - GlobalWin.OSD.AddMessage("Controller settings aborted"); + _mainForm.AddOnScreenMessage("Controller settings aborted"); DialogResult = DialogResult.Cancel; Close(); } private void PortComboBox_SelectedIndexChanged(object sender, EventArgs e) { - if (!_supressDropdownChangeEvents) + if (!_suppressDropdownChangeEvents) { var leftPort = (LibsnesControllerDeck.ControllerType)Enum.Parse(typeof(LibsnesControllerDeck.ControllerType), Port1ComboBox.SelectedItem.ToString()); var rightPort = (LibsnesControllerDeck.ControllerType)Enum.Parse(typeof(LibsnesControllerDeck.ControllerType), Port2ComboBox.SelectedItem.ToString()); diff --git a/BizHawk.Client.EmuHawk/config/SNES/SNESOptions.cs b/BizHawk.Client.EmuHawk/config/SNES/SNESOptions.cs index 331bcbf375..1f8cf0c338 100644 --- a/BizHawk.Client.EmuHawk/config/SNES/SNESOptions.cs +++ b/BizHawk.Client.EmuHawk/config/SNES/SNESOptions.cs @@ -1,7 +1,6 @@ using System; using System.Windows.Forms; using BizHawk.Emulation.Cores.Nintendo.SNES; -using BizHawk.Client.Common; namespace BizHawk.Client.EmuHawk { @@ -15,10 +14,10 @@ namespace BizHawk.Client.EmuHawk private bool _suppressDoubleSize; private bool _userDoubleSizeOption; - public static void DoSettingsDialog(IWin32Window owner) + public static void DoSettingsDialog(MainForm mainForm, LibsnesCore bsnes) { - var s = ((LibsnesCore)Global.Emulator).GetSettings(); - var ss = ((LibsnesCore)Global.Emulator).GetSyncSettings(); + var s = bsnes.GetSettings(); + var ss = bsnes.GetSyncSettings(); using var dlg = new SNESOptions { AlwaysDoubleSize = s.AlwaysDoubleSize, @@ -33,7 +32,7 @@ namespace BizHawk.Client.EmuHawk ShowBg4 = s.ShowBG4_0 }; - var result = dlg.ShowDialog(owner); + var result = dlg.ShowDialog(mainForm); if (result == DialogResult.OK) { s.AlwaysDoubleSize = dlg.AlwaysDoubleSize; @@ -47,18 +46,14 @@ namespace BizHawk.Client.EmuHawk s.ShowBG3_0 = s.ShowBG3_1 = dlg.ShowBg3; s.ShowBG4_0 = s.ShowBG4_1 = dlg.ShowBg4; - GlobalWin.MainForm.PutCoreSettings(s); - GlobalWin.MainForm.PutCoreSyncSettings(ss); + mainForm.PutCoreSettings(s); + mainForm.PutCoreSyncSettings(ss); } } private bool AlwaysDoubleSize { - get - { - return _userDoubleSizeOption; - } - + get => _userDoubleSizeOption; set { _userDoubleSizeOption = value; @@ -68,19 +63,20 @@ namespace BizHawk.Client.EmuHawk private bool CropSGBFrame { - get { return cbCropSGBFrame.Checked; } - set { cbCropSGBFrame.Checked = value; } + get => cbCropSGBFrame.Checked; + set => cbCropSGBFrame.Checked = value; } - private bool ShowObj1 { get { return Obj1Checkbox.Checked; } set { Obj1Checkbox.Checked = value; } } - private bool ShowObj2 { get { return Obj2Checkbox.Checked; } set { Obj2Checkbox.Checked = value; } } - private bool ShowObj3 { get { return Obj3Checkbox.Checked; } set { Obj3Checkbox.Checked = value; } } - private bool ShowObj4 { get { return Obj4Checkbox.Checked; } set { Obj4Checkbox.Checked = value; } } + private bool ShowObj1 { get => Obj1Checkbox.Checked; set => Obj1Checkbox.Checked = value; + } + private bool ShowObj2 { get => Obj2Checkbox.Checked; set => Obj2Checkbox.Checked = value; } + private bool ShowObj3 { get => Obj3Checkbox.Checked; set => Obj3Checkbox.Checked = value; } + private bool ShowObj4 { get => Obj4Checkbox.Checked; set => Obj4Checkbox.Checked = value; } - private bool ShowBg1 { get { return Bg1Checkbox.Checked; } set { Bg1Checkbox.Checked = value; } } - private bool ShowBg2 { get { return Bg2Checkbox.Checked; } set { Bg2Checkbox.Checked = value; } } - private bool ShowBg3 { get { return Bg3Checkbox.Checked; } set { Bg3Checkbox.Checked = value; } } - private bool ShowBg4 { get { return Bg4Checkbox.Checked; } set { Bg4Checkbox.Checked = value; } } + private bool ShowBg1 { get => Bg1Checkbox.Checked; set => Bg1Checkbox.Checked = value; } + private bool ShowBg2 { get => Bg2Checkbox.Checked; set => Bg2Checkbox.Checked = value; } + private bool ShowBg3 { get => Bg3Checkbox.Checked; set => Bg3Checkbox.Checked = value; } + private bool ShowBg4 { get => Bg4Checkbox.Checked; set => Bg4Checkbox.Checked = value; } private void RefreshDoubleSizeOption() { @@ -110,6 +106,5 @@ namespace BizHawk.Client.EmuHawk DialogResult = DialogResult.Cancel; Close(); } - } } diff --git a/BizHawk.sln.DotSettings b/BizHawk.sln.DotSettings index a72d0de73b..888a1ac200 100644 --- a/BizHawk.sln.DotSettings +++ b/BizHawk.sln.DotSettings @@ -253,6 +253,7 @@ True True True + True True True True