SNES config dialogs - pass in dependencies

This commit is contained in:
adelikat 2019-12-16 17:53:54 -06:00
parent 4a509fa410
commit 4a332c1fb0
4 changed files with 41 additions and 36 deletions

View File

@ -2216,8 +2216,11 @@ namespace BizHawk.Client.EmuHawk
private void SNESControllerConfigurationMenuItem_Click(object sender, EventArgs e) private void SNESControllerConfigurationMenuItem_Click(object sender, EventArgs e)
{ {
using var form = new SNESControllerSettings(); if (Emulator is LibsnesCore bsnes)
form.ShowDialog(); {
using var form = new SNESControllerSettings(this, bsnes.GetSyncSettings().Clone());
form.ShowDialog();
}
} }
private void SnesGfxDebuggerMenuItem_Click(object sender, EventArgs e) private void SnesGfxDebuggerMenuItem_Click(object sender, EventArgs e)
@ -2238,7 +2241,10 @@ namespace BizHawk.Client.EmuHawk
private void SnesOptionsMenuItem_Click(object sender, EventArgs e) 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) private void Snes9xSettingsMenuItem_Click(object sender, EventArgs e)

View File

@ -9,24 +9,27 @@ namespace BizHawk.Client.EmuHawk
{ {
public partial class SNESControllerSettings : Form public partial class SNESControllerSettings : Form
{ {
private LibsnesCore.SnesSyncSettings _syncSettings; private readonly MainForm _mainForm;
private bool _supressDropdownChangeEvents; private readonly LibsnesCore.SnesSyncSettings _syncSettings;
private bool _suppressDropdownChangeEvents;
public SNESControllerSettings() public SNESControllerSettings(
MainForm mainForm,
LibsnesCore.SnesSyncSettings syncSettings)
{ {
_mainForm = mainForm;
_syncSettings = syncSettings;
InitializeComponent(); InitializeComponent();
} }
private void SNESControllerSettings_Load(object sender, EventArgs e) private void SNESControllerSettings_Load(object sender, EventArgs e)
{ {
_syncSettings = ((LibsnesCore)Global.Emulator).GetSyncSettings().Clone();
LimitAnalogChangeCheckBox.Checked = _syncSettings.LimitAnalogChangeSensitivity; LimitAnalogChangeCheckBox.Checked = _syncSettings.LimitAnalogChangeSensitivity;
_supressDropdownChangeEvents = true; _suppressDropdownChangeEvents = true;
Port1ComboBox.PopulateFromEnum<LibsnesControllerDeck.ControllerType>(_syncSettings.LeftPort); Port1ComboBox.PopulateFromEnum<LibsnesControllerDeck.ControllerType>(_syncSettings.LeftPort);
Port2ComboBox.PopulateFromEnum<LibsnesControllerDeck.ControllerType>(_syncSettings.RightPort); Port2ComboBox.PopulateFromEnum<LibsnesControllerDeck.ControllerType>(_syncSettings.RightPort);
_supressDropdownChangeEvents = false; _suppressDropdownChangeEvents = false;
} }
private void OkBtn_Click(object sender, EventArgs e) 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.RightPort = (LibsnesControllerDeck.ControllerType)Enum.Parse(typeof(LibsnesControllerDeck.ControllerType), Port2ComboBox.SelectedItem.ToString());
_syncSettings.LimitAnalogChangeSensitivity = LimitAnalogChangeCheckBox.Checked; _syncSettings.LimitAnalogChangeSensitivity = LimitAnalogChangeCheckBox.Checked;
GlobalWin.MainForm.PutCoreSyncSettings(_syncSettings); _mainForm.PutCoreSyncSettings(_syncSettings);
} }
DialogResult = DialogResult.OK; DialogResult = DialogResult.OK;
@ -51,14 +54,14 @@ namespace BizHawk.Client.EmuHawk
private void CancelBtn_Click(object sender, EventArgs e) private void CancelBtn_Click(object sender, EventArgs e)
{ {
GlobalWin.OSD.AddMessage("Controller settings aborted"); _mainForm.AddOnScreenMessage("Controller settings aborted");
DialogResult = DialogResult.Cancel; DialogResult = DialogResult.Cancel;
Close(); Close();
} }
private void PortComboBox_SelectedIndexChanged(object sender, EventArgs e) 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 leftPort = (LibsnesControllerDeck.ControllerType)Enum.Parse(typeof(LibsnesControllerDeck.ControllerType), Port1ComboBox.SelectedItem.ToString());
var rightPort = (LibsnesControllerDeck.ControllerType)Enum.Parse(typeof(LibsnesControllerDeck.ControllerType), Port2ComboBox.SelectedItem.ToString()); var rightPort = (LibsnesControllerDeck.ControllerType)Enum.Parse(typeof(LibsnesControllerDeck.ControllerType), Port2ComboBox.SelectedItem.ToString());

View File

@ -1,7 +1,6 @@
using System; using System;
using System.Windows.Forms; using System.Windows.Forms;
using BizHawk.Emulation.Cores.Nintendo.SNES; using BizHawk.Emulation.Cores.Nintendo.SNES;
using BizHawk.Client.Common;
namespace BizHawk.Client.EmuHawk namespace BizHawk.Client.EmuHawk
{ {
@ -15,10 +14,10 @@ namespace BizHawk.Client.EmuHawk
private bool _suppressDoubleSize; private bool _suppressDoubleSize;
private bool _userDoubleSizeOption; private bool _userDoubleSizeOption;
public static void DoSettingsDialog(IWin32Window owner) public static void DoSettingsDialog(MainForm mainForm, LibsnesCore bsnes)
{ {
var s = ((LibsnesCore)Global.Emulator).GetSettings(); var s = bsnes.GetSettings();
var ss = ((LibsnesCore)Global.Emulator).GetSyncSettings(); var ss = bsnes.GetSyncSettings();
using var dlg = new SNESOptions using var dlg = new SNESOptions
{ {
AlwaysDoubleSize = s.AlwaysDoubleSize, AlwaysDoubleSize = s.AlwaysDoubleSize,
@ -33,7 +32,7 @@ namespace BizHawk.Client.EmuHawk
ShowBg4 = s.ShowBG4_0 ShowBg4 = s.ShowBG4_0
}; };
var result = dlg.ShowDialog(owner); var result = dlg.ShowDialog(mainForm);
if (result == DialogResult.OK) if (result == DialogResult.OK)
{ {
s.AlwaysDoubleSize = dlg.AlwaysDoubleSize; s.AlwaysDoubleSize = dlg.AlwaysDoubleSize;
@ -47,18 +46,14 @@ namespace BizHawk.Client.EmuHawk
s.ShowBG3_0 = s.ShowBG3_1 = dlg.ShowBg3; s.ShowBG3_0 = s.ShowBG3_1 = dlg.ShowBg3;
s.ShowBG4_0 = s.ShowBG4_1 = dlg.ShowBg4; s.ShowBG4_0 = s.ShowBG4_1 = dlg.ShowBg4;
GlobalWin.MainForm.PutCoreSettings(s); mainForm.PutCoreSettings(s);
GlobalWin.MainForm.PutCoreSyncSettings(ss); mainForm.PutCoreSyncSettings(ss);
} }
} }
private bool AlwaysDoubleSize private bool AlwaysDoubleSize
{ {
get get => _userDoubleSizeOption;
{
return _userDoubleSizeOption;
}
set set
{ {
_userDoubleSizeOption = value; _userDoubleSizeOption = value;
@ -68,19 +63,20 @@ namespace BizHawk.Client.EmuHawk
private bool CropSGBFrame private bool CropSGBFrame
{ {
get { return cbCropSGBFrame.Checked; } get => cbCropSGBFrame.Checked;
set { cbCropSGBFrame.Checked = value; } set => cbCropSGBFrame.Checked = value;
} }
private bool ShowObj1 { get { return Obj1Checkbox.Checked; } set { Obj1Checkbox.Checked = value; } } private bool ShowObj1 { get => 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 ShowObj2 { get => Obj2Checkbox.Checked; set => Obj2Checkbox.Checked = value; }
private bool ShowObj4 { get { return Obj4Checkbox.Checked; } set { Obj4Checkbox.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 ShowBg1 { get => Bg1Checkbox.Checked; set => Bg1Checkbox.Checked = value; }
private bool ShowBg2 { get { return Bg2Checkbox.Checked; } set { Bg2Checkbox.Checked = value; } } private bool ShowBg2 { get => Bg2Checkbox.Checked; set => Bg2Checkbox.Checked = value; }
private bool ShowBg3 { get { return Bg3Checkbox.Checked; } set { Bg3Checkbox.Checked = value; } } private bool ShowBg3 { get => Bg3Checkbox.Checked; set => Bg3Checkbox.Checked = value; }
private bool ShowBg4 { get { return Bg4Checkbox.Checked; } set { Bg4Checkbox.Checked = value; } } private bool ShowBg4 { get => Bg4Checkbox.Checked; set => Bg4Checkbox.Checked = value; }
private void RefreshDoubleSizeOption() private void RefreshDoubleSizeOption()
{ {
@ -110,6 +106,5 @@ namespace BizHawk.Client.EmuHawk
DialogResult = DialogResult.Cancel; DialogResult = DialogResult.Cancel;
Close(); Close();
} }
} }
} }

View File

@ -253,6 +253,7 @@
<s:Boolean x:Key="/Default/UserDictionary/Words/=Intelli/@EntryIndexedValue">True</s:Boolean> <s:Boolean x:Key="/Default/UserDictionary/Words/=Intelli/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=INTV/@EntryIndexedValue">True</s:Boolean> <s:Boolean x:Key="/Default/UserDictionary/Words/=INTV/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Joypad/@EntryIndexedValue">True</s:Boolean> <s:Boolean x:Key="/Default/UserDictionary/Words/=Joypad/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Justifier/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=keepalives/@EntryIndexedValue">True</s:Boolean> <s:Boolean x:Key="/Default/UserDictionary/Words/=keepalives/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Libretro/@EntryIndexedValue">True</s:Boolean> <s:Boolean x:Key="/Default/UserDictionary/Words/=Libretro/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Lightgun/@EntryIndexedValue">True</s:Boolean> <s:Boolean x:Key="/Default/UserDictionary/Words/=Lightgun/@EntryIndexedValue">True</s:Boolean>