diff options
Diffstat (limited to 'src/Ryujinx/UI/Views/Input/ControllerInputView.axaml')
-rw-r--r-- | src/Ryujinx/UI/Views/Input/ControllerInputView.axaml | 1130 |
1 files changed, 1130 insertions, 0 deletions
diff --git a/src/Ryujinx/UI/Views/Input/ControllerInputView.axaml b/src/Ryujinx/UI/Views/Input/ControllerInputView.axaml new file mode 100644 index 00000000..99f2b6b6 --- /dev/null +++ b/src/Ryujinx/UI/Views/Input/ControllerInputView.axaml @@ -0,0 +1,1130 @@ +<UserControl + 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:controls="clr-namespace:Ryujinx.Ava.UI.Controls" + 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:Class="Ryujinx.Ava.UI.Views.Input.ControllerInputView" + x:DataType="viewModels:ControllerInputViewModel" + mc:Ignorable="d" + Focusable="True"> + <Design.DataContext> + <viewModels:ControllerInputViewModel /> + </Design.DataContext> + <UserControl.Resources> + <helpers:KeyValueConverter x:Key="Key" /> + </UserControl.Resources> + <UserControl.Styles> + <Style Selector="ToggleButton"> + <Setter Property="Width" Value="90" /> + <Setter Property="Height" Value="27" /> + <Setter Property="HorizontalAlignment" Value="Stretch" /> + </Style> + </UserControl.Styles> + <StackPanel + HorizontalAlignment="Stretch" + VerticalAlignment="Stretch" + Orientation="Vertical"> + <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"> + <Grid.ColumnDefinitions> + <ColumnDefinition Width="Auto"/> + <ColumnDefinition Width="*" /> + </Grid.ColumnDefinitions> + <TextBlock + Margin="5,0,10,0" + Width="90" + HorizontalAlignment="Left" + VerticalAlignment="Center" + Text="{locale:Locale ControllerSettingsPlayer}" /> + <ComboBox + Grid.Column="1" + Name="PlayerIndexBox" + HorizontalAlignment="Stretch" + VerticalAlignment="Center" + SelectionChanged="PlayerIndexBox_OnSelectionChanged" + ItemsSource="{Binding PlayerIndexes}" + SelectedIndex="{Binding PlayerId}"> + <ComboBox.ItemTemplate> + <DataTemplate> + <TextBlock Text="{Binding Name}" /> + </DataTemplate> + </ComboBox.ItemTemplate> + </ComboBox> + </Grid> + <!-- Profile Selection --> + <Grid + Grid.Column="2" + Margin="2" + HorizontalAlignment="Stretch" + VerticalAlignment="Center"> + <Grid.ColumnDefinitions> + <ColumnDefinition Width="Auto"/> + <ColumnDefinition Width="*" /> + <ColumnDefinition Width="Auto"/> + <ColumnDefinition Width="Auto"/> + <ColumnDefinition Width="Auto"/> + </Grid.ColumnDefinitions> + <TextBlock + Margin="5,0,10,0" + Width="90" + HorizontalAlignment="Left" + VerticalAlignment="Center" + Text="{locale:Locale ControllerSettingsProfile}" /> + <ui:FAComboBox + Grid.Column="1" + IsEditable="True" + Name="ProfileBox" + HorizontalAlignment="Stretch" + VerticalAlignment="Center" + SelectedIndex="0" + ItemsSource="{Binding ProfilesList}" + Text="{Binding ProfileName, Mode=TwoWay}" /> + <Button + Grid.Column="2" + MinWidth="0" + Margin="5,0,0,0" + VerticalAlignment="Center" + ToolTip.Tip="{locale:Locale ControllerSettingsLoadProfileToolTip}" + Command="{ReflectionBinding LoadProfile}"> + <ui:SymbolIcon + Symbol="Upload" + FontSize="15" + Height="20" /> + </Button> + <Button + Grid.Column="3" + MinWidth="0" + Margin="5,0,0,0" + VerticalAlignment="Center" + ToolTip.Tip="{locale:Locale ControllerSettingsSaveProfileToolTip}" + Command="{ReflectionBinding SaveProfile}"> + <ui:SymbolIcon + Symbol="Save" + FontSize="15" + Height="20" /> + </Button> + <Button + Grid.Column="4" + MinWidth="0" + Margin="5,0,0,0" + VerticalAlignment="Center" + ToolTip.Tip="{locale:Locale ControllerSettingsRemoveProfileToolTip}" + Command="{ReflectionBinding RemoveProfile}"> + <ui:SymbolIcon + Symbol="Delete" + FontSize="15" + Height="20" /> + </Button> + </Grid> + </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="*"/> + <ColumnDefinition Width="Auto" /> + </Grid.ColumnDefinitions> + <TextBlock + Grid.Column="0" + Margin="5,0,10,0" + Width="90" + HorizontalAlignment="Left" + VerticalAlignment="Center" + Text="{locale:Locale ControllerSettingsInputDevice}" /> + <ComboBox + Grid.Column="1" + Name="DeviceBox" + HorizontalAlignment="Stretch" + VerticalAlignment="Center" + ItemsSource="{Binding DeviceList}" + SelectedIndex="{Binding Device}" /> + <Button + Grid.Column="2" + MinWidth="0" + Margin="5,0,0,0" + VerticalAlignment="Center" + Command="{ReflectionBinding LoadDevices}"> + <ui:SymbolIcon + Symbol="Refresh" + FontSize="15" + Height="20"/> + </Button> + </Grid> + <!-- Controller Type --> + <Grid + Grid.Column="2" + Margin="2" + HorizontalAlignment="Stretch" + VerticalAlignment="Center"> + <Grid.ColumnDefinitions> + <ColumnDefinition Width="Auto"/> + <ColumnDefinition Width="*" /> + </Grid.ColumnDefinitions> + <TextBlock + Margin="5,0,10,0" + Width="90" + HorizontalAlignment="Left" + VerticalAlignment="Center" + Text="{locale:Locale ControllerSettingsControllerType}" /> + <ComboBox + Grid.Column="1" + HorizontalAlignment="Stretch" + ItemsSource="{Binding Controllers}" + SelectedIndex="{Binding Controller}"> + <ComboBox.ItemTemplate> + <DataTemplate DataType="models:ControllerModel"> + <TextBlock Text="{Binding Name}" /> + </DataTemplate> + </ComboBox.ItemTemplate> + </ComboBox> + </Grid> + </Grid> + </StackPanel> + <!-- Button / JoyStick Settings --> + <Grid + Name="SettingButtons" + MinHeight="450" + FlowDirection="LeftToRight" + IsVisible="{Binding ShowSettings}"> + <Grid.ColumnDefinitions> + <ColumnDefinition Width="Auto" /> + <ColumnDefinition Width="*" /> + <ColumnDefinition Width="Auto" /> + </Grid.ColumnDefinitions> + <!-- Left Controls --> + <StackPanel + Orientation="Vertical" + Margin="0,0,5,0" + Grid.Column="0"> + <!-- Left Triggers --> + <Border + BorderBrush="{DynamicResource ThemeControlBorderColor}" + BorderThickness="1" + IsVisible="{Binding IsLeft}" + MinHeight="90" + CornerRadius="5"> + <Grid + Margin="10" + HorizontalAlignment="Stretch"> + <Grid.ColumnDefinitions> + <ColumnDefinition /> + <ColumnDefinition /> + </Grid.ColumnDefinitions> + <Grid.RowDefinitions> + <RowDefinition /> + <RowDefinition /> + </Grid.RowDefinitions> + <StackPanel + Grid.Column="0" + Grid.Row="0" + Orientation="Horizontal"> + <TextBlock + Width="20" + HorizontalAlignment="Center" + VerticalAlignment="Center" + Text="{locale:Locale ControllerSettingsTriggerZL}" + TextAlignment="Center" /> + <ToggleButton> + <TextBlock + Text="{ReflectionBinding Configuration.ButtonZl, Mode=TwoWay, Converter={StaticResource Key}}" + TextAlignment="Center" /> + </ToggleButton> + </StackPanel> + <StackPanel + Grid.Column="0" + Grid.Row="1" + Orientation="Horizontal"> + <TextBlock + Width="20" + HorizontalAlignment="Center" + VerticalAlignment="Center" + Text="{locale:Locale ControllerSettingsTriggerL}" + TextAlignment="Center" /> + <ToggleButton> + <TextBlock + Text="{ReflectionBinding Configuration.ButtonL, Mode=TwoWay, Converter={StaticResource Key}}" + TextAlignment="Center" /> + </ToggleButton> + </StackPanel> + <StackPanel + Grid.Column="1" + Grid.Row="1" + Orientation="Horizontal"> + <TextBlock + Width="20" + HorizontalAlignment="Center" + VerticalAlignment="Center" + Text="{locale:Locale ControllerSettingsButtonMinus}" + TextAlignment="Center" /> + <ToggleButton> + <TextBlock + Text="{ReflectionBinding Configuration.ButtonMinus, Mode=TwoWay, Converter={StaticResource Key}}" + TextAlignment="Center" /> + </ToggleButton> + </StackPanel> + </Grid> + </Border> + <!-- Left Joystick --> + <Border + BorderBrush="{DynamicResource ThemeControlBorderColor}" + BorderThickness="1" + IsVisible="{Binding IsLeft}" + 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" + Orientation="Horizontal"> + <TextBlock + Margin="0,0,10,0" + Width="120" + HorizontalAlignment="Center" + VerticalAlignment="Center" + Text="{locale:Locale ControllerSettingsStickButton}" + TextAlignment="Center" /> + <ToggleButton> + <TextBlock + Text="{ReflectionBinding Configuration.LeftKeyboardStickButton, Mode=TwoWay, Converter={StaticResource Key}}" + TextAlignment="Center" /> + </ToggleButton> + </StackPanel> + <!-- 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 ControllerSettingsStickUp}" + TextAlignment="Center" /> + <ToggleButton> + <TextBlock + Text="{ReflectionBinding Configuration.LeftStickUp, Mode=TwoWay, Converter={StaticResource Key}}" + TextAlignment="Center" /> + </ToggleButton> + </StackPanel> + <!-- 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 ControllerSettingsStickDown}" + TextAlignment="Center" /> + <ToggleButton> + <TextBlock + Text="{ReflectionBinding Configuration.LeftStickDown, Mode=TwoWay, Converter={StaticResource Key}}" + TextAlignment="Center" /> + </ToggleButton> + </StackPanel> + <!-- 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 ControllerSettingsStickLeft}" + TextAlignment="Center" /> + <ToggleButton> + <TextBlock + Text="{ReflectionBinding Configuration.LeftStickLeft, Mode=TwoWay, Converter={StaticResource Key}}" + TextAlignment="Center" /> + </ToggleButton> + </StackPanel> + <!-- 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 ControllerSettingsStickRight}" + TextAlignment="Center" /> + <ToggleButton> + <TextBlock + 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 + Orientation="Horizontal"> + <TextBlock + Margin="0,0,10,0" + Width="120" + HorizontalAlignment="Center" + VerticalAlignment="Center" + Text="{locale:Locale ControllerSettingsStickButton}" + TextAlignment="Center" /> + <ToggleButton> + <TextBlock + Text="{ReflectionBinding Configuration.LeftControllerStickButton, Mode=TwoWay, Converter={StaticResource Key}}" + TextAlignment="Center" /> + </ToggleButton> + </StackPanel> + <!-- 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 ControllerSettingsStickStick}" + TextAlignment="Center" /> + <ToggleButton Tag="stick"> + <TextBlock + Text="{ReflectionBinding Configuration.LeftJoystick, Mode=TwoWay, Converter={StaticResource Key}}" + TextAlignment="Center" /> + </ToggleButton> + </StackPanel> + <Separator + Margin="0,8,0,8" + Height="1" /> + <CheckBox IsChecked="{ReflectionBinding Configuration.LeftInvertStickX}"> + <TextBlock Text="{locale:Locale ControllerSettingsStickInvertXAxis}" /> + </CheckBox> + <CheckBox IsChecked="{ReflectionBinding Configuration.LeftInvertStickY}"> + <TextBlock Text="{locale:Locale ControllerSettingsStickInvertYAxis}" /> + </CheckBox> + <CheckBox IsChecked="{ReflectionBinding Configuration.LeftRotate90}"> + <TextBlock Text="{locale:Locale ControllerSettingsRotate90}" /> + </CheckBox> + <Separator + Margin="0,8,0,8" + Height="1" /> + <StackPanel Orientation="Vertical"> + <TextBlock + HorizontalAlignment="Center" + Text="{locale:Locale ControllerSettingsStickDeadzone}" /> + <StackPanel + HorizontalAlignment="Center" + VerticalAlignment="Center" + Orientation="Horizontal"> + <controls:SliderScroll + Width="130" + Maximum="1" + TickFrequency="0.01" + IsSnapToTickEnabled="True" + SmallChange="0.01" + Minimum="0" + Value="{ReflectionBinding Configuration.DeadzoneLeft, Mode=TwoWay}" /> + <TextBlock + VerticalAlignment="Center" + Width="25" + Text="{ReflectionBinding Configuration.DeadzoneLeft, StringFormat=\{0:0.00\}}" /> + </StackPanel> + <TextBlock + HorizontalAlignment="Center" + Text="{locale:Locale ControllerSettingsStickRange}" /> + <StackPanel + HorizontalAlignment="Center" + VerticalAlignment="Center" + Orientation="Horizontal"> + <controls:SliderScroll + Width="130" + Maximum="2" + TickFrequency="0.01" + IsSnapToTickEnabled="True" + SmallChange="0.01" + Minimum="0" + Value="{ReflectionBinding Configuration.RangeLeft, Mode=TwoWay}" /> + <TextBlock + VerticalAlignment="Center" + Width="25" + Text="{ReflectionBinding Configuration.RangeLeft, StringFormat=\{0:0.00\}}" /> + </StackPanel> + </StackPanel> + </StackPanel> + </StackPanel> + </Border> + <!-- Left DPad --> + <Border + BorderBrush="{DynamicResource ThemeControlBorderColor}" + BorderThickness="1" + VerticalAlignment="Top" + IsVisible="{Binding IsLeft}" + 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" + Orientation="Horizontal"> + <TextBlock + Margin="0,0,10,0" + Width="120" + HorizontalAlignment="Center" + VerticalAlignment="Center" + Text="{locale:Locale ControllerSettingsDPadUp}" + TextAlignment="Center" /> + <ToggleButton> + <TextBlock + Text="{ReflectionBinding Configuration.DpadUp, Mode=TwoWay, Converter={StaticResource Key}}" + TextAlignment="Center" /> + </ToggleButton> + </StackPanel> + <!-- Left DPad Down --> + <StackPanel + Margin="0,0,0,4" + Orientation="Horizontal"> + <TextBlock + Margin="0,0,10,0" + Width="120" + HorizontalAlignment="Center" + VerticalAlignment="Center" + Text="{locale:Locale ControllerSettingsDPadDown}" + TextAlignment="Center" /> + <ToggleButton> + <TextBlock + Text="{ReflectionBinding Configuration.DpadDown, Mode=TwoWay, Converter={StaticResource Key}}" + TextAlignment="Center" /> + </ToggleButton> + </StackPanel> + <!-- Left DPad Left --> + <StackPanel + Margin="0,0,0,4" + Orientation="Horizontal"> + <TextBlock + Margin="0,0,10,0" + Width="120" + HorizontalAlignment="Center" + VerticalAlignment="Center" + Text="{locale:Locale ControllerSettingsDPadLeft}" + TextAlignment="Center" /> + <ToggleButton> + <TextBlock + Text="{ReflectionBinding Configuration.DpadLeft, Mode=TwoWay, Converter={StaticResource Key}}" + TextAlignment="Center" /> + </ToggleButton> + </StackPanel> + <!-- Left DPad Right --> + <StackPanel + Margin="0,0,0,4" + Orientation="Horizontal"> + <TextBlock + Margin="0,0,10,0" + Width="120" + HorizontalAlignment="Center" + VerticalAlignment="Center" + Text="{locale:Locale ControllerSettingsDPadRight}" + TextAlignment="Center" /> + <ToggleButton> + <TextBlock + Text="{ReflectionBinding Configuration.DpadRight, Mode=TwoWay, Converter={StaticResource Key}}" + TextAlignment="Center" /> + </ToggleButton> + </StackPanel> + </StackPanel> + </StackPanel> + </Border> + </StackPanel> + <!-- Triggers & Side Buttons --> + <StackPanel + Grid.Column="1" + HorizontalAlignment="Stretch" + VerticalAlignment="Stretch"> + <Border + BorderBrush="{DynamicResource ThemeControlBorderColor}" + BorderThickness="1" + CornerRadius="5" + MinHeight="90"> + <StackPanel + Margin="8" + Orientation="Vertical"> + <TextBlock + HorizontalAlignment="Center" + Text="{locale:Locale ControllerSettingsTriggerThreshold}" /> + <StackPanel + HorizontalAlignment="Center" + Orientation="Horizontal"> + <controls:SliderScroll + Width="130" + Maximum="1" + TickFrequency="0.01" + IsSnapToTickEnabled="True" + SmallChange="0.01" + Minimum="0" + Value="{ReflectionBinding Configuration.TriggerThreshold, Mode=TwoWay}" /> + <TextBlock + Width="25" + Text="{ReflectionBinding Configuration.TriggerThreshold, StringFormat=\{0:0.00\}}" /> + </StackPanel> + <StackPanel + Margin="0,4,0,0" + HorizontalAlignment="Center" + VerticalAlignment="Center" + IsVisible="{Binding !IsRight}" + Orientation="Horizontal"> + <TextBlock + Width="20" + HorizontalAlignment="Center" + VerticalAlignment="Center" + Text="{locale:Locale ControllerSettingsLeftSR}" + TextAlignment="Center" /> + <ToggleButton> + <TextBlock + Text="{ReflectionBinding Configuration.LeftButtonSr, Mode=TwoWay, Converter={StaticResource Key}}" + TextAlignment="Center" /> + </ToggleButton> + </StackPanel> + <StackPanel + Margin="0,4,0,0" + HorizontalAlignment="Center" + VerticalAlignment="Center" + IsVisible="{Binding !IsRight}" + Orientation="Horizontal"> + <TextBlock + Width="20" + HorizontalAlignment="Center" + VerticalAlignment="Center" + Text="{locale:Locale ControllerSettingsLeftSL}" + TextAlignment="Center" /> + <ToggleButton> + <TextBlock + Text="{ReflectionBinding Configuration.LeftButtonSl, Mode=TwoWay, Converter={StaticResource Key}}" + TextAlignment="Center" /> + </ToggleButton> + </StackPanel> + <StackPanel + Margin="0,4,0,0" + HorizontalAlignment="Center" + VerticalAlignment="Center" + IsVisible="{Binding !IsLeft}" + Orientation="Horizontal"> + <TextBlock + Width="20" + HorizontalAlignment="Center" + VerticalAlignment="Center" + Text="{locale:Locale ControllerSettingsRightSR}" + TextAlignment="Center" /> + <ToggleButton> + <TextBlock + Text="{ReflectionBinding Configuration.RightButtonSr, Mode=TwoWay, Converter={StaticResource Key}}" + TextAlignment="Center" /> + </ToggleButton> + </StackPanel> + <StackPanel + Margin="0,4,0,0" + HorizontalAlignment="Center" + VerticalAlignment="Center" + IsVisible="{Binding !IsLeft}" + Orientation="Horizontal"> + <TextBlock + Width="20" + HorizontalAlignment="Center" + VerticalAlignment="Center" + Text="{locale:Locale ControllerSettingsRightSL}" + TextAlignment="Center" /> + <ToggleButton> + <TextBlock + Text="{ReflectionBinding Configuration.RightButtonSl, Mode=TwoWay, Converter={StaticResource Key}}" + TextAlignment="Center" /> + </ToggleButton> + </StackPanel> + </StackPanel> + </Border> + <!-- Controller Picture --> + <Image + Margin="0,10,0,0" + MaxHeight="300" + HorizontalAlignment="Stretch" + VerticalAlignment="Stretch" + Source="{Binding Image}" /> + <!-- 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}"> + <Grid> + <Grid.ColumnDefinitions> + <ColumnDefinition Width="*" /> + <ColumnDefinition Width="Auto" /> + </Grid.ColumnDefinitions> + <CheckBox + Margin="10" + MinWidth="0" + Grid.Column="0" + IsChecked="{ReflectionBinding Configuration.EnableMotion, Mode=TwoWay}"> + <TextBlock Text="{locale:Locale ControllerSettingsMotion}" /> + </CheckBox> + <Button + Margin="10" + Grid.Column="1" + Command="{Binding ShowMotionConfig}"> + <TextBlock Text="{locale:Locale ControllerSettingsConfigureGeneral}" /> + </Button> + </Grid> + </Border> + <Border + BorderBrush="{DynamicResource ThemeControlBorderColor}" + BorderThickness="1" + CornerRadius="5" + HorizontalAlignment="Stretch" + IsVisible="{Binding IsController}" + Margin="0,-1,0,0"> + <Grid> + <Grid.ColumnDefinitions> + <ColumnDefinition Width="*" /> + <ColumnDefinition Width="Auto" /> + </Grid.ColumnDefinitions> + <CheckBox + Margin="10" + MinWidth="0" + Grid.Column="0" + IsChecked="{ReflectionBinding Configuration.EnableRumble, Mode=TwoWay}"> + <TextBlock Text="{locale:Locale ControllerSettingsRumble}" /> + </CheckBox> + <Button + Margin="10" + Grid.Column="1" + Command="{Binding ShowRumbleConfig}"> + <TextBlock Text="{locale:Locale ControllerSettingsConfigureGeneral}" /> + </Button> + </Grid> + </Border> + </StackPanel> + </StackPanel> + <!-- Right Controls --> + <StackPanel + Orientation="Vertical" + Margin="5,0,0,0" + Grid.Column="2"> + <!-- Right Triggers --> + <Border + BorderBrush="{DynamicResource ThemeControlBorderColor}" + BorderThickness="1" + IsVisible="{Binding IsRight}" + MinHeight="90" + CornerRadius="5"> + <Grid + Margin="10" + HorizontalAlignment="Stretch"> + <Grid.ColumnDefinitions> + <ColumnDefinition /> + <ColumnDefinition /> + </Grid.ColumnDefinitions> + <Grid.RowDefinitions> + <RowDefinition /> + <RowDefinition /> + </Grid.RowDefinitions> + <StackPanel + Grid.Column="1" + Grid.Row="0" + Orientation="Horizontal"> + <TextBlock + Width="20" + HorizontalAlignment="Center" + VerticalAlignment="Center" + Text="{locale:Locale ControllerSettingsTriggerZR}" + TextAlignment="Center" /> + <ToggleButton> + <TextBlock + Text="{ReflectionBinding Configuration.ButtonZr, Mode=TwoWay, Converter={StaticResource Key}}" + TextAlignment="Center" /> + </ToggleButton> + </StackPanel> + <StackPanel + Grid.Column="1" + Grid.Row="1" + HorizontalAlignment="Center" + VerticalAlignment="Center" + Orientation="Horizontal"> + <TextBlock + Width="20" + HorizontalAlignment="Center" + VerticalAlignment="Center" + Text="{locale:Locale ControllerSettingsTriggerR}" + TextAlignment="Center" /> + <ToggleButton> + <TextBlock + Text="{ReflectionBinding Configuration.ButtonR, Mode=TwoWay, Converter={StaticResource Key}}" + TextAlignment="Center" /> + </ToggleButton> + </StackPanel> + <StackPanel + Grid.Column="0" + Grid.Row="1" + HorizontalAlignment="Right" + VerticalAlignment="Center" + Orientation="Horizontal"> + <TextBlock + Width="20" + HorizontalAlignment="Center" + VerticalAlignment="Center" + Text="{locale:Locale ControllerSettingsButtonPlus}" + TextAlignment="Center" /> + <ToggleButton> + <TextBlock + Text="{ReflectionBinding Configuration.ButtonPlus, Mode=TwoWay, Converter={StaticResource Key}}" + TextAlignment="Center" /> + </ToggleButton> + </StackPanel> + </Grid> + </Border> + <!-- Right Joystick --> + <Border + BorderBrush="{DynamicResource ThemeControlBorderColor}" + BorderThickness="1" + IsVisible="{Binding IsRight}" + 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 + Margin="0,0,0,4" + Orientation="Horizontal"> + <TextBlock + Width="120" + Margin="0,0,10,0" + HorizontalAlignment="Center" + VerticalAlignment="Center" + Text="{locale:Locale ControllerSettingsButtonA}" + TextAlignment="Center" /> + <ToggleButton> + <TextBlock + Text="{ReflectionBinding Configuration.ButtonA, Mode=TwoWay, Converter={StaticResource Key}}" + TextAlignment="Center" /> + </ToggleButton> + </StackPanel> + <!-- Right Buttons B --> + <StackPanel + Margin="0,0,0,4" + Orientation="Horizontal"> + <TextBlock + Width="120" + Margin="0,0,10,0" + HorizontalAlignment="Center" + VerticalAlignment="Center" + Text="{locale:Locale ControllerSettingsButtonB}" + TextAlignment="Center" /> + <ToggleButton> + <TextBlock + Text="{ReflectionBinding Configuration.ButtonB, Mode=TwoWay, Converter={StaticResource Key}}" + TextAlignment="Center" /> + </ToggleButton> + </StackPanel> + <!-- Right Buttons X --> + <StackPanel + Margin="0,0,0,4" + Orientation="Horizontal"> + <TextBlock + Width="120" + Margin="0,0,10,0" + HorizontalAlignment="Center" + VerticalAlignment="Center" + Text="{locale:Locale ControllerSettingsButtonX}" + TextAlignment="Center" /> + <ToggleButton> + <TextBlock + Text="{ReflectionBinding Configuration.ButtonX, Mode=TwoWay, Converter={StaticResource Key}}" + TextAlignment="Center" /> + </ToggleButton> + </StackPanel> + <!-- Right Buttons Y --> + <StackPanel + Margin="0,0,0,4" + Orientation="Horizontal"> + <TextBlock + Width="120" + Margin="0,0,10,0" + HorizontalAlignment="Center" + VerticalAlignment="Center" + Text="{locale:Locale ControllerSettingsButtonY}" + TextAlignment="Center" /> + <ToggleButton> + <TextBlock + Text="{ReflectionBinding Configuration.ButtonY, Mode=TwoWay, Converter={StaticResource Key}}" + TextAlignment="Center" /> + </ToggleButton> + </StackPanel> + </StackPanel> + </StackPanel> + </Border> + <!-- Right DPad --> + <Border + Padding="10" + BorderBrush="{DynamicResource ThemeControlBorderColor}" + BorderThickness="1" + CornerRadius="5" + IsVisible="{Binding IsRight}" + Margin="0,5,0,0"> + <StackPanel Orientation="Vertical"> + <TextBlock + 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" + Orientation="Horizontal"> + <TextBlock + Margin="0,0,10,0" + Width="120" + HorizontalAlignment="Center" + VerticalAlignment="Center" + Text="{locale:Locale ControllerSettingsStickButton}" + TextAlignment="Center" /> + <ToggleButton> + <TextBlock + Text="{ReflectionBinding Configuration.RightKeyboardStickButton, Mode=TwoWay, Converter={StaticResource Key}}" + TextAlignment="Center" /> + </ToggleButton> + </StackPanel> + <!-- 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 ControllerSettingsStickUp}" + TextAlignment="Center" /> + <ToggleButton> + <TextBlock + Text="{ReflectionBinding Configuration.RightStickUp, Mode=TwoWay, Converter={StaticResource Key}}" + TextAlignment="Center" /> + </ToggleButton> + </StackPanel> + <!-- 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 ControllerSettingsStickDown}" + TextAlignment="Center" /> + <ToggleButton> + <TextBlock + Text="{ReflectionBinding Configuration.RightStickDown, Mode=TwoWay, Converter={StaticResource Key}}" + TextAlignment="Center" /> + </ToggleButton> + </StackPanel> + <!-- 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 ControllerSettingsStickLeft}" + TextAlignment="Center" /> + <ToggleButton> + <TextBlock + Text="{ReflectionBinding Configuration.RightStickLeft, Mode=TwoWay, Converter={StaticResource Key}}" + TextAlignment="Center" /> + </ToggleButton> + </StackPanel> + <!-- 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 ControllerSettingsStickRight}" + TextAlignment="Center" /> + <ToggleButton> + <TextBlock + 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 + Orientation="Horizontal"> + <TextBlock + Margin="0,0,10,0" + Width="120" + HorizontalAlignment="Center" + VerticalAlignment="Center" + Text="{locale:Locale ControllerSettingsStickButton}" + TextAlignment="Center" /> + <ToggleButton> + <TextBlock + 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"> + <TextBlock + Margin="0,0,10,0" + Width="120" + HorizontalAlignment="Center" + VerticalAlignment="Center" + Text="{locale:Locale ControllerSettingsStickStick}" + TextAlignment="Center" /> + <ToggleButton Tag="stick"> + <TextBlock + Text="{ReflectionBinding Configuration.RightJoystick, Mode=TwoWay, Converter={StaticResource Key}}" + TextAlignment="Center" /> + </ToggleButton> + </StackPanel> + <Separator Margin="0,8,0,8" Height="1" /> + <CheckBox IsChecked="{ReflectionBinding Configuration.RightInvertStickX}"> + <TextBlock Text="{locale:Locale ControllerSettingsStickInvertXAxis}" /> + </CheckBox> + <CheckBox IsChecked="{ReflectionBinding Configuration.RightInvertStickY}"> + <TextBlock Text="{locale:Locale ControllerSettingsStickInvertYAxis}" /> + </CheckBox> + <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 ControllerSettingsStickDeadzone}" /> + <StackPanel + HorizontalAlignment="Center" + VerticalAlignment="Center" + Orientation="Horizontal"> + <controls:SliderScroll + Width="130" + Maximum="1" + TickFrequency="0.01" + IsSnapToTickEnabled="True" + SmallChange="0.01" + Padding="0" + VerticalAlignment="Center" + Minimum="0" + Value="{ReflectionBinding Configuration.DeadzoneRight, Mode=TwoWay}" /> + <TextBlock + VerticalAlignment="Center" + Width="25" + Text="{ReflectionBinding Configuration.DeadzoneRight, StringFormat=\{0:0.00\}}" /> + </StackPanel> + <TextBlock + HorizontalAlignment="Center" + Text="{locale:Locale ControllerSettingsStickRange}" /> + <StackPanel + HorizontalAlignment="Center" + VerticalAlignment="Center" + Orientation="Horizontal"> + <controls:SliderScroll + Width="130" + Maximum="2" + TickFrequency="0.01" + IsSnapToTickEnabled="True" + SmallChange="0.01" + Minimum="0" + Value="{ReflectionBinding Configuration.RangeRight, Mode=TwoWay}" /> + <TextBlock + VerticalAlignment="Center" + Width="25" + Text="{ReflectionBinding Configuration.RangeRight, StringFormat=\{0:0.00\}}" /> + </StackPanel> + </StackPanel> + </StackPanel> + </StackPanel> + </Border> + </StackPanel> + </Grid> + </StackPanel> +</UserControl> |