diff --git a/src/BizHawk.Client.EmuHawk/IMainFormForConfig.cs b/src/BizHawk.Client.EmuHawk/IMainFormForConfig.cs
index 75c95beb03..94787aa83d 100644
--- a/src/BizHawk.Client.EmuHawk/IMainFormForConfig.cs
+++ b/src/BizHawk.Client.EmuHawk/IMainFormForConfig.cs
@@ -5,7 +5,7 @@ using BizHawk.Emulation.Common;
namespace BizHawk.Client.EmuHawk
{
- public interface IMainFormForConfig : IDialogParent
+ public interface IMainFormForConfig
{
/// loaded emulator is not instance of
ISettingsAdapter GetSettingsAdapterForLoadedCore()
diff --git a/src/BizHawk.Client.EmuHawk/MainForm.Events.cs b/src/BizHawk.Client.EmuHawk/MainForm.Events.cs
index 51fcaa1393..ce0e0acfcd 100644
--- a/src/BizHawk.Client.EmuHawk/MainForm.Events.cs
+++ b/src/BizHawk.Client.EmuHawk/MainForm.Events.cs
@@ -1348,7 +1348,7 @@ namespace BizHawk.Client.EmuHawk
private DialogResult OpenNesHawkGraphicsSettingsDialog(NES.NESSettings s)
{
- using NESGraphicsConfig form = new(this, Config, s);
+ using NESGraphicsConfig form = new(Config, this, this, s);
return this.ShowDialogWithTempMute(form);
}
@@ -1465,7 +1465,7 @@ namespace BizHawk.Client.EmuHawk
private DialogResult OpenNesHawkAdvancedSettingsDialog(NES.NESSyncSettings ss, bool hasMapperProperties)
{
- using NESSyncSettingsForm form = new(this, ss, hasMapperProperties: hasMapperProperties);
+ using NESSyncSettingsForm form = new(this, this, ss, hasMapperProperties: hasMapperProperties);
return this.ShowDialogWithTempMute(form);
}
@@ -1575,7 +1575,7 @@ namespace BizHawk.Client.EmuHawk
}
private DialogResult OpenGambatteSettingsDialog(Gameboy gambatte)
- => GBPrefs.DoGBPrefsDialog(this, Config, Game, MovieSession, gambatte);
+ => GBPrefs.DoGBPrefsDialog(Config, this, Game, this, MovieSession, gambatte);
private DialogResult OpenGBHawkSettingsDialog()
=> OpenGenericCoreConfig("Gameboy Settings");
@@ -1596,7 +1596,7 @@ namespace BizHawk.Client.EmuHawk
private DialogResult OpenSameBoyPaletteSettingsDialog(Sameboy.SameboySettings s)
{
- using SameBoyColorChooserForm form = new(this, Game, Config, s);
+ using SameBoyColorChooserForm form = new(Config, this, Game, this, s);
return this.ShowDialogWithTempMute(form);
}
@@ -1640,7 +1640,7 @@ namespace BizHawk.Client.EmuHawk
}
private DialogResult OpenOctoshockSettingsDialog(Octoshock octoshock)
- => PSXOptions.DoSettingsDialog(this, Config, octoshock);
+ => PSXOptions.DoSettingsDialog(Config, this, this, octoshock);
private void PsxOptionsMenuItem_Click(object sender, EventArgs e)
{
@@ -1700,10 +1700,10 @@ namespace BizHawk.Client.EmuHawk
}
private DialogResult OpenOldBSNESSettingsDialog(LibsnesCore bsnes)
- => SNESOptions.DoSettingsDialog(this, bsnes);
+ => SNESOptions.DoSettingsDialog(this, this, bsnes);
private DialogResult OpenBSNESSettingsDialog(BsnesCore bsnes)
- => BSNESOptions.DoSettingsDialog(this, bsnes);
+ => BSNESOptions.DoSettingsDialog(this, this, bsnes);
private void SnesOptionsMenuItem_Click(object sender, EventArgs e)
{
@@ -1832,7 +1832,7 @@ namespace BizHawk.Client.EmuHawk
}
private DialogResult OpenGambatteLinkSettingsDialog(GambatteLink gambatteLink)
- => GBLPrefs.DoGBLPrefsDialog(this, Config, Game, MovieSession, gambatteLink);
+ => GBLPrefs.DoGBLPrefsDialog(Config, this, Game, this, MovieSession, gambatteLink);
private void GblSettingsMenuItem_Click(object sender, EventArgs e)
{
@@ -1966,7 +1966,7 @@ namespace BizHawk.Client.EmuHawk
private DialogResult OpenZXHawkGamepadSettingsDialog(ZXSpectrum.ZXSpectrumSyncSettings ss)
{
- using ZxSpectrumJoystickSettings form = new(this, ss);
+ using ZxSpectrumJoystickSettings form = new(this, this, ss);
return this.ShowDialogWithTempMute(form);
}
diff --git a/src/BizHawk.Client.EmuHawk/config/GB/GBLPrefs.cs b/src/BizHawk.Client.EmuHawk/config/GB/GBLPrefs.cs
index 49a19ade8c..395f2bcf86 100644
--- a/src/BizHawk.Client.EmuHawk/config/GB/GBLPrefs.cs
+++ b/src/BizHawk.Client.EmuHawk/config/GB/GBLPrefs.cs
@@ -48,12 +48,18 @@ namespace BizHawk.Client.EmuHawk
private bool SyncSettingsChanged => gbPrefControl1.SyncSettingsChanged || gbPrefControl2.SyncSettingsChanged || gbPrefControl3.SyncSettingsChanged || gbPrefControl4.SyncSettingsChanged;
- public static DialogResult DoGBLPrefsDialog(IMainFormForConfig mainForm, Config config, IGameInfo game, IMovieSession movieSession, GambatteLink gambatte)
+ public static DialogResult DoGBLPrefsDialog(
+ Config config,
+ IDialogParent dialogParent,
+ IGameInfo game,
+ IMainFormForConfig mainForm,
+ IMovieSession movieSession,
+ GambatteLink gambatte)
{
var s = gambatte.GetSettings();
var ss = gambatte.GetSyncSettings();
- using var dlg = new GBLPrefs(mainForm.DialogController, config, game, movieSession);
+ using var dlg = new GBLPrefs(dialogParent.DialogController, config, game, movieSession);
dlg.PutSettings(s, ss);
dlg.gbPrefControl1.ColorGameBoy = gambatte.IsCGBMode(0);
@@ -61,7 +67,7 @@ namespace BizHawk.Client.EmuHawk
dlg.gbPrefControl3.ColorGameBoy = gambatte.IsCGBMode(2);
dlg.gbPrefControl4.ColorGameBoy = gambatte.IsCGBMode(3);
- var result = mainForm.ShowDialogAsChild(dlg);
+ var result = dialogParent.ShowDialogAsChild(dlg);
if (result == DialogResult.OK)
{
dlg.GetSettings(out s, out ss);
diff --git a/src/BizHawk.Client.EmuHawk/config/GB/GBPrefs.cs b/src/BizHawk.Client.EmuHawk/config/GB/GBPrefs.cs
index 11b72d5919..9bf1144d4e 100644
--- a/src/BizHawk.Client.EmuHawk/config/GB/GBPrefs.cs
+++ b/src/BizHawk.Client.EmuHawk/config/GB/GBPrefs.cs
@@ -17,15 +17,21 @@ namespace BizHawk.Client.EmuHawk
Icon = Properties.Resources.GambatteIcon;
}
- public static DialogResult DoGBPrefsDialog(IMainFormForConfig mainForm, Config config, IGameInfo game, IMovieSession movieSession, Gameboy gb)
+ public static DialogResult DoGBPrefsDialog(
+ Config config,
+ IDialogParent dialogParent,
+ IGameInfo game,
+ IMainFormForConfig mainForm,
+ IMovieSession movieSession,
+ Gameboy gb)
{
var s = gb.GetSettings();
var ss = gb.GetSyncSettings();
- using var dlg = new GBPrefs(mainForm.DialogController);
+ using var dlg = new GBPrefs(dialogParent.DialogController);
dlg.gbPrefControl1.PutSettings(config, game, movieSession, s, ss);
dlg.gbPrefControl1.ColorGameBoy = gb.IsCGBMode() || gb.IsSgb;
- var result = mainForm.ShowDialogAsChild(dlg);
+ var result = dialogParent.ShowDialogAsChild(dlg);
if (result.IsOk())
{
dlg.gbPrefControl1.GetSettings(out s, out ss);
diff --git a/src/BizHawk.Client.EmuHawk/config/GB/SameBoyColorChooserForm.cs b/src/BizHawk.Client.EmuHawk/config/GB/SameBoyColorChooserForm.cs
index 6d3fc13331..8439c2ef0e 100644
--- a/src/BizHawk.Client.EmuHawk/config/GB/SameBoyColorChooserForm.cs
+++ b/src/BizHawk.Client.EmuHawk/config/GB/SameBoyColorChooserForm.cs
@@ -10,19 +10,27 @@ using BizHawk.Emulation.Cores.Nintendo.Sameboy;
namespace BizHawk.Client.EmuHawk
{
- public partial class SameBoyColorChooserForm : Form
+ public partial class SameBoyColorChooserForm : Form, IDialogParent
{
private readonly IMainFormForConfig _mainForm;
private readonly IGameInfo _game;
private readonly Config _config;
private readonly Sameboy.SameboySettings _settings;
- public SameBoyColorChooserForm(IMainFormForConfig mainForm, IGameInfo game, Config config, Sameboy.SameboySettings settings)
+ public IDialogController DialogController { get; }
+
+ public SameBoyColorChooserForm(
+ Config config,
+ IDialogController dialogController,
+ IGameInfo game,
+ IMainFormForConfig mainForm,
+ Sameboy.SameboySettings settings)
{
_mainForm = mainForm;
_game = game;
_config = config;
_settings = settings;
+ DialogController = dialogController;
InitializeComponent();
SetAllColors(_settings.GetCustomPalette());
}
@@ -228,7 +236,7 @@ namespace BizHawk.Client.EmuHawk
{
if (alert)
{
- _mainForm.ModalMessageBox("Error loading .pal file!");
+ this.ModalMessageBox("Error loading .pal file!");
}
}
}
@@ -249,7 +257,7 @@ namespace BizHawk.Client.EmuHawk
}
catch
{
- _mainForm.ModalMessageBox("Error saving .pal file!");
+ this.ModalMessageBox("Error saving .pal file!");
}
}
diff --git a/src/BizHawk.Client.EmuHawk/config/GenericCoreConfig.cs b/src/BizHawk.Client.EmuHawk/config/GenericCoreConfig.cs
index c1748d6156..7104b57525 100644
--- a/src/BizHawk.Client.EmuHawk/config/GenericCoreConfig.cs
+++ b/src/BizHawk.Client.EmuHawk/config/GenericCoreConfig.cs
@@ -2,6 +2,7 @@
using System.ComponentModel;
using System.Windows.Forms;
+using BizHawk.Client.Common;
using BizHawk.Emulation.Common;
namespace BizHawk.Client.EmuHawk
@@ -71,7 +72,7 @@ namespace BizHawk.Client.EmuHawk
Close();
}
- public static DialogResult DoDialog(IEmulator emulator, IMainFormForConfig owner, string title, bool isMovieActive)
+ public static DialogResult DoDialog(IEmulator emulator, IDialogParent owner, string title, bool isMovieActive)
{
if (emulator is Emulation.Cores.Waterbox.NymaCore core)
{
@@ -109,7 +110,7 @@ namespace BizHawk.Client.EmuHawk
}
public static DialogResult DoDialog(
- IMainFormForConfig owner,
+ IDialogParent owner,
string title,
bool isMovieActive,
bool hideSettings,
diff --git a/src/BizHawk.Client.EmuHawk/config/NES/NESGraphicsConfig.cs b/src/BizHawk.Client.EmuHawk/config/NES/NESGraphicsConfig.cs
index 9b2223cdab..45e3a3d1f9 100644
--- a/src/BizHawk.Client.EmuHawk/config/NES/NESGraphicsConfig.cs
+++ b/src/BizHawk.Client.EmuHawk/config/NES/NESGraphicsConfig.cs
@@ -9,7 +9,7 @@ using BizHawk.Emulation.Cores.Nintendo.NES;
namespace BizHawk.Client.EmuHawk
{
- public partial class NESGraphicsConfig : Form
+ public partial class NESGraphicsConfig : Form, IDialogParent
{
// TODO:
// Allow selection of palette file from archive
@@ -20,14 +20,18 @@ namespace BizHawk.Client.EmuHawk
private NES.NESSettings _settings;
//private Bitmap _bmp;
+ public IDialogController DialogController { get; }
+
public NESGraphicsConfig(
- IMainFormForConfig mainForm,
Config config,
+ IDialogController dialogController,
+ IMainFormForConfig mainForm,
NES.NESSettings settings)
{
_mainForm = mainForm;
_config = config;
_settings = settings;
+ DialogController = dialogController;
InitializeComponent();
}
@@ -108,7 +112,7 @@ namespace BizHawk.Client.EmuHawk
var data = Palettes.Load_FCEUX_Palette(palette.ReadAllBytes());
if (showMsg)
{
- _mainForm.DialogController.AddOnScreenMessage($"Palette file loaded: {palette.Name}");
+ DialogController.AddOnScreenMessage($"Palette file loaded: {palette.Name}");
}
return data;
@@ -120,7 +124,7 @@ namespace BizHawk.Client.EmuHawk
// no filename: interpret this as "reset to default"
if (showMsg)
{
- _mainForm.DialogController.AddOnScreenMessage("Standard Palette set");
+ DialogController.AddOnScreenMessage("Standard Palette set");
}
return (byte[,])Palettes.QuickNESPalette.Clone();
diff --git a/src/BizHawk.Client.EmuHawk/config/NES/NESSyncSettingsForm.cs b/src/BizHawk.Client.EmuHawk/config/NES/NESSyncSettingsForm.cs
index a778d79103..5562580757 100644
--- a/src/BizHawk.Client.EmuHawk/config/NES/NESSyncSettingsForm.cs
+++ b/src/BizHawk.Client.EmuHawk/config/NES/NESSyncSettingsForm.cs
@@ -18,13 +18,14 @@ namespace BizHawk.Client.EmuHawk
public IDialogController DialogController { get; }
public NESSyncSettingsForm(
+ IDialogController dialogController,
IMainFormForConfig mainForm,
NES.NESSyncSettings syncSettings,
bool hasMapperProperties)
{
_mainForm = mainForm;
_syncSettings = syncSettings;
- DialogController = mainForm.DialogController;
+ DialogController = dialogController;
InitializeComponent();
HelpBtn.Image = Properties.Resources.Help;
diff --git a/src/BizHawk.Client.EmuHawk/config/PSX/PSXOptions.cs b/src/BizHawk.Client.EmuHawk/config/PSX/PSXOptions.cs
index 322515b872..289c0e4ee8 100644
--- a/src/BizHawk.Client.EmuHawk/config/PSX/PSXOptions.cs
+++ b/src/BizHawk.Client.EmuHawk/config/PSX/PSXOptions.cs
@@ -7,14 +7,17 @@ using BizHawk.Client.Common;
namespace BizHawk.Client.EmuHawk
{
- public partial class PSXOptions : Form
+ public partial class PSXOptions : Form, IDialogParent
{
// backups of the labels for string replacing
private readonly string _lblPixelProText, _lblMednafenText, _lblTweakedMednafenText;
-
+
+ public IDialogController DialogController { get; }
+
private PSXOptions(
- IMainFormForConfig mainForm,
Config config,
+ IDialogController dialogController,
+ IMainFormForConfig mainForm,
Octoshock.Settings settings,
Octoshock.SyncSettings syncSettings,
OctoshockDll.eVidStandard vidStandard,
@@ -27,6 +30,7 @@ namespace BizHawk.Client.EmuHawk
_syncSettings = syncSettings;
_previewVideoStandard = vidStandard;
_previewVideoSize = currentVideoSize;
+ DialogController = dialogController;
if (_previewVideoStandard == OctoshockDll.eVidStandard.NTSC)
{
@@ -73,19 +77,21 @@ namespace BizHawk.Client.EmuHawk
private void BtnNiceDisplayConfig_Click(object sender, EventArgs e)
{
_dispSettingsSet = true;
- _mainForm.DialogController.ShowMessageBox("Finetuned Display Options will take effect if you OK from PSX Options");
+ DialogController.ShowMessageBox("Finetuned Display Options will take effect if you OK from PSX Options");
}
- public static DialogResult DoSettingsDialog(IMainFormForConfig mainForm, Config config, Octoshock psx)
+ public static DialogResult DoSettingsDialog(
+ Config config,
+ IDialogParent dialogParent,
+ IMainFormForConfig mainForm,
+ Octoshock psx)
{
var s = psx.GetSettings();
var ss = psx.GetSyncSettings();
var vid = psx.SystemVidStandard;
var size = psx.CurrentVideoSize;
- using var dlg = new PSXOptions(mainForm, config, s, ss, vid, size);
-
- var result = mainForm.ShowDialogAsChild(dlg);
- return result;
+ using var dlg = new PSXOptions(config, dialogParent.DialogController, mainForm, s, ss, vid, size);
+ return dialogParent.ShowDialogAsChild(dlg);
}
private void SyncSettingsFromGui(Octoshock.Settings settings, Octoshock.SyncSettings syncSettings)
@@ -188,7 +194,7 @@ namespace BizHawk.Client.EmuHawk
private void LinkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
- _mainForm.DialogController.ShowMessageBox($@"These options control BizHawk's Display Options to make it act quite a lot like Mednafen:
+ DialogController.ShowMessageBox($@"These options control BizHawk's Display Options to make it act quite a lot like Mednafen:
{nameof(_config.DispManagerAR)} = System (Use emulator-recommended AR)
{nameof(_config.DispFixAspectRatio)} = true (Maintain aspect ratio [letterbox main window as needed])
diff --git a/src/BizHawk.Client.EmuHawk/config/SNES/BSNESOptions.cs b/src/BizHawk.Client.EmuHawk/config/SNES/BSNESOptions.cs
index 6104e2ec54..fad7a0c8d6 100644
--- a/src/BizHawk.Client.EmuHawk/config/SNES/BSNESOptions.cs
+++ b/src/BizHawk.Client.EmuHawk/config/SNES/BSNESOptions.cs
@@ -1,5 +1,7 @@
using System;
using System.Windows.Forms;
+
+using BizHawk.Client.Common;
using BizHawk.Emulation.Cores.Nintendo.BSNES;
namespace BizHawk.Client.EmuHawk
@@ -11,7 +13,7 @@ namespace BizHawk.Client.EmuHawk
InitializeComponent();
}
- public static DialogResult DoSettingsDialog(IMainFormForConfig mainForm, BsnesCore bsnes)
+ public static DialogResult DoSettingsDialog(IDialogParent dialogParent, IMainFormForConfig mainForm, BsnesCore bsnes)
{
var s = bsnes.GetSettings();
var ss = bsnes.GetSyncSettings();
@@ -40,7 +42,7 @@ namespace BizHawk.Client.EmuHawk
ShowBg4_1 = s.ShowBG4_1
};
- DialogResult result = mainForm.ShowDialogAsChild(dlg);
+ var result = dialogParent.ShowDialogAsChild(dlg);
if (result == DialogResult.OK)
{
s.AlwaysDoubleSize = dlg.AlwaysDoubleSize;
diff --git a/src/BizHawk.Client.EmuHawk/config/SNES/SNESOptions.cs b/src/BizHawk.Client.EmuHawk/config/SNES/SNESOptions.cs
index 2dc5a6f3bd..a03a9d2b41 100644
--- a/src/BizHawk.Client.EmuHawk/config/SNES/SNESOptions.cs
+++ b/src/BizHawk.Client.EmuHawk/config/SNES/SNESOptions.cs
@@ -1,5 +1,7 @@
using System;
using System.Windows.Forms;
+
+using BizHawk.Client.Common;
using BizHawk.Emulation.Cores.Nintendo.SNES;
namespace BizHawk.Client.EmuHawk
@@ -14,7 +16,7 @@ namespace BizHawk.Client.EmuHawk
private bool _suppressDoubleSize;
private bool _userDoubleSizeOption;
- public static DialogResult DoSettingsDialog(IMainFormForConfig mainForm, LibsnesCore bsnes)
+ public static DialogResult DoSettingsDialog(IDialogParent dialogParent, IMainFormForConfig mainForm, LibsnesCore bsnes)
{
var s = bsnes.GetSettings();
var ss = bsnes.GetSyncSettings();
@@ -33,7 +35,7 @@ namespace BizHawk.Client.EmuHawk
ShowBg4 = s.ShowBG4_0
};
- var result = mainForm.ShowDialogAsChild(dlg);
+ var result = dialogParent.ShowDialogAsChild(dlg);
if (result == DialogResult.OK)
{
s.AlwaysDoubleSize = dlg.AlwaysDoubleSize;
diff --git a/src/BizHawk.Client.EmuHawk/config/ZXSpectrum/ZXSpectrumJoystickSettings.cs b/src/BizHawk.Client.EmuHawk/config/ZXSpectrum/ZXSpectrumJoystickSettings.cs
index bbcead71ec..99d49f9d17 100644
--- a/src/BizHawk.Client.EmuHawk/config/ZXSpectrum/ZXSpectrumJoystickSettings.cs
+++ b/src/BizHawk.Client.EmuHawk/config/ZXSpectrum/ZXSpectrumJoystickSettings.cs
@@ -7,18 +7,22 @@ using BizHawk.Emulation.Cores.Computers.SinclairSpectrum;
namespace BizHawk.Client.EmuHawk
{
- public partial class ZxSpectrumJoystickSettings : Form
+ public partial class ZxSpectrumJoystickSettings : Form, IDialogParent
{
private readonly IMainFormForConfig _mainForm;
private readonly ZXSpectrum.ZXSpectrumSyncSettings _syncSettings;
private string[] _possibleControllers;
+ public IDialogController DialogController { get; }
+
public ZxSpectrumJoystickSettings(
+ IDialogController dialogController,
IMainFormForConfig mainForm,
ZXSpectrum.ZXSpectrumSyncSettings syncSettings)
{
_mainForm = mainForm;
_syncSettings = syncSettings;
+ DialogController = dialogController;
InitializeComponent();
Icon = Properties.Resources.GameControllerIcon;
}
@@ -110,7 +114,7 @@ namespace BizHawk.Client.EmuHawk
}
else
{
- _mainForm.DialogController.ShowMessageBox("Invalid joystick configuration. \nDuplicates have automatically been changed to NULL.\n\nPlease review the configuration");
+ DialogController.ShowMessageBox("Invalid joystick configuration. \nDuplicates have automatically been changed to NULL.\n\nPlease review the configuration");
}
}
else