aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Ava/Input/AvaloniaMouseDriver.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Ryujinx.Ava/Input/AvaloniaMouseDriver.cs')
-rw-r--r--Ryujinx.Ava/Input/AvaloniaMouseDriver.cs75
1 files changed, 36 insertions, 39 deletions
diff --git a/Ryujinx.Ava/Input/AvaloniaMouseDriver.cs b/Ryujinx.Ava/Input/AvaloniaMouseDriver.cs
index 9ad0310a..eb58752c 100644
--- a/Ryujinx.Ava/Input/AvaloniaMouseDriver.cs
+++ b/Ryujinx.Ava/Input/AvaloniaMouseDriver.cs
@@ -11,35 +11,50 @@ namespace Ryujinx.Ava.Input
{
internal class AvaloniaMouseDriver : IGamepadDriver
{
- private Control _widget;
- private bool _isDisposed;
- private Size _size;
+ private Control _widget;
+ private bool _isDisposed;
+ private Size _size;
private readonly Window _window;
- public bool[] PressedButtons { get; }
-
+ public bool[] PressedButtons { get; }
public Vector2 CurrentPosition { get; private set; }
- public Vector2 Scroll { get; private set; }
+ public Vector2 Scroll { get; private set; }
+
+ public string DriverName => "AvaloniaMouseDriver";
+ public ReadOnlySpan<string> GamepadsIds => new[] { "0" };
public AvaloniaMouseDriver(Window window, Control parent)
{
_widget = parent;
_window = window;
- _widget.PointerMoved += Parent_PointerMovedEvent;
- _widget.PointerPressed += Parent_PointerPressEvent;
- _widget.PointerReleased += Parent_PointerReleaseEvent;
+ _widget.PointerMoved += Parent_PointerMovedEvent;
+ _widget.PointerPressed += Parent_PointerPressEvent;
+ _widget.PointerReleased += Parent_PointerReleaseEvent;
_widget.PointerWheelChanged += Parent_ScrollEvent;
- _window.PointerMoved += Parent_PointerMovedEvent;
- _window.PointerPressed += Parent_PointerPressEvent;
- _window.PointerReleased += Parent_PointerReleaseEvent;
+ _window.PointerMoved += Parent_PointerMovedEvent;
+ _window.PointerPressed += Parent_PointerPressEvent;
+ _window.PointerReleased += Parent_PointerReleaseEvent;
_window.PointerWheelChanged += Parent_ScrollEvent;
PressedButtons = new bool[(int)MouseButton.Count];
_size = new Size((int)parent.Bounds.Width, (int)parent.Bounds.Height);
- parent.GetObservable(Control.BoundsProperty).Subscribe(Resized);
+
+ parent.GetObservable(Visual.BoundsProperty).Subscribe(Resized);
+ }
+
+ public event Action<string> OnGamepadConnected
+ {
+ add { }
+ remove { }
+ }
+
+ public event Action<string> OnGamepadDisconnected
+ {
+ add { }
+ remove { }
}
private void Resized(Rect rect)
@@ -59,14 +74,12 @@ namespace Ryujinx.Ava.Input
private void Parent_PointerPressEvent(object o, PointerPressedEventArgs args)
{
- var pointerProperties = args.GetCurrentPoint(_widget).Properties;
-
- PressedButtons[(int)pointerProperties.PointerUpdateKind] = true;
+ PressedButtons[(int)args.GetCurrentPoint(_widget).Properties.PointerUpdateKind] = true;
}
private void Parent_PointerMovedEvent(object o, PointerEventArgs args)
{
- var position = args.GetPosition(_widget);
+ Point position = args.GetPosition(_widget);
CurrentPosition = new Vector2((float)position.X, (float)position.Y);
}
@@ -96,22 +109,6 @@ namespace Ryujinx.Ava.Input
return _size;
}
- public string DriverName => "Avalonia";
-
- public event Action<string> OnGamepadConnected
- {
- add { }
- remove { }
- }
-
- public event Action<string> OnGamepadDisconnected
- {
- add { }
- remove { }
- }
-
- public ReadOnlySpan<string> GamepadsIds => new[] { "0" };
-
public IGamepad GetGamepad(string id)
{
return new AvaloniaMouse(this);
@@ -126,14 +123,14 @@ namespace Ryujinx.Ava.Input
_isDisposed = true;
- _widget.PointerMoved -= Parent_PointerMovedEvent;
- _widget.PointerPressed -= Parent_PointerPressEvent;
- _widget.PointerReleased -= Parent_PointerReleaseEvent;
+ _widget.PointerMoved -= Parent_PointerMovedEvent;
+ _widget.PointerPressed -= Parent_PointerPressEvent;
+ _widget.PointerReleased -= Parent_PointerReleaseEvent;
_widget.PointerWheelChanged -= Parent_ScrollEvent;
- _window.PointerMoved -= Parent_PointerMovedEvent;
- _window.PointerPressed -= Parent_PointerPressEvent;
- _window.PointerReleased -= Parent_PointerReleaseEvent;
+ _window.PointerMoved -= Parent_PointerMovedEvent;
+ _window.PointerPressed -= Parent_PointerPressEvent;
+ _window.PointerReleased -= Parent_PointerReleaseEvent;
_window.PointerWheelChanged -= Parent_ScrollEvent;
_widget = null;