Make an option for emulation to pause automatically when the menu is activated, and make an option to toggle this feature (on by default)

This commit is contained in:
andres.delikat 2011-02-15 17:04:07 +00:00
parent 9f681559f7
commit 3fdd1b2ee4
3 changed files with 79 additions and 54 deletions

View File

@ -8,6 +8,7 @@
public string LastRomPath = "."; public string LastRomPath = ".";
public bool AutoLoadMostRecentRom = false; //TODO: eventually make a class or struct for all the auto-loads, which will include recent roms, movies, etc, as well as autoloading any modeless dialog public bool AutoLoadMostRecentRom = false; //TODO: eventually make a class or struct for all the auto-loads, which will include recent roms, movies, etc, as well as autoloading any modeless dialog
public RecentFiles RecentRoms = new RecentFiles(8); public RecentFiles RecentRoms = new RecentFiles(8);
public bool PauseWhenMenuActivated = true;
// Display options // Display options
public bool DisplayFPS = false; public bool DisplayFPS = false;

View File

@ -111,11 +111,14 @@
this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator(); this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
this.displayFPSToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.displayFPSToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.displayFrameCounterToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.displayFrameCounterToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.displayInputToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.displayLagCounterToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.displayLagCounterToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.displayInputToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.configToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.configToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.controllersToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.controllersToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.hotkeysToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.hotkeysToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator9 = new System.Windows.Forms.ToolStripSeparator();
this.gUIToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.pauseWhenMenuActivatedToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.rAMWatchToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.rAMWatchToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.rAMSearchToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.rAMSearchToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
@ -125,9 +128,6 @@
this.helpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.helpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.helpToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); this.helpToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
this.aboutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.aboutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator9 = new System.Windows.Forms.ToolStripSeparator();
this.gUIToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.pauseWhenMenuActivatedToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.menuStrip1.SuspendLayout(); this.menuStrip1.SuspendLayout();
this.SuspendLayout(); this.SuspendLayout();
// //
@ -145,6 +145,8 @@
this.menuStrip1.Size = new System.Drawing.Size(470, 24); this.menuStrip1.Size = new System.Drawing.Size(470, 24);
this.menuStrip1.TabIndex = 0; this.menuStrip1.TabIndex = 0;
this.menuStrip1.Text = "menuStrip1"; this.menuStrip1.Text = "menuStrip1";
this.menuStrip1.MenuDeactivate += new System.EventHandler(this.menuStrip1_MenuDeactivate);
this.menuStrip1.MenuActivate += new System.EventHandler(this.menuStrip1_MenuActivate);
// //
// fileToolStripMenuItem // fileToolStripMenuItem
// //
@ -806,13 +808,6 @@
this.displayFrameCounterToolStripMenuItem.Text = "Display FrameCounter"; this.displayFrameCounterToolStripMenuItem.Text = "Display FrameCounter";
this.displayFrameCounterToolStripMenuItem.Click += new System.EventHandler(this.displayFrameCounterToolStripMenuItem_Click); this.displayFrameCounterToolStripMenuItem.Click += new System.EventHandler(this.displayFrameCounterToolStripMenuItem_Click);
// //
// displayInputToolStripMenuItem
//
this.displayInputToolStripMenuItem.Name = "displayInputToolStripMenuItem";
this.displayInputToolStripMenuItem.Size = new System.Drawing.Size(191, 22);
this.displayInputToolStripMenuItem.Text = "Display Input";
this.displayInputToolStripMenuItem.Click += new System.EventHandler(this.displayInputToolStripMenuItem_Click);
//
// displayLagCounterToolStripMenuItem // displayLagCounterToolStripMenuItem
// //
this.displayLagCounterToolStripMenuItem.Name = "displayLagCounterToolStripMenuItem"; this.displayLagCounterToolStripMenuItem.Name = "displayLagCounterToolStripMenuItem";
@ -820,6 +815,13 @@
this.displayLagCounterToolStripMenuItem.Text = "Display Lag Counter"; this.displayLagCounterToolStripMenuItem.Text = "Display Lag Counter";
this.displayLagCounterToolStripMenuItem.Click += new System.EventHandler(this.displayLagCounterToolStripMenuItem_Click); this.displayLagCounterToolStripMenuItem.Click += new System.EventHandler(this.displayLagCounterToolStripMenuItem_Click);
// //
// displayInputToolStripMenuItem
//
this.displayInputToolStripMenuItem.Name = "displayInputToolStripMenuItem";
this.displayInputToolStripMenuItem.Size = new System.Drawing.Size(191, 22);
this.displayInputToolStripMenuItem.Text = "Display Input";
this.displayInputToolStripMenuItem.Click += new System.EventHandler(this.displayInputToolStripMenuItem_Click);
//
// configToolStripMenuItem // configToolStripMenuItem
// //
this.configToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.configToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
@ -834,7 +836,7 @@
// controllersToolStripMenuItem // controllersToolStripMenuItem
// //
this.controllersToolStripMenuItem.Name = "controllersToolStripMenuItem"; this.controllersToolStripMenuItem.Name = "controllersToolStripMenuItem";
this.controllersToolStripMenuItem.Size = new System.Drawing.Size(152, 22); this.controllersToolStripMenuItem.Size = new System.Drawing.Size(137, 22);
this.controllersToolStripMenuItem.Text = "&Controllers"; this.controllersToolStripMenuItem.Text = "&Controllers";
this.controllersToolStripMenuItem.Click += new System.EventHandler(this.controllersToolStripMenuItem_Click); this.controllersToolStripMenuItem.Click += new System.EventHandler(this.controllersToolStripMenuItem_Click);
// //
@ -842,10 +844,31 @@
// //
this.hotkeysToolStripMenuItem.Enabled = false; this.hotkeysToolStripMenuItem.Enabled = false;
this.hotkeysToolStripMenuItem.Name = "hotkeysToolStripMenuItem"; this.hotkeysToolStripMenuItem.Name = "hotkeysToolStripMenuItem";
this.hotkeysToolStripMenuItem.Size = new System.Drawing.Size(152, 22); this.hotkeysToolStripMenuItem.Size = new System.Drawing.Size(137, 22);
this.hotkeysToolStripMenuItem.Text = "&Hotkeys"; this.hotkeysToolStripMenuItem.Text = "&Hotkeys";
this.hotkeysToolStripMenuItem.Click += new System.EventHandler(this.hotkeysToolStripMenuItem_Click); this.hotkeysToolStripMenuItem.Click += new System.EventHandler(this.hotkeysToolStripMenuItem_Click);
// //
// toolStripSeparator9
//
this.toolStripSeparator9.Name = "toolStripSeparator9";
this.toolStripSeparator9.Size = new System.Drawing.Size(134, 6);
//
// gUIToolStripMenuItem
//
this.gUIToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.pauseWhenMenuActivatedToolStripMenuItem});
this.gUIToolStripMenuItem.Name = "gUIToolStripMenuItem";
this.gUIToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
this.gUIToolStripMenuItem.Text = "GUI";
this.gUIToolStripMenuItem.DropDownOpened += new System.EventHandler(this.gUIToolStripMenuItem_DropDownOpened);
//
// pauseWhenMenuActivatedToolStripMenuItem
//
this.pauseWhenMenuActivatedToolStripMenuItem.Name = "pauseWhenMenuActivatedToolStripMenuItem";
this.pauseWhenMenuActivatedToolStripMenuItem.Size = new System.Drawing.Size(220, 22);
this.pauseWhenMenuActivatedToolStripMenuItem.Text = "Pause when menu activated";
this.pauseWhenMenuActivatedToolStripMenuItem.Click += new System.EventHandler(this.pauseWhenMenuActivatedToolStripMenuItem_Click);
//
// toolsToolStripMenuItem // toolsToolStripMenuItem
// //
this.toolsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.toolsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
@ -918,25 +941,6 @@
this.aboutToolStripMenuItem.Text = "&About"; this.aboutToolStripMenuItem.Text = "&About";
this.aboutToolStripMenuItem.Click += new System.EventHandler(this.aboutToolStripMenuItem_Click); this.aboutToolStripMenuItem.Click += new System.EventHandler(this.aboutToolStripMenuItem_Click);
// //
// toolStripSeparator9
//
this.toolStripSeparator9.Name = "toolStripSeparator9";
this.toolStripSeparator9.Size = new System.Drawing.Size(149, 6);
//
// gUIToolStripMenuItem
//
this.gUIToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.pauseWhenMenuActivatedToolStripMenuItem});
this.gUIToolStripMenuItem.Name = "gUIToolStripMenuItem";
this.gUIToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
this.gUIToolStripMenuItem.Text = "GUI";
//
// pauseWhenMenuActivatedToolStripMenuItem
//
this.pauseWhenMenuActivatedToolStripMenuItem.Name = "pauseWhenMenuActivatedToolStripMenuItem";
this.pauseWhenMenuActivatedToolStripMenuItem.Size = new System.Drawing.Size(220, 22);
this.pauseWhenMenuActivatedToolStripMenuItem.Text = "Pause when menu activated";
//
// MainForm // MainForm
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);

View File

@ -18,6 +18,7 @@ namespace BizHawk.MultiClient
private RetainedViewportPanel retainedPanel; private RetainedViewportPanel retainedPanel;
private string CurrentlyOpenRom; private string CurrentlyOpenRom;
private int SaveSlot = 0; //Saveslot sytem private int SaveSlot = 0; //Saveslot sytem
private bool wasPaused = false; //For handling automatic pausing when entering the menu
private bool EmulatorPaused = false; private bool EmulatorPaused = false;
RamWatch RamWatch1 = new RamWatch(); RamWatch RamWatch1 = new RamWatch();
@ -535,13 +536,11 @@ namespace BizHawk.MultiClient
{ {
Global.Sound.StartSound(); Global.Sound.StartSound();
EmulatorPaused = false; EmulatorPaused = false;
pauseToolStripMenuItem.Checked = false;
} }
else else
{ {
Global.Sound.StopSound(); Global.Sound.StopSound();
EmulatorPaused = true; EmulatorPaused = true;
pauseToolStripMenuItem.Checked = true;
} }
} }
@ -708,6 +707,7 @@ namespace BizHawk.MultiClient
enableFMChipToolStripMenuItem.Checked = Global.Config.SmsEnableFM; enableFMChipToolStripMenuItem.Checked = Global.Config.SmsEnableFM;
overclockWhenKnownSafeToolStripMenuItem.Checked = Global.Config.SmsAllowOverlock; overclockWhenKnownSafeToolStripMenuItem.Checked = Global.Config.SmsAllowOverlock;
forceStereoSeparationToolStripMenuItem.Checked = Global.Config.SmsForceStereoSeparation; forceStereoSeparationToolStripMenuItem.Checked = Global.Config.SmsForceStereoSeparation;
pauseToolStripMenuItem.Checked = EmulatorPaused;
} }
private void clearToolStripMenuItem_Click(object sender, EventArgs e) private void clearToolStripMenuItem_Click(object sender, EventArgs e)
@ -1006,26 +1006,11 @@ namespace BizHawk.MultiClient
private void viewToolStripMenuItem_DropDownOpened(object sender, EventArgs e) private void viewToolStripMenuItem_DropDownOpened(object sender, EventArgs e)
{ {
if (Global.Config.DisplayFPS == true) displayFPSToolStripMenuItem.Checked = Global.Config.DisplayFPS;
displayFPSToolStripMenuItem.Checked = true; displayFrameCounterToolStripMenuItem.Checked = Global.Config.DisplayFrameCounter;
else displayLagCounterToolStripMenuItem.Checked = Global.Config.DisplayLagCounter;
displayFPSToolStripMenuItem.Checked = false; displayInputToolStripMenuItem.Checked = Global.Config.DisplayInput;
if (Global.Config.DisplayFrameCounter == true)
displayFrameCounterToolStripMenuItem.Checked = true;
else
displayFrameCounterToolStripMenuItem.Checked = false;
if (Global.Config.DisplayLagCounter == true)
displayLagCounterToolStripMenuItem.Checked = true;
else
displayLagCounterToolStripMenuItem.Checked = false;
if (Global.Config.DisplayInput == true)
displayInputToolStripMenuItem.Checked = true;
else
displayInputToolStripMenuItem.Checked = false;
x1MenuItem.Checked = false; x1MenuItem.Checked = false;
x2MenuItem.Checked = false; x2MenuItem.Checked = false;
x3MenuItem.Checked = false; x3MenuItem.Checked = false;
@ -1041,5 +1026,40 @@ namespace BizHawk.MultiClient
case 10: mzMenuItem.Checked = true; break; case 10: mzMenuItem.Checked = true; break;
} }
} }
private void menuStrip1_MenuActivate(object sender, EventArgs e)
{
if (Global.Config.PauseWhenMenuActivated)
{
Global.Sound.StopSound();
if (EmulatorPaused)
wasPaused = true;
else
wasPaused = false;
EmulatorPaused = true;
}
}
private void menuStrip1_MenuDeactivate(object sender, EventArgs e)
{
if (!wasPaused)
{
Global.Sound.StartSound();
EmulatorPaused = false;
}
}
private void gUIToolStripMenuItem_DropDownOpened(object sender, EventArgs e)
{
pauseWhenMenuActivatedToolStripMenuItem.Checked = Global.Config.PauseWhenMenuActivated;
}
private void pauseWhenMenuActivatedToolStripMenuItem_Click(object sender, EventArgs e)
{
if (Global.Config.PauseWhenMenuActivated == true)
Global.Config.PauseWhenMenuActivated = false;
else
Global.Config.PauseWhenMenuActivated = true;
}
} }
} }