Create StatusStripEx similar to MenuStripEx and ToolStripEx to allow click through, and replace all our status bars with it

This commit is contained in:
adelikat 2014-05-17 00:42:28 +00:00
parent 19f3b1b1da
commit 1895e15ea5
5 changed files with 43 additions and 8 deletions

View File

@ -73,6 +73,41 @@ public class MenuStripEx : MenuStrip
} }
} }
/// <summary>
/// This class adds on to the functionality provided in System.Windows.Forms.MenuStrip.
/// </summary>
public class StatusStripEx : StatusStrip
{
private bool clickThrough = true;
/// <summary>
/// Gets or sets whether the ToolStripEx honors item clicks when its containing form does
/// not have input focus.
/// </summary>
public bool ClickThrough
{
get
{
return clickThrough;
}
set
{
clickThrough = value;
}
}
protected override void WndProc(ref Message m)
{
base.WndProc(ref m);
if (clickThrough &&
m.Msg == NativeConstants.WM_MOUSEACTIVATE &&
m.Result == (IntPtr)NativeConstants.MA_ACTIVATEANDEAT)
{
m.Result = (IntPtr)NativeConstants.MA_ACTIVATE;
}
}
}
internal sealed class NativeConstants internal sealed class NativeConstants
{ {
private NativeConstants(){} private NativeConstants(){}

View File

@ -284,7 +284,7 @@
this.OnlineHelpMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.OnlineHelpMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.ForumsMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.ForumsMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.AboutMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.AboutMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.MainStatusBar = new System.Windows.Forms.StatusStrip(); this.MainStatusBar = new StatusStripEx();
this.DumpStatusButton = new System.Windows.Forms.ToolStripDropDownButton(); this.DumpStatusButton = new System.Windows.Forms.ToolStripDropDownButton();
this.EmuStatus = new System.Windows.Forms.ToolStripStatusLabel(); this.EmuStatus = new System.Windows.Forms.ToolStripStatusLabel();
this.PlayRecordStatusButton = new System.Windows.Forms.ToolStripDropDownButton(); this.PlayRecordStatusButton = new System.Windows.Forms.ToolStripDropDownButton();
@ -3248,7 +3248,7 @@
private System.Windows.Forms.ToolStripMenuItem ToolBoxMenuItem; private System.Windows.Forms.ToolStripMenuItem ToolBoxMenuItem;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator12; private System.Windows.Forms.ToolStripSeparator toolStripSeparator12;
private System.Windows.Forms.ToolStripMenuItem SwitchToFullscreenMenuItem; private System.Windows.Forms.ToolStripMenuItem SwitchToFullscreenMenuItem;
private System.Windows.Forms.StatusStrip MainStatusBar; private StatusStripEx MainStatusBar;
private System.Windows.Forms.ToolStripStatusLabel EmuStatus; private System.Windows.Forms.ToolStripStatusLabel EmuStatus;
private System.Windows.Forms.ToolStripMenuItem MessagesMenuItem; private System.Windows.Forms.ToolStripMenuItem MessagesMenuItem;
private System.Windows.Forms.ToolStripMenuItem TI83SubMenu; private System.Windows.Forms.ToolStripMenuItem TI83SubMenu;

View File

@ -101,7 +101,7 @@
this.SaveWindowPositionMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.SaveWindowPositionMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.AlwaysOnTopMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.AlwaysOnTopMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.FloatingWindowMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.FloatingWindowMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.NesPPUStatusBar = new System.Windows.Forms.StatusStrip(); this.NesPPUStatusBar = new StatusStripEx();
this.toolStripStatusLabel1 = new System.Windows.Forms.ToolStripStatusLabel(); this.toolStripStatusLabel1 = new System.Windows.Forms.ToolStripStatusLabel();
this.Messagetimer = new System.Windows.Forms.Timer(this.components); this.Messagetimer = new System.Windows.Forms.Timer(this.components);
this.CHRROMGroup = new System.Windows.Forms.GroupBox(); this.CHRROMGroup = new System.Windows.Forms.GroupBox();
@ -942,7 +942,7 @@
private System.Windows.Forms.ToolStripMenuItem CopyPatternToClipboardMenuItem; private System.Windows.Forms.ToolStripMenuItem CopyPatternToClipboardMenuItem;
private System.Windows.Forms.ToolStripMenuItem CopySpriteToClipboardMenuItem; private System.Windows.Forms.ToolStripMenuItem CopySpriteToClipboardMenuItem;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator2; private System.Windows.Forms.ToolStripSeparator toolStripSeparator2;
private System.Windows.Forms.StatusStrip NesPPUStatusBar; private StatusStripEx NesPPUStatusBar;
private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel1; private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel1;
private System.Windows.Forms.Timer Messagetimer; private System.Windows.Forms.Timer Messagetimer;
private System.Windows.Forms.ToolStripMenuItem AlwaysOnTopMenuItem; private System.Windows.Forms.ToolStripMenuItem AlwaysOnTopMenuItem;

View File

@ -102,7 +102,7 @@ namespace BizHawk.Client.EmuHawk
this.TasView = new BizHawk.Client.EmuHawk.TasListView(); this.TasView = new BizHawk.Client.EmuHawk.TasListView();
this.Frame = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.Frame = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.Log = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.Log = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.TasStatusStrip = new System.Windows.Forms.StatusStrip(); this.TasStatusStrip = new StatusStripEx();
this.MessageStatusLabel = new System.Windows.Forms.ToolStripStatusLabel(); this.MessageStatusLabel = new System.Windows.Forms.ToolStripStatusLabel();
this.SplicerStatusLabel = new System.Windows.Forms.ToolStripStatusLabel(); this.SplicerStatusLabel = new System.Windows.Forms.ToolStripStatusLabel();
this.TasPlaybackBox = new BizHawk.Client.EmuHawk.PlaybackBox(); this.TasPlaybackBox = new BizHawk.Client.EmuHawk.PlaybackBox();
@ -839,7 +839,7 @@ namespace BizHawk.Client.EmuHawk
private System.Windows.Forms.ToolStripSeparator toolStripSeparator12; private System.Windows.Forms.ToolStripSeparator toolStripSeparator12;
private System.Windows.Forms.ToolStripMenuItem RestoreDefaultSettingsMenuItem; private System.Windows.Forms.ToolStripMenuItem RestoreDefaultSettingsMenuItem;
private System.Windows.Forms.ToolStripMenuItem AutoloadProjectMenuItem; private System.Windows.Forms.ToolStripMenuItem AutoloadProjectMenuItem;
private System.Windows.Forms.StatusStrip TasStatusStrip; private StatusStripEx TasStatusStrip;
private System.Windows.Forms.ToolStripStatusLabel MessageStatusLabel; private System.Windows.Forms.ToolStripStatusLabel MessageStatusLabel;
private PlaybackBox TasPlaybackBox; private PlaybackBox TasPlaybackBox;
private BookmarksBranchesBox TasBookmarksBranchesBox; private BookmarksBranchesBox TasBookmarksBranchesBox;

View File

@ -49,7 +49,7 @@
this.ShowChangeCountsContextMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.ShowChangeCountsContextMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.ShowDiffContextMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.ShowDiffContextMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.ShowDomainContextMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.ShowDomainContextMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.statusStrip1 = new System.Windows.Forms.StatusStrip(); this.statusStrip1 = new StatusStripEx();
this.MessageLabel = new System.Windows.Forms.ToolStripStatusLabel(); this.MessageLabel = new System.Windows.Forms.ToolStripStatusLabel();
this.toolStrip1 = new ToolStripEx(); this.toolStrip1 = new ToolStripEx();
this.newToolStripButton = new System.Windows.Forms.ToolStripButton(); this.newToolStripButton = new System.Windows.Forms.ToolStripButton();
@ -1067,7 +1067,7 @@
private System.Windows.Forms.ToolStripMenuItem ShowDomainContextMenuItem; private System.Windows.Forms.ToolStripMenuItem ShowDomainContextMenuItem;
private System.Windows.Forms.ToolStripMenuItem AlwaysOnTopMenuItem; private System.Windows.Forms.ToolStripMenuItem AlwaysOnTopMenuItem;
private System.Windows.Forms.ToolStripMenuItem FloatingWindowMenuItem; private System.Windows.Forms.ToolStripMenuItem FloatingWindowMenuItem;
private System.Windows.Forms.StatusStrip statusStrip1; private StatusStripEx statusStrip1;
private System.Windows.Forms.ToolStripStatusLabel MessageLabel; private System.Windows.Forms.ToolStripStatusLabel MessageLabel;
private System.Windows.Forms.ToolStripButton ErrorIconButton; private System.Windows.Forms.ToolStripButton ErrorIconButton;
} }