diff --git a/src/BizHawk.Client.Common/Api/Classes/EmuClientApi.cs b/src/BizHawk.Client.Common/Api/Classes/EmuClientApi.cs index 15ce16cdc7..b35e451d32 100644 --- a/src/BizHawk.Client.Common/Api/Classes/EmuClientApi.cs +++ b/src/BizHawk.Client.Common/Api/Classes/EmuClientApi.cs @@ -198,7 +198,7 @@ namespace BizHawk.Client.Common { _config.TargetZoomFactors[Emulator.SystemId] = size; _mainForm.FrameBufferResized(); - _mainForm.AddOnScreenMessage($"Window size set to {size}x"); + _displayManager.OSD.AddMessage($"Window size set to {size}x"); } else { diff --git a/src/BizHawk.Client.Common/IDialogController.cs b/src/BizHawk.Client.Common/IDialogController.cs index 6779b51f2d..839ad2e26f 100644 --- a/src/BizHawk.Client.Common/IDialogController.cs +++ b/src/BizHawk.Client.Common/IDialogController.cs @@ -4,6 +4,8 @@ namespace BizHawk.Client.Common { public interface IDialogController { + void AddOnScreenMessage(string message); + /// /// Creates and shows a System.Windows.Forms.MessageBox or equivalent with the given , /// and with the given , , and if they're specified. diff --git a/src/BizHawk.Client.Common/IMainFormForApi.cs b/src/BizHawk.Client.Common/IMainFormForApi.cs index 366058543a..649f2c2c13 100644 --- a/src/BizHawk.Client.Common/IMainFormForApi.cs +++ b/src/BizHawk.Client.Common/IMainFormForApi.cs @@ -32,8 +32,6 @@ namespace BizHawk.Client.Common /// only referenced from EmuClientApi bool PauseAvi { set; } - void AddOnScreenMessage(string message); - /// only referenced from EmuClientApi void ClearHolds(); diff --git a/src/BizHawk.Client.Common/movie/MovieSession.cs b/src/BizHawk.Client.Common/movie/MovieSession.cs index db75e61ccb..a2f4471f6f 100644 --- a/src/BizHawk.Client.Common/movie/MovieSession.cs +++ b/src/BizHawk.Client.Common/movie/MovieSession.cs @@ -18,7 +18,6 @@ namespace BizHawk.Client.Common private readonly Action _pauseCallback; private readonly Action _modeChangedCallback; - private readonly Action _messageCallback; private IMovie _queuedMovie; @@ -29,13 +28,11 @@ namespace BizHawk.Client.Common string backDirectory, IDialogParent dialogParent, IQuickBmpFile quickBmpFile, - Action messageCallback, Action pauseCallback, Action modeChangedCallback) { Settings = settings; BackupDirectory = backDirectory; - _messageCallback = messageCallback; _dialogParent = dialogParent; _quickBmpFile = quickBmpFile; _pauseCallback = pauseCallback @@ -326,9 +323,7 @@ namespace BizHawk.Client.Common public void PopupMessage(string message) => _dialogParent.ModalMessageBox(message, "Warning", EMsgBoxIcon.Warning); private void Output(string message) - { - _messageCallback?.Invoke(message); - } + => _dialogParent.DialogController.AddOnScreenMessage(message); private void LatchInputToUser() { diff --git a/src/BizHawk.Client.EmuHawk/IMainFormForConfig.cs b/src/BizHawk.Client.EmuHawk/IMainFormForConfig.cs index 0e7e789bf1..ef8ce6d643 100644 --- a/src/BizHawk.Client.EmuHawk/IMainFormForConfig.cs +++ b/src/BizHawk.Client.EmuHawk/IMainFormForConfig.cs @@ -10,8 +10,6 @@ namespace BizHawk.Client.EmuHawk IMovieSession MovieSession { get; } - void AddOnScreenMessage(string message); - void PutCoreSettings(object o); void PutCoreSyncSettings(object o); diff --git a/src/BizHawk.Client.EmuHawk/IMainFormForTools.cs b/src/BizHawk.Client.EmuHawk/IMainFormForTools.cs index a5b7c86f7e..dd42faad08 100644 --- a/src/BizHawk.Client.EmuHawk/IMainFormForTools.cs +++ b/src/BizHawk.Client.EmuHawk/IMainFormForTools.cs @@ -47,8 +47,6 @@ namespace BizHawk.Client.EmuHawk /// only referenced from event Action OnPauseChanged; - void AddOnScreenMessage(string message); - BitmapBuffer CaptureOSD(); /// only referenced from diff --git a/src/BizHawk.Client.EmuHawk/MainForm.Events.cs b/src/BizHawk.Client.EmuHawk/MainForm.Events.cs index 46c8155a82..5ed5fbef0a 100644 --- a/src/BizHawk.Client.EmuHawk/MainForm.Events.cs +++ b/src/BizHawk.Client.EmuHawk/MainForm.Events.cs @@ -889,7 +889,7 @@ namespace BizHawk.Client.EmuHawk private void PathsMenuItem_Click(object sender, EventArgs e) { using var form = new PathConfig(this, Config.PathEntries, Game.System); - form.ShowDialog(); + if (form.ShowDialog().IsOk()) AddOnScreenMessage("Path settings saved"); } private void SoundMenuItem_Click(object sender, EventArgs e) @@ -950,8 +950,11 @@ namespace BizHawk.Client.EmuHawk private void CustomizeMenuItem_Click(object sender, EventArgs e) { - using var form = new EmuHawkOptions(BumpAutoFlushSaveRamTimer, Config, this.AddOnScreenMessage); - form.ShowDialog(); + var prevLuaEngine = Config.LuaEngine; + using var form = new EmuHawkOptions(Config, BumpAutoFlushSaveRamTimer); + if (!form.ShowDialog().IsOk()) return; + AddOnScreenMessage("Custom configurations saved."); + if (Config.LuaEngine != prevLuaEngine) AddOnScreenMessage("Restart EmuHawk for Lua change to take effect"); } private void ProfilesMenuItem_Click(object sender, EventArgs e) diff --git a/src/BizHawk.Client.EmuHawk/MainForm.cs b/src/BizHawk.Client.EmuHawk/MainForm.cs index 277a59aef5..45c4334ad8 100644 --- a/src/BizHawk.Client.EmuHawk/MainForm.cs +++ b/src/BizHawk.Client.EmuHawk/MainForm.cs @@ -172,6 +172,7 @@ namespace BizHawk.Client.EmuHawk if (Config.SkipWaterboxIntegrityChecks) prefs = CoreComm.CorePreferencesFlags.WaterboxMemoryConsistencyCheck; + // can't pass self as IDialogParent :( return new CoreComm( message => this.ModalMessageBox(message, "Warning", EMsgBoxIcon.Warning), AddOnScreenMessage, @@ -334,7 +335,6 @@ namespace BizHawk.Client.EmuHawk Config.PathEntries.MovieBackupsAbsolutePath(), this, QuickBmpFile, - AddOnScreenMessage, PauseEmulator, SetMainformMovieInfo); @@ -2150,7 +2150,7 @@ namespace BizHawk.Client.EmuHawk if (!LoadRom(romPath, args, out var failureIsFromAskSave)) { - if (failureIsFromAskSave) OSD.AddMessage("ROM loading cancelled; a tool had unsaved changes"); + if (failureIsFromAskSave) AddOnScreenMessage("ROM loading cancelled; a tool had unsaved changes"); else Config.RecentRoms.HandleLoadError(this, romPath, rom); } } @@ -3728,7 +3728,7 @@ namespace BizHawk.Client.EmuHawk ChooseArchive = LoadArchiveChooser, ChoosePlatform = ChoosePlatformForRom, Deterministic = deterministic, - MessageCallback = OSD.AddMessage, + MessageCallback = AddOnScreenMessage, OpenAdvanced = args.OpenAdvanced }; FirmwareManager.RecentlyServed.Clear(); diff --git a/src/BizHawk.Client.EmuHawk/config/EmuHawkOptions.cs b/src/BizHawk.Client.EmuHawk/config/EmuHawkOptions.cs index 61da2376b5..72abe2197e 100644 --- a/src/BizHawk.Client.EmuHawk/config/EmuHawkOptions.cs +++ b/src/BizHawk.Client.EmuHawk/config/EmuHawkOptions.cs @@ -11,13 +11,10 @@ namespace BizHawk.Client.EmuHawk private readonly Config _config; - private readonly Action _osdMessageCallback; - - public EmuHawkOptions(Action autoFlushSaveRamTimerBumpCallback, Config config, Action osdMessageCallback) + public EmuHawkOptions(Config config, Action autoFlushSaveRamTimerBumpCallback) { _autoFlushSaveRamTimerBumpCallback = autoFlushSaveRamTimerBumpCallback; _config = config; - _osdMessageCallback = osdMessageCallback; InitializeComponent(); } @@ -138,7 +135,6 @@ namespace BizHawk.Client.EmuHawk _config.SkipWaterboxIntegrityChecks = cbSkipWaterboxIntegrityChecks.Checked; _config.NoMixedInputHokeyOverride = NoMixedKeyPriorityCheckBox.Checked; - var prevLuaEngine = _config.LuaEngine; if (LuaInterfaceRadio.Checked) { _config.LuaEngine = ELuaEngine.LuaPlusLuaInterface; @@ -148,12 +144,6 @@ namespace BizHawk.Client.EmuHawk _config.LuaEngine = ELuaEngine.NLuaPlusKopiLua; } - _osdMessageCallback("Custom configurations saved."); - if (prevLuaEngine != _config.LuaEngine) - { - _osdMessageCallback("Restart emulator for Lua change to take effect"); - } - Close(); DialogResult = DialogResult.OK; } diff --git a/src/BizHawk.Client.EmuHawk/config/NES/NESGraphicsConfig.cs b/src/BizHawk.Client.EmuHawk/config/NES/NESGraphicsConfig.cs index 34ce13c946..023cc78e82 100644 --- a/src/BizHawk.Client.EmuHawk/config/NES/NESGraphicsConfig.cs +++ b/src/BizHawk.Client.EmuHawk/config/NES/NESGraphicsConfig.cs @@ -108,7 +108,7 @@ namespace BizHawk.Client.EmuHawk var data = Palettes.Load_FCEUX_Palette(palette.ReadAllBytes()); if (showMsg) { - _mainForm.AddOnScreenMessage($"Palette file loaded: {palette.Name}"); + _mainForm.DialogController.AddOnScreenMessage($"Palette file loaded: {palette.Name}"); } return data; @@ -120,7 +120,7 @@ namespace BizHawk.Client.EmuHawk // no filename: interpret this as "reset to default" if (showMsg) { - _mainForm.AddOnScreenMessage("Standard Palette set"); + _mainForm.DialogController.AddOnScreenMessage("Standard Palette set"); } return (byte[,])Palettes.QuickNESPalette.Clone(); diff --git a/src/BizHawk.Client.EmuHawk/config/PathConfig.cs b/src/BizHawk.Client.EmuHawk/config/PathConfig.cs index addb0795c8..6895ff776b 100644 --- a/src/BizHawk.Client.EmuHawk/config/PathConfig.cs +++ b/src/BizHawk.Client.EmuHawk/config/PathConfig.cs @@ -261,7 +261,6 @@ namespace BizHawk.Client.EmuHawk SaveSettings(); _pathEntries.RefreshTempPath(); - _mainForm.AddOnScreenMessage("Path settings saved"); Close(); }