diff --git a/BizHawk.Client.EmuHawk/MainForm.cs b/BizHawk.Client.EmuHawk/MainForm.cs index da7aed472f..80b57f3174 100644 --- a/BizHawk.Client.EmuHawk/MainForm.cs +++ b/BizHawk.Client.EmuHawk/MainForm.cs @@ -503,6 +503,41 @@ namespace BizHawk.Client.EmuHawk #endregion` + #region Pause + + private bool _emulatorPaused; + public bool EmulatorPaused + { + get + { + return _emulatorPaused; + } + + private set + { + _emulatorPaused = value; + if (OnPauseChanged != null) + { + OnPauseChanged(this, new PauseChangedEventArgs(_emulatorPaused)); + } + } + } + + public delegate void PauseChangedEventHandler(object sender, PauseChangedEventArgs e); + public event PauseChangedEventHandler OnPauseChanged; + + public class PauseChangedEventArgs : EventArgs + { + public PauseChangedEventArgs(bool paused) + { + Paused = paused; + } + + public bool Paused { get; private set; } + } + + #endregion + #region Properties public string CurrentlyOpenRom; @@ -513,7 +548,6 @@ namespace BizHawk.Client.EmuHawk public bool TurboFastForward = false; public bool RestoreReadWriteOnStop = false; public bool UpdateFrame = false; - public bool EmulatorPaused { get; private set; } private int? _pauseOnFrame; public int? PauseOnFrame // If set, upon completion of this frame, the client wil pause diff --git a/BizHawk.Client.EmuHawk/tools/Debugger/GenericDebugger.Designer.cs b/BizHawk.Client.EmuHawk/tools/Debugger/GenericDebugger.Designer.cs index 71d460b7e1..5b988d203a 100644 --- a/BizHawk.Client.EmuHawk/tools/Debugger/GenericDebugger.Designer.cs +++ b/BizHawk.Client.EmuHawk/tools/Debugger/GenericDebugger.Designer.cs @@ -54,6 +54,8 @@ this.SeekToBtn = new System.Windows.Forms.Button(); this.SeekToBox = new BizHawk.Client.EmuHawk.HexTextBox(); this.CancelSeekBtn = new System.Windows.Forms.Button(); + this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); + this.RefreshMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.menuStrip1.SuspendLayout(); this.RegistersGroupBox.SuspendLayout(); this.BreakpointsGroupBox.SuspendLayout(); @@ -93,7 +95,9 @@ this.DebugSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.StepIntoMenuItem, this.StepOverMenuItem, - this.StepOutMenuItem}); + this.StepOutMenuItem, + this.toolStripSeparator1, + this.RefreshMenuItem}); this.DebugSubMenu.Name = "DebugSubMenu"; this.DebugSubMenu.Size = new System.Drawing.Size(54, 20); this.DebugSubMenu.Text = "&Debug"; @@ -315,6 +319,19 @@ this.CancelSeekBtn.UseVisualStyleBackColor = true; this.CancelSeekBtn.Click += new System.EventHandler(this.CancelSeekBtn_Click); // + // toolStripSeparator1 + // + this.toolStripSeparator1.Name = "toolStripSeparator1"; + this.toolStripSeparator1.Size = new System.Drawing.Size(174, 6); + // + // RefreshMenuItem + // + this.RefreshMenuItem.Name = "RefreshMenuItem"; + this.RefreshMenuItem.ShortcutKeys = System.Windows.Forms.Keys.F5; + this.RefreshMenuItem.Size = new System.Drawing.Size(177, 22); + this.RefreshMenuItem.Text = "Refresh"; + this.RefreshMenuItem.Click += new System.EventHandler(this.RefreshMenuItem_Click); + // // GenericDebugger // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); @@ -374,5 +391,7 @@ private HexTextBox SeekToBox; private System.Windows.Forms.Button CancelSeekBtn; private System.Windows.Forms.Button ToPCBtn; + private System.Windows.Forms.ToolStripSeparator toolStripSeparator1; + private System.Windows.Forms.ToolStripMenuItem RefreshMenuItem; } } \ No newline at end of file diff --git a/BizHawk.Client.EmuHawk/tools/Debugger/GenericDebugger.Disassembler.cs b/BizHawk.Client.EmuHawk/tools/Debugger/GenericDebugger.Disassembler.cs index 5426b0249c..f9313b321f 100644 --- a/BizHawk.Client.EmuHawk/tools/Debugger/GenericDebugger.Disassembler.cs +++ b/BizHawk.Client.EmuHawk/tools/Debugger/GenericDebugger.Disassembler.cs @@ -189,5 +189,10 @@ namespace BizHawk.Client.EmuHawk Clipboard.SetDataObject(blob.ToString()); } } + + private void OnPauseChanged(object sender, MainForm.PauseChangedEventArgs e) + { + FullUpdate(); + } } } diff --git a/BizHawk.Client.EmuHawk/tools/Debugger/GenericDebugger.IToolForm.cs b/BizHawk.Client.EmuHawk/tools/Debugger/GenericDebugger.IToolForm.cs index 033628b873..0989e5b1d0 100644 --- a/BizHawk.Client.EmuHawk/tools/Debugger/GenericDebugger.IToolForm.cs +++ b/BizHawk.Client.EmuHawk/tools/Debugger/GenericDebugger.IToolForm.cs @@ -136,9 +136,7 @@ namespace BizHawk.Client.EmuHawk public void UpdateValues() { - // TODO: probably none of this - RegisterPanel.UpdateValues(); - UpdateDisassembler(); + // Nothing to do } private void FullUpdate() diff --git a/BizHawk.Client.EmuHawk/tools/Debugger/GenericDebugger.cs b/BizHawk.Client.EmuHawk/tools/Debugger/GenericDebugger.cs index d795eca709..910a21f074 100644 --- a/BizHawk.Client.EmuHawk/tools/Debugger/GenericDebugger.cs +++ b/BizHawk.Client.EmuHawk/tools/Debugger/GenericDebugger.cs @@ -34,6 +34,7 @@ namespace BizHawk.Client.EmuHawk private void EngageDebugger() { DisassemblyLines.Clear(); + GlobalWin.MainForm.OnPauseChanged += OnPauseChanged; CancelSeekBtn.Enabled = false; if (CanDisassemble) { @@ -147,6 +148,7 @@ namespace BizHawk.Client.EmuHawk private void DisengageDebugger() { BreakPointControl1.Shutdown(); + GlobalWin.MainForm.OnPauseChanged -= OnPauseChanged; } public void DisableRegisterBox() @@ -289,5 +291,10 @@ namespace BizHawk.Client.EmuHawk { UpdateDisassembler(); } + + private void RefreshMenuItem_Click(object sender, EventArgs e) + { + FullUpdate(); + } } }