add a PauseChanged event to mainform, have the debugger subscribe to it and refresh instead of refreshing every frame, add a refresh menu item with F5 hotkey just in case
This commit is contained in:
parent
027706be70
commit
f89f8fc457
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -189,5 +189,10 @@ namespace BizHawk.Client.EmuHawk
|
|||
Clipboard.SetDataObject(blob.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
private void OnPauseChanged(object sender, MainForm.PauseChangedEventArgs e)
|
||||
{
|
||||
FullUpdate();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue