SNES config dialogs - pass in dependencies
This commit is contained in:
parent
4a509fa410
commit
4a332c1fb0
|
@ -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)
|
||||
|
|
|
@ -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<LibsnesControllerDeck.ControllerType>(_syncSettings.LeftPort);
|
||||
Port2ComboBox.PopulateFromEnum<LibsnesControllerDeck.ControllerType>(_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());
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -253,6 +253,7 @@
|
|||
<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/=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/=Libretro/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=Lightgun/@EntryIndexedValue">True</s:Boolean>
|
||||
|
|
Loading…
Reference in New Issue