<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:viewModels="clr-namespace:Ryujinx.Ava.Ui.ViewModels"
             xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
             xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale"
             mc:Ignorable="d"
             x:Class="Ryujinx.Ava.Ui.Windows.MotionSettingsWindow">
    <Grid Margin="10">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition />
        </Grid.RowDefinitions>
        <StackPanel Orientation="Vertical">
            <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
                <TextBlock
                    Margin="0"
                    HorizontalAlignment="Center"
                    Text="{locale:Locale ControllerSettingsMotionGyroSensitivity}" />
                <Slider
                    Margin="0,-5,0,-5"
                    Width="150"
                    MaxWidth="150"
                    TickFrequency="0.01"
                    IsSnapToTickEnabled="True"
                    Maximum="100"
                    Minimum="0"
                    Value="{Binding Sensitivity, Mode=TwoWay}" />
                <TextBlock HorizontalAlignment="Center"
                            Margin="5, 0"
                            Text="{Binding Sensitivity, StringFormat=\{0:0\}%}" />
            </StackPanel>
            <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
                <TextBlock
                    Margin="0"
                    HorizontalAlignment="Center"
                    Text="{locale:Locale ControllerSettingsMotionGyroDeadzone}" />
                <Slider
                    Margin="0,-5,0,-5"
                    Width="150"
                    MaxWidth="150"
                    TickFrequency="0.01"
                    IsSnapToTickEnabled="True"
                    Maximum="100"
                    Minimum="0"
                    Value="{Binding GyroDeadzone, Mode=TwoWay}" />
                <TextBlock
                    VerticalAlignment="Center"
                    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}" />
            </CheckBox>
        </StackPanel>
        <Border Grid.Row="1"
                Padding="20,5"
                BorderBrush="{DynamicResource ThemeControlBorderColor}"
                BorderThickness="1"
                HorizontalAlignment="Stretch">
            <Grid VerticalAlignment="Top">
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto" />
                    <RowDefinition Height="*" />
                </Grid.RowDefinitions>
                <StackPanel
                    Grid.Row="1"
                    HorizontalAlignment="Center"
                    VerticalAlignment="Center"
                    Orientation="Vertical">
                    <StackPanel
                        HorizontalAlignment="Center"
                        VerticalAlignment="Center"
                        Orientation="Horizontal">
                        <TextBlock
                            Margin="5"
                            HorizontalAlignment="Center"
                            VerticalAlignment="Center"
                            Text="{locale:Locale ControllerSettingsMotionServerHost}" />
                        <TextBox
                            Height="30"
                            MinWidth="100"
                            MaxWidth="100"
                            HorizontalAlignment="Center"
                            VerticalAlignment="Center"
                            Text="{Binding DsuServerHost, Mode=TwoWay}" />
                        <TextBlock
                            Margin="5"
                            HorizontalAlignment="Center"
                            VerticalAlignment="Center"
                            Text=":" />
                        <TextBox
                            Height="30"
                            HorizontalAlignment="Center"
                            VerticalAlignment="Center"
                            Text="{Binding DsuServerPort, Mode=TwoWay}" />
                    </StackPanel>
                    <StackPanel Orientation="Vertical">
                        <Grid>
                            <Grid.RowDefinitions>
                                <RowDefinition />
                                <RowDefinition />
                            </Grid.RowDefinitions>
                            <Grid.ColumnDefinitions>
                                <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}" />
                        </Grid>
                    </StackPanel>
                    <CheckBox HorizontalAlignment="Center"
                              IsChecked="{Binding MirrorInput, Mode=TwoWay}">
                        <TextBlock HorizontalAlignment="Center"
                                   Text="{locale:Locale ControllerSettingsMotionMirrorInput}" />
                    </CheckBox>
                </StackPanel>
            </Grid>
        </Border>
    </Grid>
</UserControl>