diff --git a/src/BizHawk.Client.EmuHawk/MainForm.cs b/src/BizHawk.Client.EmuHawk/MainForm.cs index 338d6596c7..5464882c4e 100644 --- a/src/BizHawk.Client.EmuHawk/MainForm.cs +++ b/src/BizHawk.Client.EmuHawk/MainForm.cs @@ -57,6 +57,12 @@ namespace BizHawk.Client.EmuHawk private readonly ToolStripMenuItemEx NullHawkVSysSubmenu = new() { Enabled = false, Text = "—" }; + private readonly StatusLabelEx StatusBarRewindIndicator = new() + { + Image = Properties.Resources.RewindRecord, + ToolTipText = "Rewinder is capturing states", + }; + private void MainForm_Load(object sender, EventArgs e) { UpdateWindowTitle(); @@ -177,6 +183,11 @@ namespace BizHawk.Client.EmuHawk // Hide Status bar icons and general StatusBar prep MainStatusBar.Padding = new Padding(MainStatusBar.Padding.Left, MainStatusBar.Padding.Top, MainStatusBar.Padding.Left, MainStatusBar.Padding.Bottom); // Workaround to remove extra padding on right PlayRecordStatusButton.Visible = false; + + StatusBarRewindIndicator.Click += RewindOptionsMenuItem_Click; + MainStatusBar.Items.InsertAfter(PlayRecordStatusButton, insert: StatusBarRewindIndicator); + UpdateStatusBarRewindIndicator(); + AVStatusLabel.Visible = false; SetPauseStatusBarIcon(); Tools.UpdateCheatRelatedTools(null, null); @@ -1189,6 +1200,7 @@ namespace BizHawk.Client.EmuHawk ? new ZeldaWinder(Emulator.AsStatable(), Config.Rewind) : new Zwinder(Emulator.AsStatable(), Config.Rewind) : null; + UpdateStatusBarRewindIndicator(); AddOnScreenMessage(Rewinder?.Active == true ? "Rewind started" : "Rewind disabled"); } @@ -2810,6 +2822,9 @@ namespace BizHawk.Client.EmuHawk } } + private void UpdateStatusBarRewindIndicator() + => StatusBarRewindIndicator.Visible = Rewinder?.Active is true; + private void UpdateKeyPriorityIcon() { switch (Config.InputHotkeyOverrideOptions) diff --git a/src/BizHawk.Client.EmuHawk/Properties/Resources.cs b/src/BizHawk.Client.EmuHawk/Properties/Resources.cs index 8ac1e95714..45d0854613 100644 --- a/src/BizHawk.Client.EmuHawk/Properties/Resources.cs +++ b/src/BizHawk.Client.EmuHawk/Properties/Resources.cs @@ -165,6 +165,7 @@ namespace BizHawk.Client.EmuHawk.Properties internal static readonly Bitmap Refresh = ReadEmbeddedBitmap("Refresh"); internal static readonly Bitmap Restart = ReadEmbeddedBitmap("restart"); internal static readonly Bitmap RetroQuestion = ReadEmbeddedBitmap("RetroQuestion"); + internal static readonly Bitmap RewindRecord = ReadEmbeddedBitmap("RewindRecord"); internal static readonly Bitmap Save = ReadEmbeddedBitmap("Save"); internal static readonly Bitmap SaveAs = ReadEmbeddedBitmap("SaveAs"); internal static readonly Bitmap SaveConfig = ReadEmbeddedBitmap("SaveConfig"); diff --git a/src/BizHawk.Client.EmuHawk/images/RewindRecord.png b/src/BizHawk.Client.EmuHawk/images/RewindRecord.png new file mode 100644 index 0000000000..686bb1a869 Binary files /dev/null and b/src/BizHawk.Client.EmuHawk/images/RewindRecord.png differ