improve some VirtualPad code
This commit is contained in:
parent
e720650085
commit
5b3daed6e8
|
@ -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,
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue