mirror of
https://github.com/ryujinx-mirror/ryujinx.git
synced 2024-10-02 16:50:20 -07:00

* Add scrollable custom control based on TickFrequency * Use custom slider to update value when pointer wheel scrolled * Remove extra xaml file * Address formatting issues * Only scroll one element at a time * Add OnPointerWheelChanged event to VolumeStatus button Co-authored-by: Ahmad Tantowi <ahmadtantowi@outlook.com> --------- Co-authored-by: TSR Berry <20988865+TSRBerry@users.noreply.github.com>
1130 lines
59 KiB
XML
1130 lines
59 KiB
XML
<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"
|
|
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>
|