aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.Ava/UI
diff options
context:
space:
mode:
authorIsaac Marovitz <42140194+IsaacMarovitz@users.noreply.github.com>2023-05-22 00:16:20 +0100
committerGitHub <noreply@github.com>2023-05-22 01:16:20 +0200
commitb53e7ffd46b5c4ac5c4ac3dcc24385b2c9dc4fa4 (patch)
treee2579164c7c81ab47413d30663224fbbd75e024b /src/Ryujinx.Ava/UI
parentac66643346df76561ff85be741e2998290d43646 (diff)
Ava UI: Input Menu Redesign (#4990)
* Cleanup * Remove redundant locales * Start SVG Fixes… Better +/- buttons Fix the grips Bumpers Better directional pad More SVG stuff Grip adjustments Final stuff * Make image bigger * Border radius * More cleanup * Restructure * Restructure Rumble View * Use compiled bindings where possible * Round those pesky corners * Ack Suggestions * More suggestions * Update src/Ryujinx.Ava/UI/Views/Input/RumbleInputView.axaml.cs Co-authored-by: Ac_K <Acoustik666@gmail.com> --------- Co-authored-by: Ac_K <Acoustik666@gmail.com>
Diffstat (limited to 'src/Ryujinx.Ava/UI')
-rw-r--r--src/Ryujinx.Ava/UI/ViewModels/ControllerInputViewModel.cs (renamed from src/Ryujinx.Ava/UI/ViewModels/ControllerSettingsViewModel.cs)11
-rw-r--r--src/Ryujinx.Ava/UI/ViewModels/MotionInputViewModel.cs93
-rw-r--r--src/Ryujinx.Ava/UI/ViewModels/RumbleInputViewModel.cs27
-rw-r--r--src/Ryujinx.Ava/UI/Views/Input/ControllerInputView.axaml (renamed from src/Ryujinx.Ava/UI/Windows/ControllerSettingsWindow.axaml)602
-rw-r--r--src/Ryujinx.Ava/UI/Views/Input/ControllerInputView.axaml.cs (renamed from src/Ryujinx.Ava/UI/Windows/ControllerSettingsWindow.axaml.cs)11
-rw-r--r--src/Ryujinx.Ava/UI/Views/Input/MotionInputView.axaml (renamed from src/Ryujinx.Ava/UI/Windows/MotionSettingsWindow.axaml)104
-rw-r--r--src/Ryujinx.Ava/UI/Views/Input/MotionInputView.axaml.cs (renamed from src/Ryujinx.Ava/UI/Windows/MotionSettingsWindow.axaml.cs)43
-rw-r--r--src/Ryujinx.Ava/UI/Views/Input/RumbleInputView.axaml (renamed from src/Ryujinx.Ava/UI/Windows/RumbleSettingsWindow.axaml)7
-rw-r--r--src/Ryujinx.Ava/UI/Views/Input/RumbleInputView.axaml.cs (renamed from src/Ryujinx.Ava/UI/Windows/RumbleSettingsWindow.axaml.cs)37
-rw-r--r--src/Ryujinx.Ava/UI/Views/Settings/SettingsInputView.axaml70
10 files changed, 589 insertions, 416 deletions
diff --git a/src/Ryujinx.Ava/UI/ViewModels/ControllerSettingsViewModel.cs b/src/Ryujinx.Ava/UI/ViewModels/ControllerInputViewModel.cs
index dd261b10..fda58504 100644
--- a/src/Ryujinx.Ava/UI/ViewModels/ControllerSettingsViewModel.cs
+++ b/src/Ryujinx.Ava/UI/ViewModels/ControllerInputViewModel.cs
@@ -7,6 +7,7 @@ using Ryujinx.Ava.Common.Locale;
using Ryujinx.Ava.Input;
using Ryujinx.Ava.UI.Helpers;
using Ryujinx.Ava.UI.Models;
+using Ryujinx.Ava.UI.Views.Input;
using Ryujinx.Ava.UI.Windows;
using Ryujinx.Common;
using Ryujinx.Common.Configuration;
@@ -30,7 +31,7 @@ using Key = Ryujinx.Common.Configuration.Hid.Key;
namespace Ryujinx.Ava.UI.ViewModels
{
- public class ControllerSettingsViewModel : BaseModel, IDisposable
+ public class ControllerInputViewModel : BaseModel, IDisposable
{
private const string Disabled = "disabled";
private const string ProControllerResource = "Ryujinx.Ui.Common/Resources/Controller_ProCon.svg";
@@ -231,7 +232,7 @@ namespace Ryujinx.Ava.UI.ViewModels
public InputConfig Config { get; set; }
- public ControllerSettingsViewModel(UserControl owner) : this()
+ public ControllerInputViewModel(UserControl owner) : this()
{
_owner = owner;
@@ -258,7 +259,7 @@ namespace Ryujinx.Ava.UI.ViewModels
}
}
- public ControllerSettingsViewModel()
+ public ControllerInputViewModel()
{
PlayerIndexes = new ObservableCollection<PlayerModel>();
Controllers = new ObservableCollection<ControllerModel>();
@@ -328,12 +329,12 @@ namespace Ryujinx.Ava.UI.ViewModels
public async void ShowMotionConfig()
{
- await MotionSettingsWindow.Show(this);
+ await MotionInputView.Show(this);
}
public async void ShowRumbleConfig()
{
- await RumbleSettingsWindow.Show(this);
+ await RumbleInputView.Show(this);
}
private void LoadInputDriver()
diff --git a/src/Ryujinx.Ava/UI/ViewModels/MotionInputViewModel.cs b/src/Ryujinx.Ava/UI/ViewModels/MotionInputViewModel.cs
new file mode 100644
index 00000000..d57ccc6b
--- /dev/null
+++ b/src/Ryujinx.Ava/UI/ViewModels/MotionInputViewModel.cs
@@ -0,0 +1,93 @@
+namespace Ryujinx.Ava.UI.ViewModels
+{
+ public class MotionInputViewModel : BaseModel
+ {
+ private int _slot;
+ public int Slot
+ {
+ get => _slot;
+ set
+ {
+ _slot = value;
+ OnPropertyChanged();
+ }
+ }
+
+ private int _altSlot;
+ public int AltSlot
+ {
+ get => _altSlot;
+ set
+ {
+ _altSlot = value;
+ OnPropertyChanged();
+ }
+ }
+
+ private string _dsuServerHost;
+ public string DsuServerHost
+ {
+ get => _dsuServerHost;
+ set
+ {
+ _dsuServerHost = value;
+ OnPropertyChanged();
+ }
+ }
+
+ private int _dsuServerPort;
+ public int DsuServerPort
+ {
+ get => _dsuServerPort;
+ set
+ {
+ _dsuServerPort = value;
+ OnPropertyChanged();
+ }
+ }
+
+ private bool _mirrorInput;
+ public bool MirrorInput
+ {
+ get => _mirrorInput;
+ set
+ {
+ _mirrorInput = value;
+ OnPropertyChanged();
+ }
+ }
+
+ private int _sensitivity;
+ public int Sensitivity
+ {
+ get => _sensitivity;
+ set
+ {
+ _sensitivity = value;
+ OnPropertyChanged();
+ }
+ }
+
+ private double _gryoDeadzone;
+ public double GyroDeadzone
+ {
+ get => _gryoDeadzone;
+ set
+ {
+ _gryoDeadzone = value;
+ OnPropertyChanged();
+ }
+ }
+
+ private bool _enableCemuHookMotion;
+ public bool EnableCemuHookMotion
+ {
+ get => _enableCemuHookMotion;
+ set
+ {
+ _enableCemuHookMotion = value;
+ OnPropertyChanged();
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/src/Ryujinx.Ava/UI/ViewModels/RumbleInputViewModel.cs b/src/Ryujinx.Ava/UI/ViewModels/RumbleInputViewModel.cs
new file mode 100644
index 00000000..2d53968f
--- /dev/null
+++ b/src/Ryujinx.Ava/UI/ViewModels/RumbleInputViewModel.cs
@@ -0,0 +1,27 @@
+namespace Ryujinx.Ava.UI.ViewModels
+{
+ public class RumbleInputViewModel : BaseModel
+ {
+ private float _strongRumble;
+ public float StrongRumble
+ {
+ get => _strongRumble;
+ set
+ {
+ _strongRumble = value;
+ OnPropertyChanged();
+ }
+ }
+
+ private float _weakRumble;
+ public float WeakRumble
+ {
+ get => _weakRumble;
+ set
+ {
+ _weakRumble = value;
+ OnPropertyChanged();
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/src/Ryujinx.Ava/UI/Windows/ControllerSettingsWindow.axaml b/src/Ryujinx.Ava/UI/Views/Input/ControllerInputView.axaml
index 1a11a8ff..2395b353 100644
--- a/src/Ryujinx.Ava/UI/Windows/ControllerSettingsWindow.axaml
+++ b/src/Ryujinx.Ava/UI/Views/Input/ControllerInputView.axaml
@@ -1,22 +1,24 @@
<UserControl
- x:Class="Ryujinx.Ava.UI.Windows.ControllerSettingsWindow"
xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:models="clr-namespace:Ryujinx.Ava.UI.Models"
xmlns:viewModels="clr-namespace:Ryujinx.Ava.UI.ViewModels"
xmlns:helpers="clr-namespace:Ryujinx.Ava.UI.Helpers"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
d:DesignHeight="800"
d:DesignWidth="800"
- x:CompileBindings="False"
+ x:Class="Ryujinx.Ava.UI.Views.Input.ControllerInputView"
+ x:DataType="viewModels:ControllerInputViewModel"
+ x:CompileBindings="True"
mc:Ignorable="d"
Focusable="True">
<Design.DataContext>
- <viewModels:ControllerSettingsViewModel />
+ <viewModels:ControllerInputViewModel />
</Design.DataContext>
<UserControl.Resources>
<helpers:KeyValueConverter x:Key="Key" />
@@ -28,29 +30,23 @@
<Setter Property="HorizontalAlignment" Value="Stretch" />
</Style>
</UserControl.Styles>
-
<StackPanel
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Orientation="Vertical">
- <Grid Margin="0,2,0,5" HorizontalAlignment="Stretch">
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="*" />
- <ColumnDefinition Width="*" />
- </Grid.ColumnDefinitions>
- <Grid.RowDefinitions>
- <RowDefinition Height="Auto" />
- <RowDefinition Height="Auto" />
- </Grid.RowDefinitions>
-
- <!-- Player selection -->
- <Border
- Grid.Row="0"
- Grid.Column="0"
- BorderBrush="{DynamicResource ThemeControlBorderColor}"
- BorderThickness="1"
- Padding="2">
+ <StackPanel
+ Margin="0 0 0 5"
+ Orientation="Vertical"
+ Spacing="5">
+ <Grid>
+ <Grid.ColumnDefinitions>
+ <ColumnDefinition Width="*" />
+ <ColumnDefinition Width="10" />
+ <ColumnDefinition Width="*" />
+ </Grid.ColumnDefinitions>
+ <!-- Player Selection -->
<Grid
+ Grid.Column="0"
Margin="2"
HorizontalAlignment="Stretch"
VerticalAlignment="Center">
@@ -79,16 +75,9 @@
</ComboBox.ItemTemplate>
</ComboBox>
</Grid>
- </Border>
- <!-- Profile selection -->
- <Border
- Grid.Row="1"
- Grid.Column="0"
- Margin="0,-1,0,0"
- BorderBrush="{DynamicResource ThemeControlBorderColor}"
- BorderThickness="1"
- Padding="2">
+ <!-- Profile Selection -->
<Grid
+ Grid.Column="2"
Margin="2"
HorizontalAlignment="Stretch"
VerticalAlignment="Center">
@@ -120,7 +109,7 @@
Margin="5,0,0,0"
VerticalAlignment="Center"
ToolTip.Tip="{locale:Locale ControllerSettingsLoadProfileToolTip}"
- Command="{Binding LoadProfile}">
+ Command="{ReflectionBinding LoadProfile}">
<ui:SymbolIcon
Symbol="Upload"
FontSize="15"
@@ -132,7 +121,7 @@
Margin="5,0,0,0"
VerticalAlignment="Center"
ToolTip.Tip="{locale:Locale ControllerSettingsSaveProfileToolTip}"
- Command="{Binding SaveProfile}">
+ Command="{ReflectionBinding SaveProfile}">
<ui:SymbolIcon
Symbol="Save"
FontSize="15"
@@ -144,24 +133,26 @@
Margin="5,0,0,0"
VerticalAlignment="Center"
ToolTip.Tip="{locale:Locale ControllerSettingsRemoveProfileToolTip}"
- Command="{Binding RemoveProfile}">
+ Command="{ReflectionBinding RemoveProfile}">
<ui:SymbolIcon
Symbol="Delete"
FontSize="15"
Height="20" />
</Button>
</Grid>
- </Border>
-
- <!-- Input device -->
- <Border
- Grid.Row="0"
- Grid.Column="1"
- Margin="-1,0,0,0"
- BorderBrush="{DynamicResource ThemeControlBorderColor}"
- BorderThickness="1"
- Padding="2">
- <Grid Margin="2" HorizontalAlignment="Stretch">
+ </Grid>
+ <Separator />
+ <Grid>
+ <Grid.ColumnDefinitions>
+ <ColumnDefinition Width="*" />
+ <ColumnDefinition Width="10" />
+ <ColumnDefinition Width="*" />
+ </Grid.ColumnDefinitions>
+ <!-- Input Device -->
+ <Grid
+ Grid.Column="0"
+ Margin="2"
+ HorizontalAlignment="Stretch">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
@@ -186,24 +177,16 @@
MinWidth="0"
Margin="5,0,0,0"
VerticalAlignment="Center"
- Command="{Binding LoadDevices}">
+ Command="{ReflectionBinding LoadDevices}">
<ui:SymbolIcon
Symbol="Refresh"
FontSize="15"
Height="20"/>
</Button>
</Grid>
- </Border>
-
- <!-- Controler type -->
- <Border
- Grid.Row="1"
- Grid.Column="1"
- Margin="-1,-1,0,0"
- BorderBrush="{DynamicResource ThemeControlBorderColor}"
- BorderThickness="1"
- Padding="2">
+ <!-- Controller Type -->
<Grid
+ Grid.Column="2"
Margin="2"
HorizontalAlignment="Stretch"
VerticalAlignment="Center">
@@ -220,19 +203,18 @@
<ComboBox
Grid.Column="1"
HorizontalAlignment="Stretch"
- Items="{Binding Controllers}"
- SelectedIndex="{Binding Controller}">
+ Items="{ReflectionBinding Controllers}"
+ SelectedIndex="{ReflectionBinding Controller}">
<ComboBox.ItemTemplate>
- <DataTemplate>
+ <DataTemplate DataType="models:ControllerModel">
<TextBlock Text="{Binding Name}" />
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</Grid>
- </Border>
- </Grid>
-
- <!-- Button / JoyStick Settings -->
+ </Grid>
+ </StackPanel>
+ <!-- Button / JoyStick Settings -->
<Grid
Name="SettingButtons"
MinHeight="450"
@@ -242,27 +224,21 @@
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
-
- <!-- Left -->
- <Grid
+ <!-- Left Controls -->
+ <StackPanel
+ Orientation="Vertical"
Margin="0,0,5,0"
- Grid.Column="0"
- VerticalAlignment="Stretch"
- DockPanel.Dock="Left">
- <Grid.RowDefinitions>
- <RowDefinition Height="Auto" />
- <RowDefinition Height="Auto" />
- <RowDefinition Height="Auto" />
- </Grid.RowDefinitions>
-
- <!-- Left Triggers -->
+ Grid.Column="0">
+ <!-- Left Triggers -->
<Border
- Grid.Row="0"
BorderBrush="{DynamicResource ThemeControlBorderColor}"
BorderThickness="1"
IsVisible="{Binding IsLeft}"
- MinHeight="90">
- <Grid Margin="10" HorizontalAlignment="Stretch">
+ MinHeight="90"
+ CornerRadius="5">
+ <Grid
+ Margin="10"
+ HorizontalAlignment="Stretch">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
@@ -274,7 +250,6 @@
<StackPanel
Grid.Column="0"
Grid.Row="0"
- Background="{DynamicResource ThemeDarkColor}"
Orientation="Horizontal">
<TextBlock
Width="20"
@@ -284,14 +259,13 @@
TextAlignment="Center" />
<ToggleButton>
<TextBlock
- Text="{Binding Configuration.ButtonZl, Mode=TwoWay, Converter={StaticResource Key}}"
+ Text="{ReflectionBinding Configuration.ButtonZl, Mode=TwoWay, Converter={StaticResource Key}}"
TextAlignment="Center" />
</ToggleButton>
</StackPanel>
<StackPanel
Grid.Column="0"
Grid.Row="1"
- Background="{DynamicResource ThemeDarkColor}"
Orientation="Horizontal">
<TextBlock
Width="20"
@@ -301,14 +275,13 @@
TextAlignment="Center" />
<ToggleButton>
<TextBlock
- Text="{Binding Configuration.ButtonL, Mode=TwoWay, Converter={StaticResource Key}}"
+ Text="{ReflectionBinding Configuration.ButtonL, Mode=TwoWay, Converter={StaticResource Key}}"
TextAlignment="Center" />
</ToggleButton>
</StackPanel>
<StackPanel
Grid.Column="1"
Grid.Row="1"
- Background="{DynamicResource ThemeDarkColor}"
Orientation="Horizontal">
<TextBlock
Width="20"
@@ -318,159 +291,172 @@
TextAlignment="Center" />
<ToggleButton>
<TextBlock
- Text="{Binding Configuration.ButtonMinus, Mode=TwoWay, Converter={StaticResource Key}}"
+ Text="{ReflectionBinding Configuration.ButtonMinus, Mode=TwoWay, Converter={StaticResource Key}}"
TextAlignment="Center" />
</ToggleButton>
</StackPanel>
</Grid>
</Border>
-
- <!-- Left Joystick -->
+ <!-- Left Joystick -->
<Border
- Grid.Row="1"
BorderBrush="{DynamicResource ThemeControlBorderColor}"
BorderThickness="1"
IsVisible="{Binding IsLeft}"
- Margin="0,5,0,0">
- <StackPanel Margin="10" Orientation="Vertical">
+ Margin="0,5,0,0"
+ CornerRadius="5">
+ <StackPanel
+ Margin="10"
+ Orientation="Vertical">
<TextBlock
Margin="0,0,0,10"
HorizontalAlignment="Center"
Text="{locale:Locale ControllerSettingsLStick}" />
-
- <!-- Left Joystick Keyboard -->
- <StackPanel IsVisible="{Binding !IsController}" Orientation="Vertical">
-
- <!-- Left Joystick Button -->
- <StackPanel Margin="0,0,0,4" Background="{DynamicResource ThemeDarkColor}" Orientation="Horizontal">
+ <!-- Left Joystick Keyboard -->
+ <StackPanel
+ IsVisible="{Binding !IsController}"
+ Orientation="Vertical">
+ <!-- Left Joystick Button -->
+ <StackPanel
+ Margin="0,0,0,4"
+ Orientation="Horizontal">
<TextBlock
Margin="0,0,10,0"
Width="120"
HorizontalAlignment="Center"
VerticalAlignment="Center"
- Text="{locale:Locale ControllerSettingsLStickButton}"
+ Text="{locale:Locale ControllerSettingsStickButton}"
TextAlignment="Center" />
<ToggleButton>
<TextBlock
- Text="{Binding Configuration.LeftKeyboardStickButton, Mode=TwoWay, Converter={StaticResource Key}}"
+ Text="{ReflectionBinding Configuration.LeftKeyboardStickButton, Mode=TwoWay, Converter={StaticResource Key}}"
TextAlignment="Center" />
</ToggleButton>
</StackPanel>
-
- <!-- Left Joystick Up -->
- <StackPanel Margin="0,0,0,4" Background="{DynamicResource ThemeDarkColor}" Orientation="Horizontal">
+ <!-- Left Joystick Up -->
+ <StackPanel
+ Margin="0,0,0,4"
+ Orientation="Horizontal">
<TextBlock
Margin="0,0,10,0"
Width="120"
HorizontalAlignment="Center"
VerticalAlignment="Center"
- Text="{locale:Locale ControllerSettingsLStickUp}"
+ Text="{locale:Locale ControllerSettingsStickUp}"
TextAlignment="Center" />
<ToggleButton>
<TextBlock
- Text="{Binding Configuration.LeftStickUp, Mode=TwoWay, Converter={StaticResource Key}}"
+ Text="{ReflectionBinding Configuration.LeftStickUp, Mode=TwoWay, Converter={StaticResource Key}}"
TextAlignment="Center" />
</ToggleButton>
</StackPanel>
-
- <!-- Left Joystick Down -->
- <StackPanel Margin="0,0,0,4" Background="{DynamicResource ThemeDarkColor}" Orientation="Horizontal">
+ <!-- Left Joystick Down -->
+ <StackPanel
+ Margin="0,0,0,4"
+ Orientation="Horizontal">
<TextBlock
Margin="0,0,10,0"
Width="120"
HorizontalAlignment="Center"
VerticalAlignment="Center"
- Text="{locale:Locale ControllerSettingsLStickDown}"
+ Text="{locale:Locale ControllerSettingsStickDown}"
TextAlignment="Center" />
<ToggleButton>
<TextBlock
- Text="{Binding Configuration.LeftStickDown, Mode=TwoWay, Converter={StaticResource Key}}"
+ Text="{ReflectionBinding Configuration.LeftStickDown, Mode=TwoWay, Converter={StaticResource Key}}"
TextAlignment="Center" />
</ToggleButton>
</StackPanel>
-
- <!-- Left Joystick Left -->
- <StackPanel Margin="0,0,0,4" Background="{DynamicResource ThemeDarkColor}" Orientation="Horizontal">
+ <!-- Left Joystick Left -->
+ <StackPanel
+ Margin="0,0,0,4"
+ Orientation="Horizontal">
<TextBlock
Margin="0,0,10,0"
Width="120"
HorizontalAlignment="Center"
VerticalAlignment="Center"
- Text="{locale:Locale ControllerSettingsLStickLeft}"
+ Text="{locale:Locale ControllerSettingsStickLeft}"
TextAlignment="Center" />
<ToggleButton>
<TextBlock
- Text="{Binding Configuration.LeftStickLeft, Mode=TwoWay, Converter={StaticResource Key}}"
+ Text="{ReflectionBinding Configuration.LeftStickLeft, Mode=TwoWay, Converter={StaticResource Key}}"
TextAlignment="Center" />
</ToggleButton>
</StackPanel>
-
- <!-- Left Joystick Right -->
- <StackPanel Margin="0,0,0,4" Background="{DynamicResource ThemeDarkColor}" Orientation="Horizontal">
+ <!-- Left Joystick Right -->
+ <StackPanel
+ Margin="0,0,0,4"
+ Orientation="Horizontal">
<TextBlock
Margin="0,0,10,0"
Width="120"
HorizontalAlignment="Center"
VerticalAlignment="Center"
- Text="{locale:Locale ControllerSettingsLStickRight}"
+ Text="{locale:Locale ControllerSettingsStickRight}"
TextAlignment="Center" />
<ToggleButton>
<TextBlock
- Text="{Binding Configuration.LeftStickRight, Mode=TwoWay, Converter={StaticResource Key}}"
+ Text="{ReflectionBinding Configuration.LeftStickRight, Mode=TwoWay, Converter={StaticResource Key}}"
TextAlignment="Center" />
</ToggleButton>
</StackPanel>
</StackPanel>
-
- <!-- Left Joystick Controller -->
- <StackPanel IsVisible="{Binding IsController}" Orientation="Vertical">
-
- <!-- Left Joystick Button -->
- <StackPanel Background="{DynamicResource ThemeDarkColor}" Orientation="Horizontal">
+ <!-- Left Joystick Controller -->
+ <StackPanel
+ IsVisible="{Binding IsController}"
+ Orientation="Vertical">
+ <!-- Left Joystick Button -->
+ <StackPanel
+ Orientation="Horizontal">
<TextBlock
Margin="0,0,10,0"
Width="120"
HorizontalAlignment="Center"
VerticalAlignment="Center"
- Text="{locale:Locale ControllerSettingsLStickButton}"
+ Text="{locale:Locale ControllerSettingsStickButton}"
TextAlignment="Center" />
<ToggleButton>
<TextBlock
- Text="{Binding Configuration.LeftControllerStickButton, Mode=TwoWay, Converter={StaticResource Key}}"
+ Text="{ReflectionBinding Configuration.LeftControllerStickButton, Mode=TwoWay, Converter={StaticResource Key}}"
TextAlignment="Center" />
</ToggleButton>
</StackPanel>
-
- <!-- Left Joystick Stick -->
- <StackPanel Margin="0,4,0,4" Background="{DynamicResource ThemeDarkColor}" Orientation="Horizontal">
+ <!-- Left Joystick Stick -->
+ <StackPanel
+ Margin="0,4,0,4"
+ Orientation="Horizontal">
<TextBlock
Margin="0,0,10,0"
Width="120"
HorizontalAlignment="Center"
VerticalAlignment="Center"
- Text="{locale:Locale ControllerSettingsLStickStick}"
+ Text="{locale:Locale ControllerSettingsStickStick}"
TextAlignment="Center" />
<ToggleButton Tag="stick">
<TextBlock
- Text="{Binding Configuration.LeftJoystick, Mode=TwoWay, Converter={StaticResource Key}}"
+ Text="{ReflectionBinding Configuration.LeftJoystick, Mode=TwoWay, Converter={StaticResource Key}}"
TextAlignment="Center" />
</ToggleButton>
</StackPanel>
- <Separator Margin="0,8,0,8" Height="1" />
- <CheckBox IsChecked="{Binding Configuration.LeftInvertStickX}">
- <TextBlock Text="{locale:Locale ControllerSettingsLStickInvertXAxis}" />
+ <Separator
+ Margin="0,8,0,8"
+ Height="1" />
+ <CheckBox IsChecked="{ReflectionBinding Configuration.LeftInvertStickX}">
+ <TextBlock Text="{locale:Locale ControllerSettingsStickInvertXAxis}" />
</CheckBox>
- <CheckBox IsChecked="{Binding Configuration.LeftInvertStickY}">
- <TextBlock Text="{locale:Locale ControllerSettingsLStickInvertYAxis}" />
+ <CheckBox IsChecked="{ReflectionBinding Configuration.LeftInvertStickY}">
+ <TextBlock Text="{locale:Locale ControllerSettingsStickInvertYAxis}" />
</CheckBox>
- <CheckBox IsChecked="{Binding Configuration.LeftRotate90}">
+ <CheckBox IsChecked="{ReflectionBinding Configuration.LeftRotate90}">
<TextBlock Text="{locale:Locale ControllerSettingsRotate90}" />
</CheckBox>
- <Separator Margin="0,8,0,8" Height="1" />
+ <Separator
+ Margin="0,8,0,8"
+ Height="1" />
<StackPanel Orientation="Vertical">
- <TextBlock
- HorizontalAlignment="Center"
- Text="{locale:Locale ControllerSettingsLStickDeadzone}" />
+ <TextBlock
+ HorizontalAlignment="Center"
+ Text="{locale:Locale ControllerSettingsStickDeadzone}" />
<StackPanel
HorizontalAlignment="Center"
VerticalAlignment="Center"
@@ -481,14 +467,14 @@
TickFrequency="0.01"
IsSnapToTickEnabled="True"
Minimum="0"
- Value="{Binding Configuration.DeadzoneLeft, Mode=TwoWay}" />
+ Value="{ReflectionBinding Configuration.DeadzoneLeft, Mode=TwoWay}" />
<TextBlock
VerticalAlignment="Center"
Width="25"
- Text="{Binding Configuration.DeadzoneLeft, StringFormat=\{0:0.00\}}" />
+ Text="{ReflectionBinding Configuration.DeadzoneLeft, StringFormat=\{0:0.00\}}" />
</StackPanel>
- <TextBlock
- HorizontalAlignment="Center"
+ <TextBlock
+ HorizontalAlignment="Center"
Text="{locale:Locale ControllerSettingsStickRange}" />
<StackPanel
HorizontalAlignment="Center"
@@ -500,33 +486,36 @@
TickFrequency="0.01"
IsSnapToTickEnabled="True"
Minimum="0"
- Value="{Binding Configuration.RangeLeft, Mode=TwoWay}" />
+ Value="{ReflectionBinding Configuration.RangeLeft, Mode=TwoWay}" />
<TextBlock
VerticalAlignment="Center"
Width="25"
- Text="{Binding Configuration.RangeLeft, StringFormat=\{0:0.00\}}" />
+ Text="{ReflectionBinding Configuration.RangeLeft, StringFormat=\{0:0.00\}}" />
</StackPanel>
</StackPanel>
</StackPanel>
</StackPanel>
</Border>
-
- <!-- Left DPad -->
+ <!-- Left DPad -->
<Border
- Grid.Row="2"
BorderBrush="{DynamicResource ThemeControlBorderColor}"
BorderThickness="1"
VerticalAlignment="Top"
IsVisible="{Binding IsLeft}"
- Margin="0,5,0,0">
- <StackPanel Margin="10" Orientation="Vertical">
+ Margin="0,5,0,0"
+ CornerRadius="5">
+ <StackPanel
+ Margin="10"
+ Orientation="Vertical">
<TextBlock
Margin="0,0,0,10"
HorizontalAlignment="Center"
Text="{locale:Locale ControllerSettingsDPad}" />
<StackPanel Orientation="Vertical">
- <!-- Left DPad Up -->
- <StackPanel Margin="0,0,0,4" Background="{DynamicResource ThemeDarkColor}" Orientation="Horizontal">
+ <!-- Left DPad Up -->
+ <StackPanel
+ Margin="0,0,0,4"
+ Orientation="Horizontal">
<TextBlock
Margin="0,0,10,0"
Width="120"
@@ -534,16 +523,16 @@
VerticalAlignment="Center"
Text="{locale:Locale ControllerSettingsDPadUp}"
TextAlignment="Center" />
- <ToggleButton
- HorizontalAlignment="Stretch">
+ <ToggleButton>
<TextBlock
- Text="{Binding Configuration.DpadUp, Mode=TwoWay, Converter={StaticResource Key}}"
+ Text="{ReflectionBinding Configuration.DpadUp, Mode=TwoWay, Converter={StaticResource Key}}"
TextAlignment="Center" />
</ToggleButton>
</StackPanel>
-
- <!-- Left DPad Down -->
- <StackPanel Margin="0,0,0,4" Background="{DynamicResource ThemeDarkColor}" Orientation="Horizontal">
+ <!-- Left DPad Down -->
+ <StackPanel
+ Margin="0,0,0,4"
+ Orientation="Horizontal">
<TextBlock
Margin="0,0,10,0"
Width="120"
@@ -551,16 +540,16 @@
VerticalAlignment="Center"
Text="{locale:Locale ControllerSettingsDPadDown}"
TextAlignment="Center" />
- <ToggleButton
- HorizontalAlignment="Stretch">
+ <ToggleButton>
<TextBlock
- Text="{Binding Configuration.DpadDown, Mode=TwoWay, Converter={StaticResource Key}}"
+ Text="{ReflectionBinding Configuration.DpadDown, Mode=TwoWay, Converter={StaticResource Key}}"
TextAlignment="Center" />
</ToggleButton>
</StackPanel>
-
- <!-- Left DPad Left -->
- <StackPanel Margin="0,0,0,4" Background="{DynamicResource ThemeDarkColor}" Orientation="Horizontal">
+ <!-- Left DPad Left -->
+ <StackPanel
+ Margin="0,0,0,4"
+ Orientation="Horizontal">
<TextBlock
Margin="0,0,10,0"
Width="120"
@@ -568,16 +557,16 @@
VerticalAlignment="Center"
Text="{locale:Locale ControllerSettingsDPadLeft}"
TextAlignment="Center" />
- <ToggleButton
- HorizontalAlignment="Stretch">
+ <ToggleButton>
<TextBlock
- Text="{Binding Configuration.DpadLeft, Mode=TwoWay, Converter={StaticResource Key}}"
+ Text="{ReflectionBinding Configuration.DpadLeft, Mode=TwoWay, Converter={StaticResource Key}}"
TextAlignment="Center" />
</ToggleButton>
</StackPanel>
-
- <!-- Left DPad Right -->
- <StackPanel Margin="0,0,0,4" Background="{DynamicResource ThemeDarkColor}" Orientation="Horizontal">
+ <!-- Left DPad Right -->
+ <StackPanel
+ Margin="0,0,0,4"
+ Orientation="Horizontal">
<TextBlock
Margin="0,0,10,0"
Width="120"
@@ -585,42 +574,50 @@
VerticalAlignment="Center"
Text="{locale:Locale ControllerSettingsDPadRight}"
TextAlignment="Center" />
- <ToggleButton
- HorizontalAlignment="Stretch">
+ <ToggleButton>
<TextBlock
- Text="{Binding Configuration.DpadRight, Mode=TwoWay, Converter={StaticResource Key}}"
+ Text="{ReflectionBinding Configuration.DpadRight, Mode=TwoWay, Converter={StaticResource Key}}"
TextAlignment="Center" />
</ToggleButton>
</StackPanel>
</StackPanel>
</StackPanel>
</Border>
- </Grid>
-
- <!-- Triggers And Side Buttons-->
- <StackPanel Grid.Column="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
+ </StackPanel>
+ <!-- Triggers & Side Buttons -->
+ <StackPanel
+ Grid.Column="1"
+ HorizontalAlignment="Stretch"
+ VerticalAlignment="Stretch">
<Border
BorderBrush="{DynamicResource ThemeControlBorderColor}"
- BorderThickness="1" MinHeight="90">
- <StackPanel Margin="8" Orientation="Vertical">
- <TextBlock HorizontalAlignment="Center" Text="{locale:Locale ControllerSettingsTriggerThreshold}" />
- <StackPanel HorizontalAlignment="Center" Orientation="Horizontal">
+ BorderThickness="1"
+ CornerRadius="5"
+ MinHeight="90">
+ <StackPanel
+ Margin="8"
+ Orientation="Vertical">
+ <TextBlock
+ HorizontalAlignment="Center"
+ Text="{locale:Locale ControllerSettingsTriggerThreshold}" />
+ <StackPanel
+ HorizontalAlignment="Center"
+ Orientation="Horizontal">
<Slider
Width="130"
Maximum="1"
TickFrequency="0.01"
IsSnapToTickEnabled="True"
Minimum="0"
- Value="{Binding Configuration.TriggerThreshold, Mode=TwoWay}" />
+ Value="{ReflectionBinding Configuration.TriggerThreshold, Mode=TwoWay}" />
<TextBlock
Width="25"
- Text="{Binding Configuration.TriggerThreshold, StringFormat=\{0:0.00\}}" />
+ Text="{ReflectionBinding Configuration.TriggerThreshold, StringFormat=\{0:0.00\}}" />
</StackPanel>
<StackPanel
Margin="0,4,0,0"
HorizontalAlignment="Center"
VerticalAlignment="Center"
- Background="{DynamicResource ThemeDarkColor}"
IsVisible="{Binding !IsRight}"
Orientation="Horizontal">
<TextBlock
@@ -631,7 +628,7 @@
TextAlignment="Center" />
<ToggleButton>
<TextBlock
- Text="{Binding Configuration.LeftButtonSr, Mode=TwoWay, Converter={StaticResource Key}}"
+ Text="{ReflectionBinding Configuration.LeftButtonSr, Mode=TwoWay, Converter={StaticResource Key}}"
TextAlignment="Center" />
</ToggleButton>
</StackPanel>
@@ -640,7 +637,6 @@
HorizontalAlignment="Center"
VerticalAlignment="Center"
IsVisible="{Binding !IsRight}"
- Background="{DynamicResource ThemeDarkColor}"
Orientation="Horizontal">
<TextBlock
Width="20"
@@ -650,7 +646,7 @@
TextAlignment="Center" />
<ToggleButton>
<TextBlock
- Text="{Binding Configuration.LeftButtonSl, Mode=TwoWay, Converter={StaticResource Key}}"
+ Text="{ReflectionBinding Configuration.LeftButtonSl, Mode=TwoWay, Converter={StaticResource Key}}"
TextAlignment="Center" />
</ToggleButton>
</StackPanel>
@@ -659,7 +655,6 @@
HorizontalAlignment="Center"
VerticalAlignment="Center"
IsVisible="{Binding !IsLeft}"
- Background="{DynamicResource ThemeDarkColor}"
Orientation="Horizontal">
<TextBlock
Width="20"
@@ -669,7 +664,7 @@
TextAlignment="Center" />
<ToggleButton>
<TextBlock
- Text="{Binding Configuration.RightButtonSr, Mode=TwoWay, Converter={StaticResource Key}}"
+ Text="{ReflectionBinding Configuration.RightButtonSr, Mode=TwoWay, Converter={StaticResource Key}}"
TextAlignment="Center" />
</ToggleButton>
</StackPanel>
@@ -678,7 +673,6 @@
HorizontalAlignment="Center"
VerticalAlignment="Center"
IsVisible="{Binding !IsLeft}"
- Background="{DynamicResource ThemeDarkColor}"
Orientation="Horizontal">
<TextBlock
Width="20"
@@ -688,26 +682,29 @@
TextAlignment="Center" />
<ToggleButton>
<TextBlock
- Text="{Binding Configuration.RightButtonSl, Mode=TwoWay, Converter={StaticResource Key}}"
+ Text="{ReflectionBinding Configuration.RightButtonSl, Mode=TwoWay, Converter={StaticResource Key}}"
TextAlignment="Center" />
</ToggleButton>
</StackPanel>
</StackPanel>
</Border>
-
- <!-- Controller Picture -->
+ <!-- Controller Picture -->
<Image
Margin="0,10,0,0"
- MaxHeight="250"
+ MaxHeight="300"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Source="{Binding Image}" />
-
- <!-- Motion+Rumble -->
- <StackPanel Margin="0,10,0,0" Orientation="Vertical" VerticalAlignment="Bottom">
+ <!-- Motion + Rumble -->
+ <StackPanel
+ Margin="0,10,0,0"
+ Spacing="5"
+ Orientation="Vertical"
+ VerticalAlignment="Bottom">
<Border
BorderBrush="{DynamicResource ThemeControlBorderColor}"
BorderThickness="1"
+ CornerRadius="5"
VerticalAlignment="Bottom"
HorizontalAlignment="Stretch"
IsVisible="{Binding IsController}">
@@ -720,10 +717,13 @@
Margin="10"
MinWidth="0"
Grid.Column="0"
- IsChecked="{Binding Configuration.EnableMotion, Mode=TwoWay}">
+ IsChecked="{ReflectionBinding Configuration.EnableMotion, Mode=TwoWay}">
<TextBlock Text="{locale:Locale ControllerSettingsMotion}" />
</CheckBox>
- <Button Margin="10" Grid.Column="1" Command="{Binding ShowMotionConfig}">
+ <Button
+ Margin="10"
+ Grid.Column="1"
+ Command="{ReflectionBinding ShowMotionConfig}">
<TextBlock Text="{locale:Locale ControllerSettingsConfigureGeneral}" />
</Button>
</Grid>
@@ -731,6 +731,7 @@
<Border
BorderBrush="{DynamicResource ThemeControlBorderColor}"
BorderThickness="1"
+ CornerRadius="5"
HorizontalAlignment="Stretch"
IsVisible="{Binding IsController}"
Margin="0,-1,0,0">
@@ -743,36 +744,34 @@
Margin="10"
MinWidth="0"
Grid.Column="0"
- IsChecked="{Binding Configuration.EnableRumble, Mode=TwoWay}">
+ IsChecked="{ReflectionBinding Configuration.EnableRumble, Mode=TwoWay}">
<TextBlock Text="{locale:Locale ControllerSettingsRumble}" />
</CheckBox>
- <Button Margin="10" Grid.Column="1" Command="{Binding ShowRumbleConfig}">
+ <Button
+ Margin="10"
+ Grid.Column="1"
+ Command="{ReflectionBinding ShowRumbleConfig}">
<TextBlock Text="{locale:Locale ControllerSettingsConfigureGeneral}" />
</Button>
</Grid>
</Border>
</StackPanel>
</StackPanel>
-
- <!--Right Controls-->
- <Grid
+ <!-- Right Controls -->
+ <StackPanel
+ Orientation="Vertical"
Margin="5,0,0,0"
- Grid.Column="2"
- VerticalAlignment="Top"
- HorizontalAlignment="Stretch" >
- <Grid.RowDefinitions>
- <RowDefinition />
- <RowDefinition />
- <RowDefinition />
- <RowDefinition />
- </Grid.RowDefinitions>
+ Grid.Column="2">
+ <!-- Right Triggers -->
<Border
- Grid.Row="0"
BorderBrush="{DynamicResource ThemeControlBorderColor}"
BorderThickness="1"
IsVisible="{Binding IsRight}"
- MinHeight="90">
- <Grid Margin="10" HorizontalAlignment="Stretch">
+ MinHeight="90"
+ CornerRadius="5">
+ <Grid
+ Margin="10"
+ HorizontalAlignment="Stretch">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
@@ -784,7 +783,6 @@
<StackPanel
Grid.Column="1"
Grid.Row="0"
- Background="{DynamicResource ThemeDarkColor}"
Orientation="Horizontal">
<TextBlock
Width="20"
@@ -794,7 +792,7 @@
TextAlignment="Center" />
<ToggleButton>
<TextBlock
- Text="{Binding Configuration.ButtonZr, Mode=TwoWay, Converter={StaticResource Key}}"
+ Text="{ReflectionBinding Configuration.ButtonZr, Mode=TwoWay, Converter={StaticResource Key}}"
TextAlignment="Center" />
</ToggleButton>
</StackPanel>
@@ -803,7 +801,6 @@
Grid.Row="1"
HorizontalAlignment="Center"
VerticalAlignment="Center"
- Background="{DynamicResource ThemeDarkColor}"
Orientation="Horizontal">
<TextBlock
Width="20"
@@ -813,7 +810,7 @@
TextAlignment="Center" />
<ToggleButton>
<TextBlock
- Text="{Binding Configuration.ButtonR, Mode=TwoWay, Converter={StaticResource Key}}"
+ Text="{ReflectionBinding Configuration.ButtonR, Mode=TwoWay, Converter={StaticResource Key}}"
TextAlignment="Center" />
</ToggleButton>
</StackPanel>
@@ -822,7 +819,6 @@
Grid.Row="1"
HorizontalAlignment="Right"
VerticalAlignment="Center"
- Background="{DynamicResource ThemeDarkColor}"
Orientation="Horizontal">
<TextBlock
Width="20"
@@ -832,28 +828,31 @@
TextAlignment="Center" />
<ToggleButton>
<TextBlock
- Text="{Binding Configuration.ButtonPlus, Mode=TwoWay, Converter={StaticResource Key}}"
+ Text="{ReflectionBinding Configuration.ButtonPlus, Mode=TwoWay, Converter={StaticResource Key}}"
TextAlignment="Center" />
</ToggleButton>
</StackPanel>
</Grid>
</Border>
+ <!-- Right Joystick -->
<Border
- Grid.Row="1"
BorderBrush="{DynamicResource ThemeControlBorderColor}"
BorderThickness="1"
IsVisible="{Binding IsRight}"
- Margin="0,5,0,0">
- <StackPanel Margin="10" Orientation="Vertical">
+ Margin="0,5,0,0"
+ CornerRadius="5">
+ <StackPanel
+ Margin="10"
+ Orientation="Vertical">
<TextBlock
Margin="0,0,0,10"
HorizontalAlignment="Center"
Text="{locale:Locale ControllerSettingsButtons}" />
- <StackPanel Orientation="Vertical">
- <!-- Right Buttons A -->
+ <StackPanel
+ Orientation="Vertical">
+ <!-- Right Buttons A -->
<StackPanel
Margin="0,0,0,4"
- Background="{DynamicResource ThemeDarkColor}"
Orientation="Horizontal">
<TextBlock
Width="120"
@@ -864,14 +863,13 @@
TextAlignment="Center" />
<ToggleButton>
<TextBlock
- Text="{Binding Configuration.ButtonA, Mode=TwoWay, Converter={StaticResource Key}}"
+ Text="{ReflectionBinding Configuration.ButtonA, Mode=TwoWay, Converter={StaticResource Key}}"
TextAlignment="Center" />
</ToggleButton>
</StackPanel>
- <!-- Right Buttons B -->
+ <!-- Right Buttons B -->
<StackPanel
Margin="0,0,0,4"
- Background="{DynamicResource ThemeDarkColor}"
Orientation="Horizontal">
<TextBlock
Width="120"
@@ -882,14 +880,13 @@
TextAlignment="Center" />
<ToggleButton>
<TextBlock
- Text="{Binding Configuration.ButtonB, Mode=TwoWay, Converter={StaticResource Key}}"
+ Text="{ReflectionBinding Configuration.ButtonB, Mode=TwoWay, Converter={StaticResource Key}}"
TextAlignment="Center" />
</ToggleButton>
</StackPanel>
- <!-- Right Buttons X -->
+ <!-- Right Buttons X -->
<StackPanel
Margin="0,0,0,4"
- Background="{DynamicResource ThemeDarkColor}"
Orientation="Horizontal">
<TextBlock
Width="120"
@@ -900,14 +897,13 @@
TextAlignment="Center" />
<ToggleButton>
<TextBlock
- Text="{Binding Configuration.ButtonX, Mode=TwoWay, Converter={StaticResource Key}}"
+ Text="{ReflectionBinding Configuration.ButtonX, Mode=TwoWay, Converter={StaticResource Key}}"
TextAlignment="Center" />
</ToggleButton>
</StackPanel>
- <!-- Right Buttons Y -->
+ <!-- Right Buttons Y -->
<StackPanel
Margin="0,0,0,4"
- Background="{DynamicResource ThemeDarkColor}"
Orientation="Horizontal">
<TextBlock
Width="120"
@@ -918,18 +914,19 @@
TextAlignment="Center" />
<ToggleButton>
<TextBlock
- Text="{Binding Configuration.ButtonY, Mode=TwoWay, Converter={StaticResource Key}}"
+ Text="{ReflectionBinding Configuration.ButtonY, Mode=TwoWay, Converter={StaticResource Key}}"
TextAlignment="Center" />
</ToggleButton>
</StackPanel>
</StackPanel>
</StackPanel>
</Border>
+ <!-- Right DPad -->
<Border
- Grid.Row="2"
Padding="10"
BorderBrush="{DynamicResource ThemeControlBorderColor}"
BorderThickness="1"
+ CornerRadius="5"
IsVisible="{Binding IsRight}"
Margin="0,5,0,0">
<StackPanel Orientation="Vertical">
@@ -937,141 +934,149 @@
Margin="0,0,0,10"
HorizontalAlignment="Center"
Text="{locale:Locale ControllerSettingsRStick}" />
-
- <!-- Right Joystick Keyboard -->
- <StackPanel IsVisible="{Binding !IsController}" Orientation="Vertical">
-
- <!-- Right Joystick Button -->
- <StackPanel Margin="0,0,0,4" Background="{DynamicResource ThemeDarkColor}" Orientation="Horizontal">
+ <!-- Right Joystick Keyboard -->
+ <StackPanel
+ IsVisible="{Binding !IsController}"
+ Orientation="Vertical">
+ <!-- Right Joystick Button -->
+ <StackPanel
+ Margin="0,0,0,4"
+ Orientation="Horizontal">
<TextBlock
Margin="0,0,10,0"
Width="120"
HorizontalAlignment="Center"
VerticalAlignment="Center"
- Text="{locale:Locale ControllerSettingsRStickButton}"
+ Text="{locale:Locale ControllerSettingsStickButton}"
TextAlignment="Center" />
<ToggleButton>
<TextBlock
- Text="{Binding Configuration.RightKeyboardStickButton, Mode=TwoWay, Converter={StaticResource Key}}"
+ Text="{ReflectionBinding Configuration.RightKeyboardStickButton, Mode=TwoWay, Converter={StaticResource Key}}"
TextAlignment="Center" />
</ToggleButton>
</StackPanel>
-
- <!-- Right Joystick Up -->
- <StackPanel Margin="0,0,0,4" Background="{DynamicResource ThemeDarkColor}" Orientation="Horizontal">
+ <!-- Right Joystick Up -->
+ <StackPanel
+ Margin="0,0,0,4"
+ Orientation="Horizontal">
<TextBlock
Margin="0,0,10,0"
Width="120"
HorizontalAlignment="Center"
VerticalAlignment="Center"
- Text="{locale:Locale ControllerSettingsRStickUp}"
+ Text="{locale:Locale ControllerSettingsStickUp}"
TextAlignment="Center" />
<ToggleButton>
<TextBlock
- Text="{Binding Configuration.RightStickUp, Mode=TwoWay, Converter={StaticResource Key}}"
+ Text="{ReflectionBinding Configuration.RightStickUp, Mode=TwoWay, Converter={StaticResource Key}}"
TextAlignment="Center" />
</ToggleButton>
</StackPanel>
-
- <!-- Right Joystick Down -->
- <StackPanel Margin="0,0,0,4" Background="{DynamicResource ThemeDarkColor}" Orientation="Horizontal">
+ <!-- Right Joystick Down -->
+ <StackPanel
+ Margin="0,0,0,4"
+ Orientation="Horizontal">
<TextBlock
Margin="0,0,10,0"
Width="120"
HorizontalAlignment="Center"
VerticalAlignment="Center"
- Text="{locale:Locale ControllerSettingsRStickDown}"
+ Text="{locale:Locale ControllerSettingsStickDown}"
TextAlignment="Center" />
<ToggleButton>
<TextBlock
- Text="{Binding Configuration.RightStickDown, Mode=TwoWay, Converter={StaticResource Key}}"
+ Text="{ReflectionBinding Configuration.RightStickDown, Mode=TwoWay, Converter={StaticResource Key}}"
TextAlignment="Center" />
</ToggleButton>
</StackPanel>
-
- <!-- Right Joystick Left -->
- <StackPanel Margin="0,0,0,4" Background="{DynamicResource ThemeDarkColor}" Orientation="Horizontal">
+ <!-- Right Joystick Left -->
+ <StackPanel
+ Margin="0,0,0,4"
+ Orientation="Horizontal">
<TextBlock
Margin="0,0,10,0"
Width="120"
HorizontalAlignment="Center"
VerticalAlignment="Center"
- Text="{locale:Locale ControllerSettingsRStickLeft}"
+ Text="{locale:Locale ControllerSettingsStickLeft}"
TextAlignment="Center" />
<ToggleButton>
<TextBlock
- Text="{Binding Configuration.RightStickLeft, Mode=TwoWay, Converter={StaticResource Key}}"
+ Text="{ReflectionBinding Configuration.RightStickLeft, Mode=TwoWay, Converter={StaticResource Key}}"
TextAlignment="Center" />
</ToggleButton>
</StackPanel>
-
- <!-- Right Joystick Right -->
- <StackPanel Margin="0,0,0,4" Background="{DynamicResource ThemeDarkColor}" Orientation="Horizontal">
+ <!-- Right Joystick Right -->
+ <StackPanel
+ Margin="0,0,0,4"
+ Orientation="Horizontal">
<TextBlock
Margin="0,0,10,0"
Width="120"
HorizontalAlignment="Center"
VerticalAlignment="Center"
- Text="{locale:Locale ControllerSettingsRStickRight}"
+ Text="{locale:Locale ControllerSettingsStickRight}"
TextAlignment="Center" />
<ToggleButton>
<TextBlock
- Text="{Binding Configuration.RightStickRight, Mode=TwoWay, Converter={StaticResource Key}}"
+ Text="{ReflectionBinding Configuration.RightStickRight, Mode=TwoWay, Converter={StaticResource Key}}"
TextAlignment="Center" />
</ToggleButton>
</StackPanel>
</StackPanel>
-
- <!-- Right Joystick Controller -->
- <StackPanel IsVisible="{Binding IsController}" Orientation="Vertical">
-
- <!-- Right Joystick Button -->
- <StackPanel Background="{DynamicResource ThemeDarkColor}" Orientation="Horizontal">
+ <!-- Right Joystick Controller -->
+ <StackPanel
+ IsVisible="{Binding IsController}"
+ Orientation="Vertical">
+ <!-- Right Joystick Button -->
+ <StackPanel
+ Orientation="Horizontal">
<TextBlock
Margin="0,0,10,0"
Width="120"
HorizontalAlignment="Center"
VerticalAlignment="Center"
- Text="{locale:Locale ControllerSettingsRStickButton}"
+ Text="{locale:Locale ControllerSettingsStickButton}"
TextAlignment="Center" />
<ToggleButton>
<TextBlock
- Text="{Binding Configuration.RightControllerStickButton, Mode=TwoWay, Converter={StaticResource Key}}"
+ Text="{ReflectionBinding Configuration.RightControllerStickButton, Mode=TwoWay, Converter={StaticResource Key}}"
TextAlignment="Center" />
</ToggleButton>
</StackPanel>
-
-
- <!-- Right Joystick Stick -->
- <StackPanel Margin="0,4,0,4" Background="{DynamicResource ThemeDarkColor}" Orientation="Horizontal">
+ <!-- Right Joystick Stick -->
+ <StackPanel
+ Margin="0,4,0,4"
+ Background="{DynamicResource ThemeDarkColor}"
+ Orientation="Horizontal">
<TextBlock
Margin="0,0,10,0"
Width="120"
HorizontalAlignment="Center"
VerticalAlignment="Center"
- Text="{locale:Locale ControllerSettingsRStickStick}"
+ Text="{locale:Locale ControllerSettingsStickStick}"
TextAlignment="Center" />
<ToggleButton Tag="stick">
<TextBlock
- Text="{Binding Configuration.RightJoystick, Mode=TwoWay, Converter={StaticResource Key}}"
+ Text="{ReflectionBinding Configuration.RightJoystick, Mode=TwoWay, Converter={StaticResource Key}}"
TextAlignment="Center" />
</ToggleButton>
</StackPanel>
<Separator Margin="0,8,0,8" Height="1" />
- <CheckBox IsChecked="{Binding Configuration.RightInvertStickX}">
- <TextBlock Text="{locale:Locale ControllerSettingsRStickInvertXAxis}" />
+ <CheckBox IsChecked="{ReflectionBinding Configuration.RightInvertStickX}">
+ <TextBlock Text="{locale:Locale ControllerSettingsStickInvertXAxis}" />
</CheckBox>
- <CheckBox IsChecked="{Binding Configuration.RightInvertStickY}">
- <TextBlock Text="{locale:Locale ControllerSettingsRStickInvertYAxis}" />
+ <CheckBox IsChecked="{ReflectionBinding Configuration.RightInvertStickY}">
+ <TextBlock Text="{locale:Locale ControllerSettingsStickInvertYAxis}" />
</CheckBox>
- <CheckBox IsChecked="{Binding Configuration.RightRotate90}">
+ <CheckBox IsChecked="{ReflectionBinding Configuration.RightRotate90}">
<TextBlock Text="{locale:Locale ControllerSettingsRotate90}" />
</CheckBox>
<Separator Margin="0,8,0,8" Height="1" />
<StackPanel Orientation="Vertical">
- <TextBlock
- HorizontalAlignment="Center"
- Text="{locale:Locale ControllerSettingsRStickDeadzone}" />
+ <TextBlock
+ HorizontalAlignment="Center"
+ Text="{locale:Locale ControllerSettingsStickDeadzone}" />
<StackPanel
HorizontalAlignment="Center"
VerticalAlignment="Center"
@@ -1084,14 +1089,14 @@
Padding="0"
VerticalAlignment="Center"
Minimum="0"
- Value="{Binding Configuration.DeadzoneRight, Mode=TwoWay}" />
+ Value="{ReflectionBinding Configuration.DeadzoneRight, Mode=TwoWay}" />
<TextBlock
VerticalAlignment="Center"
Width="25"
- Text="{Binding Configuration.DeadzoneRight, StringFormat=\{0:0.00\}}" />
+ Text="{ReflectionBinding Configuration.DeadzoneRight, StringFormat=\{0:0.00\}}" />
</StackPanel>
- <TextBlock
- HorizontalAlignment="Center"
+ <TextBlock
+ HorizontalAlignment="Center"
Text="{locale:Locale ControllerSettingsStickRange}" />
<StackPanel
HorizontalAlignment="Center"
@@ -1103,20 +1108,17 @@
TickFrequency="0.01"
IsSnapToTickEnabled="True"
Minimum="0"
- Value="{Binding Configuration.RangeRight, Mode=TwoWay}" />
+ Value="{ReflectionBinding Configuration.RangeRight, Mode=TwoWay}" />
<TextBlock
VerticalAlignment="Center"
Width="25"
- Text="{Binding Configuration.RangeRight, StringFormat=\{0:0.00\}}" />
+ Text="{ReflectionBinding Configuration.RangeRight, StringFormat=\{0:0.00\}}" />
</StackPanel>
</StackPanel>
</StackPanel>
</StackPanel>
</Border>
- </Grid>
-
+ </StackPanel>
</Grid>
-
</StackPanel>
-
</UserControl> \ No newline at end of file
diff --git a/src/Ryujinx.Ava/UI/Windows/ControllerSettingsWindow.axaml.cs b/src/Ryujinx.Ava/UI/Views/Input/ControllerInputView.axaml.cs
index 2864b6da..8fe7b941 100644
--- a/src/Ryujinx.Ava/UI/Windows/ControllerSettingsWindow.axaml.cs
+++ b/src/Ryujinx.Ava/UI/Views/Input/ControllerInputView.axaml.cs
@@ -4,7 +4,6 @@ using Avalonia.Input;
using Avalonia.Interactivity;
using Avalonia.LogicalTree;
using Ryujinx.Ava.Common.Locale;
-using Ryujinx.Ava.UI.Controls;
using Ryujinx.Ava.UI.Helpers;
using Ryujinx.Ava.UI.Models;
using Ryujinx.Ava.UI.ViewModels;
@@ -13,18 +12,18 @@ using Ryujinx.Input;
using Ryujinx.Input.Assigner;
using System;
-namespace Ryujinx.Ava.UI.Windows
+namespace Ryujinx.Ava.UI.Views.Input
{
- public partial class ControllerSettingsWindow : UserControl
+ public partial class ControllerInputView : UserControl
{
private bool _dialogOpen;
private ButtonKeyAssigner _currentAssigner;
- internal ControllerSettingsViewModel ViewModel { get; set; }
+ internal ControllerInputViewModel ViewModel { get; set; }
- public ControllerSettingsWindow()
+ public ControllerInputView()
{
- DataContext = ViewModel = new ControllerSettingsViewModel(this);
+ DataContext = ViewModel = new ControllerInputViewModel(this);
InitializeComponent();
diff --git a/src/Ryujinx.Ava/UI/Windows/MotionSettingsWindow.axaml b/src/Ryujinx.Ava/UI/Views/Input/MotionInputView.axaml
index 862998ac..b1832437 100644
--- a/src/Ryujinx.Ava/UI/Windows/MotionSettingsWindow.axaml
+++ b/src/Ryujinx.Ava/UI/Views/Input/MotionInputView.axaml
@@ -1,12 +1,15 @@
-<UserControl
+<UserControl
xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale"
+ xmlns:viewModels="clr-namespace:Ryujinx.Ava.UI.ViewModels"
mc:Ignorable="d"
- x:Class="Ryujinx.Ava.UI.Windows.MotionSettingsWindow"
+ x:Class="Ryujinx.Ava.UI.Views.Input.MotionInputView"
+ x:CompileBindings="True"
+ x:DataType="viewModels:MotionInputViewModel"
Focusable="True">
<Grid Margin="10">
<Grid.RowDefinitions>
@@ -14,7 +17,9 @@
<RowDefinition />
</Grid.RowDefinitions>
<StackPanel Orientation="Vertical">
- <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
+ <StackPanel
+ Orientation="Horizontal"
+ HorizontalAlignment="Center">
<TextBlock
Margin="0"
HorizontalAlignment="Center"
@@ -28,11 +33,14 @@
Maximum="100"
Minimum="0"
Value="{Binding Sensitivity, Mode=TwoWay}" />
- <TextBlock HorizontalAlignment="Center"
- Margin="5, 0"
- Text="{Binding Sensitivity, StringFormat=\{0:0\}%}" />
+ <TextBlock
+ HorizontalAlignment="Center"
+ Margin="5, 0"
+ Text="{Binding Sensitivity, StringFormat=\{0:0\}%}" />
</StackPanel>
- <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
+ <StackPanel
+ Orientation="Horizontal"
+ HorizontalAlignment="Center">
<TextBlock
Margin="0"
HorizontalAlignment="Center"
@@ -51,17 +59,25 @@
Margin="5, 0"
Text="{Binding GyroDeadzone, StringFormat=\{0:0.00\}}" />
</StackPanel>
- <Separator Height="1" Margin="0,5" />
- <CheckBox Margin="5" IsChecked="{Binding EnableCemuHookMotion}">
- <TextBlock Margin="0,3,0,0" VerticalAlignment="Center"
- Text="{locale:Locale ControllerSettingsMotionUseCemuhookCompatibleMotion}" />
+ <Separator
+ Height="1"
+ Margin="0,5" />
+ <CheckBox
+ Margin="5"
+ IsChecked="{Binding EnableCemuHookMotion}">
+ <TextBlock
+ Margin="0,3,0,0"
+ VerticalAlignment="Center"
+ Text="{locale:Locale ControllerSettingsMotionUseCemuhookCompatibleMotion}" />
</CheckBox>
</StackPanel>
- <Border Grid.Row="1"
- Padding="20,5"
- BorderBrush="{DynamicResource ThemeControlBorderColor}"
- BorderThickness="1"
- HorizontalAlignment="Stretch">
+ <Border
+ Grid.Row="1"
+ Padding="20,5"
+ BorderBrush="{DynamicResource ThemeControlBorderColor}"
+ BorderThickness="1"
+ CornerRadius="5"
+ HorizontalAlignment="Stretch">
<Grid VerticalAlignment="Top">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
@@ -109,30 +125,42 @@
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
- <TextBlock Margin="0,10,0,0" VerticalAlignment="Center"
- Text="{locale:Locale ControllerSettingsMotionControllerSlot}" />
- <ui:NumberBox Grid.Row="0" Grid.Column="1"
- Name="CemuHookSlotUpDown"
- SmallChange="1"
- LargeChange="1"
- Maximum="4"
- Minimum="0"
- Value="{Binding Slot}" />
- <TextBlock Margin="0,10,0,0" Grid.Row="1" Grid.Column="0" VerticalAlignment="Center"
- Text="{locale:Locale ControllerSettingsMotionRightJoyConSlot}" />
- <ui:NumberBox Grid.Row="1" Grid.Column="1"
- Name="CemuHookRightJoyConSlotUpDown"
- SmallChange="1"
- LargeChange="1"
- Maximum="4"
- Minimum="0"
- Value="{Binding AltSlot}" />
+ <TextBlock
+ Margin="0,10,0,0"
+ VerticalAlignment="Center"
+ Text="{locale:Locale ControllerSettingsMotionControllerSlot}" />
+ <ui:NumberBox
+ Grid.Row="0"
+ Grid.Column="1"
+ Name="CemuHookSlotUpDown"
+ SmallChange="1"
+ LargeChange="1"
+ Maximum="4"
+ Minimum="0"
+ Value="{Binding Slot}" />
+ <TextBlock
+ Margin="0,10,0,0"
+ Grid.Row="1"
+ Grid.Column="0"
+ VerticalAlignment="Center"
+ Text="{locale:Locale ControllerSettingsMotionRightJoyConSlot}" />
+ <ui:NumberBox
+ Grid.Row="1"
+ Grid.Column="1"
+ Name="CemuHookRightJoyConSlotUpDown"
+ SmallChange="1"
+ LargeChange="1"
+ Maximum="4"
+ Minimum="0"
+ Value="{Binding AltSlot}" />
</Grid>
</StackPanel>
- <CheckBox HorizontalAlignment="Center"
- IsChecked="{Binding MirrorInput, Mode=TwoWay}">
- <TextBlock HorizontalAlignment="Center"
- Text="{locale:Locale ControllerSettingsMotionMirrorInput}" />
+ <CheckBox
+ HorizontalAlignment="Center"
+ IsChecked="{Binding MirrorInput, Mode=TwoWay}">
+ <TextBlock
+ HorizontalAlignment="Center"
+ Text="{locale:Locale ControllerSettingsMotionMirrorInput}" />
</CheckBox>
</StackPanel>
</Grid>
diff --git a/src/Ryujinx.Ava/UI/Windows/MotionSettingsWindow.axaml.cs b/src/Ryujinx.Ava/UI/Views/Input/MotionInputView.axaml.cs
index c686e7c3..88bbcd93 100644
--- a/src/Ryujinx.Ava/UI/Windows/MotionSettingsWindow.axaml.cs
+++ b/src/Ryujinx.Ava/UI/Views/Input/MotionInputView.axaml.cs
@@ -6,44 +6,42 @@ using Ryujinx.Ava.UI.ViewModels;
using Ryujinx.Common.Configuration.Hid.Controller;
using System.Threading.Tasks;
-namespace Ryujinx.Ava.UI.Windows
+namespace Ryujinx.Ava.UI.Views.Input
{
- public partial class MotionSettingsWindow : UserControl
+ public partial class MotionInputView : UserControl
{
- private readonly InputConfiguration<GamepadInputId, StickInputId> _viewmodel;
+ private MotionInputViewModel _viewModel;
- public MotionSettingsWindow()
+ public MotionInputView()
{
InitializeComponent();
- DataContext = _viewmodel;
}
- public MotionSettingsWindow(ControllerSettingsViewModel viewmodel)
+ public MotionInputView(ControllerInputViewModel viewModel)
{
- var config = viewmodel.Configuration as InputConfiguration<GamepadInputId, StickInputId>;
+ var config = viewModel.Configuration as InputConfiguration<GamepadInputId, StickInputId>;
- _viewmodel = new InputConfiguration<GamepadInputId, StickInputId>()
+ _viewModel = new MotionInputViewModel
{
Slot = config.Slot,
AltSlot = config.AltSlot,
DsuServerHost = config.DsuServerHost,
DsuServerPort = config.DsuServerPort,
MirrorInput = config.MirrorInput,
- EnableMotion = config.EnableMotion,
Sensitivity = config.Sensitivity,
GyroDeadzone = config.GyroDeadzone,
EnableCemuHookMotion = config.EnableCemuHookMotion
};
InitializeComponent();
- DataContext = _viewmodel;
+ DataContext = _viewModel;
}
- public static async Task Show(ControllerSettingsViewModel viewmodel)
+ public static async Task Show(ControllerInputViewModel viewModel)
{
- MotionSettingsWindow content = new MotionSettingsWindow(viewmodel);
+ MotionInputView content = new(viewModel);
- ContentDialog contentDialog = new ContentDialog
+ ContentDialog contentDialog = new()
{
Title = LocaleManager.Instance[LocaleKeys.ControllerMotionTitle],
PrimaryButtonText = LocaleManager.Instance[LocaleKeys.ControllerSettingsSave],
@@ -53,16 +51,15 @@ namespace Ryujinx.Ava.UI.Windows
};
contentDialog.PrimaryButtonClick += (sender, args) =>
{
- var config = viewmodel.Configuration as InputConfiguration<GamepadInputId, StickInputId>;
- config.Slot = content._viewmodel.Slot;
- config.EnableMotion = content._viewmodel.EnableMotion;
- config.Sensitivity = content._viewmodel.Sensitivity;
- config.GyroDeadzone = content._viewmodel.GyroDeadzone;
- config.AltSlot = content._viewmodel.AltSlot;
- config.DsuServerHost = content._viewmodel.DsuServerHost;
- config.DsuServerPort = content._viewmodel.DsuServerPort;
- config.EnableCemuHookMotion = content._viewmodel.EnableCemuHookMotion;
- config.MirrorInput = content._viewmodel.MirrorInput;
+ var config = viewModel.Configuration as InputConfiguration<GamepadInputId, StickInputId>;
+ config.Slot = content._viewModel.Slot;
+ config.Sensitivity = content._viewModel.Sensitivity;
+ config.GyroDeadzone = content._viewModel.GyroDeadzone;
+ config.AltSlot = content._viewModel.AltSlot;
+ config.DsuServerHost = content._viewModel.DsuServerHost;
+ config.DsuServerPort = content._viewModel.DsuServerPort;
+ config.EnableCemuHookMotion = content._viewModel.EnableCemuHookMotion;
+ config.MirrorInput = content._viewModel.MirrorInput;
};
await contentDialog.ShowAsync();
diff --git a/src/Ryujinx.Ava/UI/Windows/RumbleSettingsWindow.axaml b/src/Ryujinx.Ava/UI/Views/Input/RumbleInputView.axaml
index e47cc5bd..3882ebe2 100644
--- a/src/Ryujinx.Ava/UI/Windows/RumbleSettingsWindow.axaml
+++ b/src/Ryujinx.Ava/UI/Views/Input/RumbleInputView.axaml
@@ -1,11 +1,14 @@
-<UserControl
+<UserControl
xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale"
+ xmlns:viewModels="clr-namespace:Ryujinx.Ava.UI.ViewModels"
mc:Ignorable="d"
- x:Class="Ryujinx.Ava.UI.Windows.RumbleSettingsWindow"
+ x:Class="Ryujinx.Ava.UI.Views.Input.RumbleInputView"
+ x:DataType="viewModels:RumbleInputViewModel"
+ x:CompileBindings="True"
Focusable="True">
<Grid Margin="10">
<Grid.RowDefinitions>
diff --git a/src/Ryujinx.Ava/UI/Windows/RumbleSettingsWindow.axaml.cs b/src/Ryujinx.Ava/UI/Views/Input/RumbleInputView.axaml.cs
index 178109d6..dfe05b08 100644
--- a/src/Ryujinx.Ava/UI/Windows/RumbleSettingsWindow.axaml.cs
+++ b/src/Ryujinx.Ava/UI/Views/Input/RumbleInputView.axaml.cs
@@ -6,36 +6,37 @@ using Ryujinx.Ava.UI.ViewModels;
using Ryujinx.Common.Configuration.Hid.Controller;
using System.Threading.Tasks;
-namespace Ryujinx.Ava.UI.Windows
+namespace Ryujinx.Ava.UI.Views.Input
{
- public partial class RumbleSettingsWindow : UserControl
+ public partial class RumbleInputView : UserControl
{
- private readonly InputConfiguration<GamepadInputId, StickInputId> _viewmodel;
+ private RumbleInputViewModel _viewModel;
- public RumbleSettingsWindow()
+ public RumbleInputView()
{
InitializeComponent();
- DataContext = _viewmodel;
}
- public RumbleSettingsWindow(ControllerSettingsViewModel viewmodel)
+ public RumbleInputView(ControllerInputViewModel viewModel)
{
- var config = viewmodel.Configuration as InputConfiguration<GamepadInputId, StickInputId>;
+ var config = viewModel.Configuration as InputConfiguration<GamepadInputId, StickInputId>;
- _viewmodel = new InputConfiguration<GamepadInputId, StickInputId>()
+ _viewModel = new RumbleInputViewModel
{
- StrongRumble = config.StrongRumble, WeakRumble = config.WeakRumble
+ StrongRumble = config.StrongRumble,
+ WeakRumble = config.WeakRumble
};
InitializeComponent();
- DataContext = _viewmodel;
+
+ DataContext = _viewModel;
}
- public static async Task Show(ControllerSettingsViewModel viewmodel)
+ public static async Task Show(ControllerInputViewModel viewModel)
{
- RumbleSettingsWindow content = new RumbleSettingsWindow(viewmodel);
+ RumbleInputView content = new(viewModel);
- ContentDialog contentDialog = new ContentDialog
+ ContentDialog contentDialog = new()
{
Title = LocaleManager.Instance[LocaleKeys.ControllerRumbleTitle],
PrimaryButtonText = LocaleManager.Instance[LocaleKeys.ControllerSettingsSave],
@@ -43,14 +44,14 @@ namespace Ryujinx.Ava.UI.Windows
CloseButtonText = LocaleManager.Instance[LocaleKeys.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;
+ var config = viewModel.Configuration as InputConfiguration<GamepadInputId, StickInputId>;
+ config.StrongRumble = content._viewModel.StrongRumble;
+ config.WeakRumble = content._viewModel.WeakRumble;
};
-
+
await contentDialog.ShowAsync();
}
}
diff --git a/src/Ryujinx.Ava/UI/Views/Settings/SettingsInputView.axaml b/src/Ryujinx.Ava/UI/Views/Settings/SettingsInputView.axaml
index 1c774bda..22ff38f5 100644
--- a/src/Ryujinx.Ava/UI/Views/Settings/SettingsInputView.axaml
+++ b/src/Ryujinx.Ava/UI/Views/Settings/SettingsInputView.axaml
@@ -1,11 +1,11 @@
-<UserControl
+<UserControl
x:Class="Ryujinx.Ava.UI.Views.Settings.SettingsInputView"
xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale"
- xmlns:window="clr-namespace:Ryujinx.Ava.UI.Windows"
+ xmlns:views="clr-namespace:Ryujinx.Ava.UI.Views.Input"
xmlns:viewModels="clr-namespace:Ryujinx.Ava.UI.ViewModels"
mc:Ignorable="d"
x:CompileBindings="True"
@@ -13,34 +13,56 @@
<Design.DataContext>
<viewModels:SettingsViewModel />
</Design.DataContext>
- <ScrollViewer
+ <ScrollViewer
Name="InputPage"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
HorizontalScrollBarVisibility="Disabled"
VerticalScrollBarVisibility="Auto">
<Border Classes="settings">
- <StackPanel Margin="4" Orientation="Vertical">
- <StackPanel Orientation="Horizontal">
- <CheckBox Margin="5,0"
- ToolTip.Tip="{locale:Locale DockModeToggleTooltip}"
- IsChecked="{Binding EnableDockedMode}">
- <TextBlock VerticalAlignment="Center"
- Text="{locale:Locale SettingsTabInputEnableDockedMode}" />
- </CheckBox>
- <CheckBox Margin="5,0"
- ToolTip.Tip="{locale:Locale DirectKeyboardTooltip}"
- IsChecked="{Binding EnableKeyboard}">
- <TextBlock Text="{locale:Locale SettingsTabInputDirectKeyboardAccess}" />
- </CheckBox>
- <CheckBox Margin="5,0"
- ToolTip.Tip="{locale:Locale DirectMouseTooltip}"
- IsChecked="{Binding EnableMouse}">
- <TextBlock Text="{locale:Locale SettingsTabInputDirectMouseAccess}" />
- </CheckBox>
- </StackPanel>
- <window:ControllerSettingsWindow Name="ControllerSettings" Margin="0" MinHeight="600" />
- </StackPanel>
+ <Panel
+ Margin="10">
+ <Grid>
+ <Grid.RowDefinitions>
+ <RowDefinition Height="Auto"/>
+ <RowDefinition Height="*" />
+ <RowDefinition Height="Auto" />
+ </Grid.RowDefinitions>
+ <views:ControllerInputView
+ Grid.Row="0"
+ Name="ControllerSettings" />
+ <StackPanel
+ Orientation="Vertical"
+ Grid.Row="2">
+ <Separator
+ Margin="0 10"
+ Height="1" />
+ <StackPanel
+ Orientation="Horizontal"
+ Spacing="10">
+ <CheckBox
+ ToolTip.Tip="{locale:Locale DockModeToggleTooltip}"
+ MinWidth="0"
+ IsChecked="{Binding EnableDockedMode}">
+ <TextBlock
+ Text="{locale:Locale SettingsTabInputEnableDockedMode}" />
+ </CheckBox>
+ <CheckBox
+ ToolTip.Tip="{locale:Locale DirectKeyboardTooltip}"
+ IsChecked="{Binding EnableKeyboard}">
+ <TextBlock
+ Text="{locale:Locale SettingsTabInputDirectKeyboardAccess}" />
+ </CheckBox>
+ <CheckBox
+ ToolTip.Tip="{locale:Locale DirectMouseTooltip}"
+ IsChecked="{Binding EnableMouse}">
+ <TextBlock
+ Text="{locale:Locale SettingsTabInputDirectMouseAccess}" />
+ </CheckBox>
+ </StackPanel>
+ </StackPanel>
+ </Grid>
+ </Panel>
</Border>
</ScrollViewer>
</UserControl> \ No newline at end of file