improve some VirtualPad code

This commit is contained in:
Morilli 2024-09-20 12:49:31 +02:00
parent e720650085
commit 5b3daed6e8
4 changed files with 14 additions and 21 deletions

View File

@ -131,7 +131,7 @@ namespace BizHawk.Client.EmuHawk
Size = UIHelper.Scale(singleAxis.TargetSize)
},
AnalogSchema analog => new VirtualPadAnalogStick(
_inputManager,
_inputManager.StickyXorAdapter,
_setLastFocusedNUD,
analog.Name,
analog.SecondaryName,

View File

@ -120,7 +120,7 @@ namespace BizHawk.Client.EmuHawk
}
}
ControllerPanel.Controls.AddRange(padSchemata.Select(s => (Control) new VirtualPad(s, InputManager, SetLastFocusedNUD)).Reverse().ToArray());
ControllerPanel.Controls.AddRange(padSchemata.Select(Control (s) => new VirtualPad(s, InputManager, SetLastFocusedNUD)).Reverse().ToArray());
}
public void ScrollToPadSchema(string padSchemaName)
@ -141,7 +141,7 @@ namespace BizHawk.Client.EmuHawk
public override void Restart()
{
if (!IsHandleCreated || IsDisposed)
if (!IsActive)
{
return;
}
@ -153,7 +153,7 @@ namespace BizHawk.Client.EmuHawk
protected override void UpdateAfter()
{
if (!IsHandleCreated || IsDisposed)
if (!IsActive)
{
return;
}

View File

@ -10,7 +10,7 @@ namespace BizHawk.Client.EmuHawk
{
public partial class VirtualPadAnalogStick : UserControl, IVirtualPadControl
{
private readonly InputManager _inputManager;
private readonly StickyXorAdapter _stickyXorAdapter;
private bool _readonly;
private bool _updatingFromAnalog;
@ -24,14 +24,14 @@ namespace BizHawk.Client.EmuHawk
private readonly Func<int, int, (uint R, uint Θ)> RectToPolarHelper;
public VirtualPadAnalogStick(
InputManager inputManager,
StickyXorAdapter stickyXorAdapter,
EventHandler setLastFocusedNUD,
string name,
string secondaryName,
AxisSpec rangeX,
AxisSpec rangeY)
{
_inputManager = inputManager;
_stickyXorAdapter = stickyXorAdapter;
RangeX = rangeX;
RangeY = rangeY;
@ -97,7 +97,7 @@ namespace BizHawk.Client.EmuHawk
MaxYNumeric.LostFocus += UnsetLastFocusedNUD;
AnalogStick.Init(
_inputManager.StickyXorAdapter,
_stickyXorAdapter,
name,
RangeX,
string.IsNullOrEmpty(secondaryName) ? Name.Replace('X', 'Y') : secondaryName,
@ -138,10 +138,8 @@ namespace BizHawk.Client.EmuHawk
{
AnalogStick.Clear(fromCallback: true);
SetNumericsFromAnalog();
_inputManager.AutofireStickyXorAdapter.SetSticky(AnalogStick.XName, false);
_inputManager.StickyXorAdapter.Unset(AnalogStick.XName);
_inputManager.AutofireStickyXorAdapter.SetSticky(AnalogStick.YName, false);
_inputManager.StickyXorAdapter.Unset(AnalogStick.YName);
_stickyXorAdapter.Unset(AnalogStick.XName);
_stickyXorAdapter.Unset(AnalogStick.YName);
}
public void Clear() => AnalogStick.Clear();

View File

@ -134,20 +134,15 @@ namespace BizHawk.Client.EmuHawk
if (RightClicked)
{
InputManager.AutofireStickyXorAdapter.SetSticky(Name, Checked);
if (!Checked)
{
Clear();
}
}
else
{
InputManager.StickyXorAdapter.SetSticky(Name, Checked);
}
if (!Checked)
{
Clear();
}
if (!Checked)
{
Clear();
}
base.OnCheckedChanged(e);