aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.Ava/UI/Helpers/KeyValueConverter.cs
diff options
context:
space:
mode:
authorTSR Berry <20988865+TSRBerry@users.noreply.github.com>2023-10-21 15:19:21 +0200
committerTSR Berry <20988865+TSRBerry@users.noreply.github.com>2023-10-21 15:19:21 +0200
commit638be5f296bf52943da4366699d33f1e8656e00c (patch)
tree7c30a2d1fc44283846b67d98928e5f628222e3c6 /src/Ryujinx.Ava/UI/Helpers/KeyValueConverter.cs
parent49b37550cae6b3c69f59a9c7a44b17e3c12a813b (diff)
Revert "Ava UI: Input Menu Refactor (#4998)"1.1.1059
This reverts commit 49b37550cae6b3c69f59a9c7a44b17e3c12a813b. This currently breaks the GTK GUI.
Diffstat (limited to 'src/Ryujinx.Ava/UI/Helpers/KeyValueConverter.cs')
-rw-r--r--src/Ryujinx.Ava/UI/Helpers/KeyValueConverter.cs157
1 files changed, 17 insertions, 140 deletions
diff --git a/src/Ryujinx.Ava/UI/Helpers/KeyValueConverter.cs b/src/Ryujinx.Ava/UI/Helpers/KeyValueConverter.cs
index 1c4aa7b2..028ed6bf 100644
--- a/src/Ryujinx.Ava/UI/Helpers/KeyValueConverter.cs
+++ b/src/Ryujinx.Ava/UI/Helpers/KeyValueConverter.cs
@@ -1,9 +1,7 @@
using Avalonia.Data.Converters;
-using Ryujinx.Ava.Common.Locale;
using Ryujinx.Common.Configuration.Hid;
using Ryujinx.Common.Configuration.Hid.Controller;
using System;
-using System.Collections.Generic;
using System.Globalization;
namespace Ryujinx.Ava.UI.Helpers
@@ -12,158 +10,37 @@ namespace Ryujinx.Ava.UI.Helpers
{
public static KeyValueConverter Instance = new();
- private static readonly Dictionary<Key, LocaleKeys> _keysMap = new()
- {
- { Key.Unknown, LocaleKeys.KeyUnknown },
- { Key.ShiftLeft, LocaleKeys.KeyShiftLeft },
- { Key.ShiftRight, LocaleKeys.KeyShiftRight },
- { Key.ControlLeft, LocaleKeys.KeyControlLeft },
- { Key.ControlRight, LocaleKeys.KeyControlRight },
- { Key.AltLeft, OperatingSystem.IsMacOS() ? LocaleKeys.KeyOptLeft : LocaleKeys.KeyAltLeft },
- { Key.AltRight, OperatingSystem.IsMacOS() ? LocaleKeys.KeyOptRight : LocaleKeys.KeyAltRight },
- { Key.WinLeft, OperatingSystem.IsMacOS() ? LocaleKeys.KeyCmdLeft : LocaleKeys.KeyWinLeft },
- { Key.WinRight, OperatingSystem.IsMacOS() ? LocaleKeys.KeyCmdRight : LocaleKeys.KeyWinRight },
- { Key.Up, LocaleKeys.KeyUp },
- { Key.Down, LocaleKeys.KeyDown },
- { Key.Left, LocaleKeys.KeyLeft },
- { Key.Right, LocaleKeys.KeyRight },
- { Key.Enter, LocaleKeys.KeyEnter },
- { Key.Escape, LocaleKeys.KeyEscape },
- { Key.Space, LocaleKeys.KeySpace },
- { Key.Tab, LocaleKeys.KeyTab },
- { Key.BackSpace, LocaleKeys.KeyBackSpace },
- { Key.Insert, LocaleKeys.KeyInsert },
- { Key.Delete, LocaleKeys.KeyDelete },
- { Key.PageUp, LocaleKeys.KeyPageUp },
- { Key.PageDown, LocaleKeys.KeyPageDown },
- { Key.Home, LocaleKeys.KeyHome },
- { Key.End, LocaleKeys.KeyEnd },
- { Key.CapsLock, LocaleKeys.KeyCapsLock },
- { Key.ScrollLock, LocaleKeys.KeyScrollLock },
- { Key.PrintScreen, LocaleKeys.KeyPrintScreen },
- { Key.Pause, LocaleKeys.KeyPause },
- { Key.NumLock, LocaleKeys.KeyNumLock },
- { Key.Clear, LocaleKeys.KeyClear },
- { Key.Keypad0, LocaleKeys.KeyKeypad0 },
- { Key.Keypad1, LocaleKeys.KeyKeypad1 },
- { Key.Keypad2, LocaleKeys.KeyKeypad2 },
- { Key.Keypad3, LocaleKeys.KeyKeypad3 },
- { Key.Keypad4, LocaleKeys.KeyKeypad4 },
- { Key.Keypad5, LocaleKeys.KeyKeypad5 },
- { Key.Keypad6, LocaleKeys.KeyKeypad6 },
- { Key.Keypad7, LocaleKeys.KeyKeypad7 },
- { Key.Keypad8, LocaleKeys.KeyKeypad8 },
- { Key.Keypad9, LocaleKeys.KeyKeypad9 },
- { Key.KeypadDivide, LocaleKeys.KeyKeypadDivide },
- { Key.KeypadMultiply, LocaleKeys.KeyKeypadMultiply },
- { Key.KeypadSubtract, LocaleKeys.KeyKeypadSubtract },
- { Key.KeypadAdd, LocaleKeys.KeyKeypadAdd },
- { Key.KeypadDecimal, LocaleKeys.KeyKeypadDecimal },
- { Key.KeypadEnter, LocaleKeys.KeyKeypadEnter },
- { Key.Number0, LocaleKeys.KeyNumber0 },
- { Key.Number1, LocaleKeys.KeyNumber1 },
- { Key.Number2, LocaleKeys.KeyNumber2 },
- { Key.Number3, LocaleKeys.KeyNumber3 },
- { Key.Number4, LocaleKeys.KeyNumber4 },
- { Key.Number5, LocaleKeys.KeyNumber5 },
- { Key.Number6, LocaleKeys.KeyNumber6 },
- { Key.Number7, LocaleKeys.KeyNumber7 },
- { Key.Number8, LocaleKeys.KeyNumber8 },
- { Key.Number9, LocaleKeys.KeyNumber9 },
- { Key.Tilde, LocaleKeys.KeyTilde },
- { Key.Grave, LocaleKeys.KeyGrave },
- { Key.Minus, LocaleKeys.KeyMinus },
- { Key.Plus, LocaleKeys.KeyPlus },
- { Key.BracketLeft, LocaleKeys.KeyBracketLeft },
- { Key.BracketRight, LocaleKeys.KeyBracketRight },
- { Key.Semicolon, LocaleKeys.KeySemicolon },
- { Key.Quote, LocaleKeys.KeyQuote },
- { Key.Comma, LocaleKeys.KeyComma },
- { Key.Period, LocaleKeys.KeyPeriod },
- { Key.Slash, LocaleKeys.KeySlash },
- { Key.BackSlash, LocaleKeys.KeyBackSlash },
- { Key.Unbound, LocaleKeys.KeyUnbound },
- };
-
- private static readonly Dictionary<GamepadInputId, LocaleKeys> _gamepadInputIdMap = new()
+ public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
- { GamepadInputId.LeftStick, LocaleKeys.GamepadLeftStick },
- { GamepadInputId.RightStick, LocaleKeys.GamepadRightStick },
- { GamepadInputId.LeftShoulder, LocaleKeys.GamepadLeftShoulder },
- { GamepadInputId.RightShoulder, LocaleKeys.GamepadRightShoulder },
- { GamepadInputId.LeftTrigger, LocaleKeys.GamepadLeftTrigger },
- { GamepadInputId.RightTrigger, LocaleKeys.GamepadRightTrigger },
- { GamepadInputId.DpadUp, LocaleKeys.GamepadDpadUp},
- { GamepadInputId.DpadDown, LocaleKeys.GamepadDpadDown},
- { GamepadInputId.DpadLeft, LocaleKeys.GamepadDpadLeft},
- { GamepadInputId.DpadRight, LocaleKeys.GamepadDpadRight},
- { GamepadInputId.Minus, LocaleKeys.GamepadMinus},
- { GamepadInputId.Plus, LocaleKeys.GamepadPlus},
- { GamepadInputId.Guide, LocaleKeys.GamepadGuide},
- { GamepadInputId.Misc1, LocaleKeys.GamepadMisc1},
- { GamepadInputId.Paddle1, LocaleKeys.GamepadPaddle1},
- { GamepadInputId.Paddle2, LocaleKeys.GamepadPaddle2},
- { GamepadInputId.Paddle3, LocaleKeys.GamepadPaddle3},
- { GamepadInputId.Paddle4, LocaleKeys.GamepadPaddle4},
- { GamepadInputId.Touchpad, LocaleKeys.GamepadTouchpad},
- { GamepadInputId.SingleLeftTrigger0, LocaleKeys.GamepadSingleLeftTrigger0},
- { GamepadInputId.SingleRightTrigger0, LocaleKeys.GamepadSingleRightTrigger0},
- { GamepadInputId.SingleLeftTrigger1, LocaleKeys.GamepadSingleLeftTrigger1},
- { GamepadInputId.SingleRightTrigger1, LocaleKeys.GamepadSingleRightTrigger1},
- { GamepadInputId.Unbound, LocaleKeys.KeyUnbound},
- };
+ if (value == null)
+ {
+ return null;
+ }
- private static readonly Dictionary<StickInputId, LocaleKeys> _stickInputIdMap = new()
- {
- { StickInputId.Left, LocaleKeys.StickLeft},
- { StickInputId.Right, LocaleKeys.StickRight},
- { StickInputId.Unbound, LocaleKeys.KeyUnbound},
- };
+ return value.ToString();
+ }
- public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+ public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
- string keyString = "";
+ object key = null;
- if (value is Key key)
+ if (value != null)
{
- if (_keysMap.TryGetValue(key, out LocaleKeys localeKey))
+ if (targetType == typeof(Key))
{
- keyString = LocaleManager.Instance[localeKey];
+ key = Enum.Parse<Key>(value.ToString());
}
- else
+ else if (targetType == typeof(GamepadInputId))
{
- keyString = key.ToString();
+ key = Enum.Parse<GamepadInputId>(value.ToString());
}
- }
- else if (value is GamepadInputId gamepadInputId)
- {
- if (_gamepadInputIdMap.TryGetValue(gamepadInputId, out LocaleKeys localeKey))
+ else if (targetType == typeof(StickInputId))
{
- keyString = LocaleManager.Instance[localeKey];
- }
- else
- {
- keyString = gamepadInputId.ToString();
+ key = Enum.Parse<StickInputId>(value.ToString());
}
}
- else if (value is StickInputId stickInputId)
- {
- if (_stickInputIdMap.TryGetValue(stickInputId, out LocaleKeys localeKey))
- {
- keyString = LocaleManager.Instance[localeKey];
- }
- else
- {
- keyString = stickInputId.ToString();
- }
- }
-
- return keyString;
- }
- public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
- {
- throw new NotSupportedException();
+ return key;
}
}
}