<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.Views.Input.MotionInputView"
    x:DataType="viewModels:MotionInputViewModel"
    Focusable="True">
    <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"
            CornerRadius="5"
            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>