aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.Ava/UI/Views/Input/KeyboardInputView.axaml.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Ryujinx.Ava/UI/Views/Input/KeyboardInputView.axaml.cs')
-rw-r--r--src/Ryujinx.Ava/UI/Views/Input/KeyboardInputView.axaml.cs210
1 files changed, 0 insertions, 210 deletions
diff --git a/src/Ryujinx.Ava/UI/Views/Input/KeyboardInputView.axaml.cs b/src/Ryujinx.Ava/UI/Views/Input/KeyboardInputView.axaml.cs
deleted file mode 100644
index f7024c5d..00000000
--- a/src/Ryujinx.Ava/UI/Views/Input/KeyboardInputView.axaml.cs
+++ /dev/null
@@ -1,210 +0,0 @@
-using Avalonia;
-using Avalonia.Controls;
-using Avalonia.Controls.Primitives;
-using Avalonia.Input;
-using Avalonia.Interactivity;
-using Avalonia.LogicalTree;
-using Ryujinx.Ava.UI.Helpers;
-using Ryujinx.Ava.UI.ViewModels.Input;
-using Ryujinx.Input;
-using Ryujinx.Input.Assigner;
-
-namespace Ryujinx.Ava.UI.Views.Input
-{
- public partial class KeyboardInputView : UserControl
- {
- private ButtonKeyAssigner _currentAssigner;
-
- public KeyboardInputView()
- {
- InitializeComponent();
-
- foreach (ILogical visual in SettingButtons.GetLogicalDescendants())
- {
- if (visual is ToggleButton button and not CheckBox)
- {
- button.IsCheckedChanged += Button_IsCheckedChanged;
- }
- }
- }
-
- protected override void OnPointerReleased(PointerReleasedEventArgs e)
- {
- base.OnPointerReleased(e);
-
- if (_currentAssigner != null && _currentAssigner.ToggledButton != null && !_currentAssigner.ToggledButton.IsPointerOver)
- {
- _currentAssigner.Cancel();
- }
- }
-
- private void Button_IsCheckedChanged(object sender, RoutedEventArgs e)
- {
- if (sender is ToggleButton button)
- {
- if ((bool)button.IsChecked)
- {
- if (_currentAssigner != null && button == _currentAssigner.ToggledButton)
- {
- return;
- }
-
- bool isStick = button.Tag != null && button.Tag.ToString() == "stick";
-
- if (_currentAssigner == null && (bool)button.IsChecked)
- {
- _currentAssigner = new ButtonKeyAssigner(button);
-
- this.Focus(NavigationMethod.Pointer);
-
- PointerPressed += MouseClick;
-
- IKeyboard keyboard = (IKeyboard)(DataContext as KeyboardInputViewModel).parentModel.AvaloniaKeyboardDriver.GetGamepad("0"); // Open Avalonia keyboard for cancel operations.
- IButtonAssigner assigner = CreateButtonAssigner(isStick);
-
- _currentAssigner.ButtonAssigned += (sender, e) =>
- {
- if (e.ButtonValue.HasValue)
- {
- var viewModel = (DataContext as KeyboardInputViewModel);
- var buttonValue = e.ButtonValue.Value;
- viewModel.parentModel.IsModified = true;
-
- switch (button.Name)
- {
- case "ButtonZl":
- viewModel.Config.ButtonZl = buttonValue.AsKey();
- break;
- case "ButtonL":
- viewModel.Config.ButtonL = buttonValue.AsKey();
- break;
- case "ButtonMinus":
- viewModel.Config.ButtonMinus = buttonValue.AsKey();
- break;
- case "LeftStickButton":
- viewModel.Config.LeftStickButton = buttonValue.AsKey();
- break;
- case "LeftStickUp":
- viewModel.Config.LeftStickUp = buttonValue.AsKey();
- break;
- case "LeftStickDown":
- viewModel.Config.LeftStickDown = buttonValue.AsKey();
- break;
- case "LeftStickRight":
- viewModel.Config.LeftStickRight = buttonValue.AsKey();
- break;
- case "LeftStickLeft":
- viewModel.Config.LeftStickLeft = buttonValue.AsKey();
- break;
- case "DpadUp":
- viewModel.Config.DpadUp = buttonValue.AsKey();
- break;
- case "DpadDown":
- viewModel.Config.DpadDown = buttonValue.AsKey();
- break;
- case "DpadLeft":
- viewModel.Config.DpadLeft = buttonValue.AsKey();
- break;
- case "DpadRight":
- viewModel.Config.DpadRight = buttonValue.AsKey();
- break;
- case "LeftButtonSr":
- viewModel.Config.LeftButtonSr = buttonValue.AsKey();
- break;
- case "LeftButtonSl":
- viewModel.Config.LeftButtonSl = buttonValue.AsKey();
- break;
- case "RightButtonSr":
- viewModel.Config.RightButtonSr = buttonValue.AsKey();
- break;
- case "RightButtonSl":
- viewModel.Config.RightButtonSl = buttonValue.AsKey();
- break;
- case "ButtonZr":
- viewModel.Config.ButtonZr = buttonValue.AsKey();
- break;
- case "ButtonR":
- viewModel.Config.ButtonR = buttonValue.AsKey();
- break;
- case "ButtonPlus":
- viewModel.Config.ButtonPlus = buttonValue.AsKey();
- break;
- case "ButtonA":
- viewModel.Config.ButtonA = buttonValue.AsKey();
- break;
- case "ButtonB":
- viewModel.Config.ButtonB = buttonValue.AsKey();
- break;
- case "ButtonX":
- viewModel.Config.ButtonX = buttonValue.AsKey();
- break;
- case "ButtonY":
- viewModel.Config.ButtonY = buttonValue.AsKey();
- break;
- case "RightStickButton":
- viewModel.Config.RightStickButton = buttonValue.AsKey();
- break;
- case "RightStickUp":
- viewModel.Config.RightStickUp = buttonValue.AsKey();
- break;
- case "RightStickDown":
- viewModel.Config.RightStickDown = buttonValue.AsKey();
- break;
- case "RightStickRight":
- viewModel.Config.RightStickRight = buttonValue.AsKey();
- break;
- case "RightStickLeft":
- viewModel.Config.RightStickLeft = buttonValue.AsKey();
- break;
- }
- }
- };
-
- _currentAssigner.GetInputAndAssign(assigner, keyboard);
- }
- else
- {
- if (_currentAssigner != null)
- {
- ToggleButton oldButton = _currentAssigner.ToggledButton;
-
- _currentAssigner.Cancel();
- _currentAssigner = null;
- button.IsChecked = false;
- }
- }
- }
- else
- {
- _currentAssigner?.Cancel();
- _currentAssigner = null;
- }
- }
- }
-
- private void MouseClick(object sender, PointerPressedEventArgs e)
- {
- bool shouldUnbind = e.GetCurrentPoint(this).Properties.IsMiddleButtonPressed;
-
- _currentAssigner?.Cancel(shouldUnbind);
-
- PointerPressed -= MouseClick;
- }
-
- private IButtonAssigner CreateButtonAssigner(bool forStick)
- {
- IButtonAssigner assigner;
-
- assigner = new KeyboardKeyAssigner((IKeyboard)(DataContext as KeyboardInputViewModel).parentModel.SelectedGamepad);
-
- return assigner;
- }
-
- protected override void OnDetachedFromVisualTree(VisualTreeAttachmentEventArgs e)
- {
- base.OnDetachedFromVisualTree(e);
- _currentAssigner?.Cancel();
- _currentAssigner = null;
- }
- }
-}