aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.Ava/UI/ViewModels/Input/ControllerInputViewModel.cs
diff options
context:
space:
mode:
authorIsaac Marovitz <42140194+IsaacMarovitz@users.noreply.github.com>2023-10-21 07:26:51 -0400
committerGitHub <noreply@github.com>2023-10-21 13:26:51 +0200
commit49b37550cae6b3c69f59a9c7a44b17e3c12a813b (patch)
tree0cc8e6a3bfd65a876270b682effdb8f9505ff929 /src/Ryujinx.Ava/UI/ViewModels/Input/ControllerInputViewModel.cs
parenta42f0bbb87b890d4f16b1148f9398210a5bfedfa (diff)
Ava UI: Input Menu Refactor (#4998)1.1.1058
* So much boilerplate * Slow and steady * Restructure + Ack suggestions * Restructure + Ack suggestions * Restructure * Clean * Propogate those fields i forgot about * It builds * Progress * Almost there * Fix stupid mistake * Fix more stupid mistakes * Actually fix fuck ups * Start localising * r/therestofthefuckingowl * Localise ButtonKeyAssigner * Are you feeling it now mr krabs * We’re done at last * Crimes against code * Try me in the Hague * Please be quiet * Crimes are here to stay * Dispose stuff * Cleanup a couple things * Visual fixes and improvements One weird bug * Fix rebase errors * Fixes * Ack Suggestions Remaining ack suggestions Update src/Ryujinx.Ava/UI/Models/Input/ControllerInputConfig.cs Co-authored-by: Ac_K <Acoustik666@gmail.com> Update src/Ryujinx.Ava/UI/Models/Input/ControllerInputConfig.cs Co-authored-by: Ac_K <Acoustik666@gmail.com> * Formatting and error More Ava 11-ness Whoops * Code style fixes * Style fixes * Analyzer fix * Remove all ReflectionBindings * Remove ambigious object * Remove redundant property * Old man yells at formatter * r e a d o n l y * Fix profiles * Use new Sliders --------- Co-authored-by: Ac_K <Acoustik666@gmail.com>
Diffstat (limited to 'src/Ryujinx.Ava/UI/ViewModels/Input/ControllerInputViewModel.cs')
-rw-r--r--src/Ryujinx.Ava/UI/ViewModels/Input/ControllerInputViewModel.cs84
1 files changed, 84 insertions, 0 deletions
diff --git a/src/Ryujinx.Ava/UI/ViewModels/Input/ControllerInputViewModel.cs b/src/Ryujinx.Ava/UI/ViewModels/Input/ControllerInputViewModel.cs
new file mode 100644
index 00000000..0e23dfa7
--- /dev/null
+++ b/src/Ryujinx.Ava/UI/ViewModels/Input/ControllerInputViewModel.cs
@@ -0,0 +1,84 @@
+using Avalonia.Svg.Skia;
+using Ryujinx.Ava.UI.Models.Input;
+using Ryujinx.Ava.UI.Views.Input;
+
+namespace Ryujinx.Ava.UI.ViewModels.Input
+{
+ public class ControllerInputViewModel : BaseModel
+ {
+ private ControllerInputConfig _config;
+ public ControllerInputConfig Config
+ {
+ get => _config;
+ set
+ {
+ _config = value;
+ OnPropertyChanged();
+ }
+ }
+
+ private bool _isLeft;
+ public bool IsLeft
+ {
+ get => _isLeft;
+ set
+ {
+ _isLeft = value;
+ OnPropertyChanged();
+ OnPropertyChanged(nameof(HasSides));
+ }
+ }
+
+ private bool _isRight;
+ public bool IsRight
+ {
+ get => _isRight;
+ set
+ {
+ _isRight = value;
+ OnPropertyChanged();
+ OnPropertyChanged(nameof(HasSides));
+ }
+ }
+
+ public bool HasSides => IsLeft ^ IsRight;
+
+ private SvgImage _image;
+ public SvgImage Image
+ {
+ get => _image;
+ set
+ {
+ _image = value;
+ OnPropertyChanged();
+ }
+ }
+
+ public InputViewModel parentModel;
+
+ public ControllerInputViewModel(InputViewModel model, ControllerInputConfig config)
+ {
+ parentModel = model;
+ model.NotifyChangesEvent += OnParentModelChanged;
+ OnParentModelChanged();
+ Config = config;
+ }
+
+ public async void ShowMotionConfig()
+ {
+ await MotionInputView.Show(this);
+ }
+
+ public async void ShowRumbleConfig()
+ {
+ await RumbleInputView.Show(this);
+ }
+
+ public void OnParentModelChanged()
+ {
+ IsLeft = parentModel.IsLeft;
+ IsRight = parentModel.IsRight;
+ Image = parentModel.Image;
+ }
+ }
+}