diff options
Diffstat (limited to 'Ryujinx.Ava/UI/Windows/RumbleSettingsWindow.axaml.cs')
-rw-r--r-- | Ryujinx.Ava/UI/Windows/RumbleSettingsWindow.axaml.cs | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/Ryujinx.Ava/UI/Windows/RumbleSettingsWindow.axaml.cs b/Ryujinx.Ava/UI/Windows/RumbleSettingsWindow.axaml.cs new file mode 100644 index 00000000..f645ae35 --- /dev/null +++ b/Ryujinx.Ava/UI/Windows/RumbleSettingsWindow.axaml.cs @@ -0,0 +1,57 @@ +using Avalonia.Controls; +using FluentAvalonia.UI.Controls; +using Ryujinx.Ava.Common.Locale; +using Ryujinx.Ava.UI.Models; +using Ryujinx.Ava.UI.ViewModels; +using Ryujinx.Common.Configuration.Hid.Controller; +using System.Threading.Tasks; + +namespace Ryujinx.Ava.UI.Windows +{ + public partial class RumbleSettingsWindow : UserControl + { + private readonly InputConfiguration<GamepadInputId, StickInputId> _viewmodel; + + public RumbleSettingsWindow() + { + InitializeComponent(); + DataContext = _viewmodel; + } + + public RumbleSettingsWindow(ControllerSettingsViewModel viewmodel) + { + var config = viewmodel.Configuration as InputConfiguration<GamepadInputId, StickInputId>; + + _viewmodel = new InputConfiguration<GamepadInputId, StickInputId>() + { + StrongRumble = config.StrongRumble, WeakRumble = config.WeakRumble + }; + + InitializeComponent(); + DataContext = _viewmodel; + } + + public static async Task Show(ControllerSettingsViewModel viewmodel) + { + RumbleSettingsWindow content = new RumbleSettingsWindow(viewmodel); + + ContentDialog contentDialog = new ContentDialog + { + Title = LocaleManager.Instance["ControllerRumbleTitle"], + PrimaryButtonText = LocaleManager.Instance["ControllerSettingsSave"], + SecondaryButtonText = "", + CloseButtonText = LocaleManager.Instance["ControllerSettingsClose"], + Content = content, + }; + + contentDialog.PrimaryButtonClick += (sender, args) => + { + var config = viewmodel.Configuration as InputConfiguration<GamepadInputId, StickInputId>; + config.StrongRumble = content._viewmodel.StrongRumble; + config.WeakRumble = content._viewmodel.WeakRumble; + }; + + await contentDialog.ShowAsync(); + } + } +}
\ No newline at end of file |