mirror of
https://git.naxdy.org/Mirror/Ryujinx.git
synced 2026-01-12 02:31:08 +00:00
76 lines
1.7 KiB
C#
76 lines
1.7 KiB
C#
using Avalonia.Svg.Skia;
|
|
using CommunityToolkit.Mvvm.ComponentModel;
|
|
using Ryujinx.Ava.UI.Models.Input;
|
|
|
|
namespace Ryujinx.Ava.UI.ViewModels.Input
|
|
{
|
|
public partial class KeyboardInputViewModel : BaseModel
|
|
{
|
|
public KeyboardInputConfig Config
|
|
{
|
|
get;
|
|
set
|
|
{
|
|
field = value;
|
|
|
|
OnPropertyChanged();
|
|
}
|
|
}
|
|
|
|
public StickVisualizer Visualizer
|
|
{
|
|
get;
|
|
set
|
|
{
|
|
field = value;
|
|
|
|
OnPropertyChanged();
|
|
}
|
|
}
|
|
|
|
public bool IsLeft
|
|
{
|
|
get;
|
|
set
|
|
{
|
|
field = value;
|
|
OnPropertyChanged();
|
|
OnPropertyChanged(nameof(HasSides));
|
|
}
|
|
}
|
|
|
|
public bool IsRight
|
|
{
|
|
get;
|
|
set
|
|
{
|
|
field = value;
|
|
OnPropertyChanged();
|
|
OnPropertyChanged(nameof(HasSides));
|
|
}
|
|
}
|
|
|
|
public bool HasSides => IsLeft ^ IsRight;
|
|
|
|
[ObservableProperty]
|
|
public partial SvgImage Image { get; set; }
|
|
|
|
public readonly InputViewModel ParentModel;
|
|
|
|
public KeyboardInputViewModel(InputViewModel model, KeyboardInputConfig config, StickVisualizer visualizer)
|
|
{
|
|
ParentModel = model;
|
|
Visualizer = visualizer;
|
|
model.NotifyChangesEvent += OnParentModelChanged;
|
|
OnParentModelChanged();
|
|
Config = config;
|
|
}
|
|
|
|
public void OnParentModelChanged()
|
|
{
|
|
IsLeft = ParentModel.IsLeft;
|
|
IsRight = ParentModel.IsRight;
|
|
Image = ParentModel.Image;
|
|
}
|
|
}
|
|
}
|