diff --git a/BizHawk.Client.EmuHawk/tools/VirtualPads/VirtualPad.cs b/BizHawk.Client.EmuHawk/tools/VirtualPads/VirtualPad.cs index a1c42f652f..16f1280d8c 100644 --- a/BizHawk.Client.EmuHawk/tools/VirtualPads/VirtualPad.cs +++ b/BizHawk.Client.EmuHawk/tools/VirtualPads/VirtualPad.cs @@ -16,7 +16,7 @@ namespace BizHawk.Client.EmuHawk { private PadSchema _schema; - private List Pads + private List PadControls { get { @@ -26,6 +26,14 @@ namespace BizHawk.Client.EmuHawk } } + public bool ReadOnly + { + get + { + return PadControls.First().ReadOnly; // Shortcut logic, assume all controls are in sync + } + } + public VirtualPad(PadSchema schema) { SetStyle(ControlStyles.AllPaintingInWmPaint, true); @@ -88,22 +96,22 @@ namespace BizHawk.Client.EmuHawk public void Clear() { - Pads.ForEach(p => p.Clear()); + PadControls.ForEach(p => p.Clear()); } public void ToggleReadOnly() { - Pads.ForEach(p => p.ReadOnly ^= true); + PadControls.ForEach(p => p.ReadOnly ^= true); } public void SetReadOnly(bool readOnly) { - Pads.ForEach(p => p.ReadOnly = readOnly); + PadControls.ForEach(p => p.ReadOnly = readOnly); } public void Set(IController controller) { - Pads.ForEach(c => c.Set(controller)); + PadControls.ForEach(c => c.Set(controller)); } } } diff --git a/BizHawk.Client.EmuHawk/tools/VirtualPads/VirtualpadsTool.cs b/BizHawk.Client.EmuHawk/tools/VirtualPads/VirtualpadsTool.cs index fbcbb5a880..ef19528b2d 100644 --- a/BizHawk.Client.EmuHawk/tools/VirtualPads/VirtualpadsTool.cs +++ b/BizHawk.Client.EmuHawk/tools/VirtualPads/VirtualpadsTool.cs @@ -24,6 +24,14 @@ namespace BizHawk.Client.EmuHawk } } + private bool Readonly + { + get + { + return Pads.First().ReadOnly; // Shortcut logic, assume all controls are in sync + } + } + public VirtualpadTool() { InitializeComponent(); @@ -127,10 +135,10 @@ namespace BizHawk.Client.EmuHawk } // TODO - //if (!StickyBox.Checked) - //{ - // Pads.ForEach(pad => pad.Clear()); - //} + if (!StickyBox.Checked) + { + Pads.ForEach(pad => pad.Clear()); + } } #endregion diff --git a/BizHawk.Client.EmuHawk/tools/VirtualPads/controls/VirtualPadAnalogButton.cs b/BizHawk.Client.EmuHawk/tools/VirtualPads/controls/VirtualPadAnalogButton.cs index a5d5cd6754..fbfd389c7f 100644 --- a/BizHawk.Client.EmuHawk/tools/VirtualPads/controls/VirtualPadAnalogButton.cs +++ b/BizHawk.Client.EmuHawk/tools/VirtualPads/controls/VirtualPadAnalogButton.cs @@ -45,15 +45,14 @@ namespace BizHawk.Client.EmuHawk set { - var changed = _readonly != value; - - AnalogTrackBar.Enabled = - ValueLabel.Enabled = - !value; - - _readonly = value; - if (changed) + if (_readonly != value) { + AnalogTrackBar.Enabled = + ValueLabel.Enabled = + !value; + + _readonly = value; + Refresh(); } } diff --git a/BizHawk.Client.EmuHawk/tools/VirtualPads/controls/VirtualPadAnalogStick.cs b/BizHawk.Client.EmuHawk/tools/VirtualPads/controls/VirtualPadAnalogStick.cs index bff556333d..f31c5fb64a 100644 --- a/BizHawk.Client.EmuHawk/tools/VirtualPads/controls/VirtualPadAnalogStick.cs +++ b/BizHawk.Client.EmuHawk/tools/VirtualPads/controls/VirtualPadAnalogStick.cs @@ -54,23 +54,21 @@ namespace BizHawk.Client.EmuHawk set { - var changed = _readonly != value; - - XLabel.Enabled = - ManualX.Enabled = - YLabel.Enabled = - ManualY.Enabled = - MaxLabel.Enabled = - MaxXNumeric.Enabled = - MaxYNumeric.Enabled = - !value; - - AnalogStick.ReadOnly = - _readonly = - value; - - if (changed) + if (_readonly != value) { + XLabel.Enabled = + ManualX.Enabled = + YLabel.Enabled = + ManualY.Enabled = + MaxLabel.Enabled = + MaxXNumeric.Enabled = + MaxYNumeric.Enabled = + !value; + + AnalogStick.ReadOnly = + _readonly = + value; + Refresh(); } } diff --git a/BizHawk.Client.EmuHawk/tools/VirtualPads/controls/VirtualPadButton.cs b/BizHawk.Client.EmuHawk/tools/VirtualPads/controls/VirtualPadButton.cs index 90c19de9ae..1b197d3de4 100644 --- a/BizHawk.Client.EmuHawk/tools/VirtualPads/controls/VirtualPadButton.cs +++ b/BizHawk.Client.EmuHawk/tools/VirtualPads/controls/VirtualPadButton.cs @@ -57,12 +57,15 @@ namespace BizHawk.Client.EmuHawk set { - var changed = _readonly != value; - RightClicked = false; - Checked = false; - _readonly = value; - if (changed) + if (_readonly != value) { + _readonly = value; + RightClicked = false; + if (!value) + { + Checked = false; + } + Refresh(); } } diff --git a/BizHawk.Client.EmuHawk/tools/VirtualPads/controls/VirtualPadTargetScreen.cs b/BizHawk.Client.EmuHawk/tools/VirtualPads/controls/VirtualPadTargetScreen.cs index 68921385ec..366f166ab4 100644 --- a/BizHawk.Client.EmuHawk/tools/VirtualPads/controls/VirtualPadTargetScreen.cs +++ b/BizHawk.Client.EmuHawk/tools/VirtualPads/controls/VirtualPadTargetScreen.cs @@ -64,17 +64,15 @@ namespace BizHawk.Client.EmuHawk set { - var changed = _readonly != value; - - XNumeric.Enabled = - XLabel.Enabled = - YNumeric.Enabled = - YLabel.Enabled = - !value; - - _readonly = value; - if (changed) + if (_readonly != value) { + XNumeric.Enabled = + XLabel.Enabled = + YNumeric.Enabled = + YLabel.Enabled = + !value; + + _readonly = value; Refresh(); } }