<UserControl
    x:Class="Ryujinx.Ava.UI.Views.Settings.SettingsUiView"
    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:ext="clr-namespace:Ryujinx.Ava.Common.Markup"
    xmlns:viewModels="clr-namespace:Ryujinx.Ava.UI.ViewModels"
    mc:Ignorable="d"
    x:DataType="viewModels:SettingsViewModel">
    <Design.DataContext>
        <viewModels:SettingsViewModel />
    </Design.DataContext>
    <ScrollViewer
        Name="UiPage"
        HorizontalAlignment="Stretch"
        VerticalAlignment="Stretch"
        HorizontalScrollBarVisibility="Disabled"
        VerticalScrollBarVisibility="Auto">
        <Border Classes="settings">
            <Grid ColumnDefinitions="Auto,Auto,*" HorizontalAlignment="Stretch">
                <StackPanel
                    Grid.Column="0"
                    Margin="10"
                    HorizontalAlignment="Stretch"
                    Orientation="Vertical"
                    Spacing="10">
                    <TextBlock Classes="h1" Text="{ext:Locale SettingsTabGeneralGeneral}" />
                    <StackPanel Margin="10,0,0,0" Orientation="Vertical">
                        <CheckBox
                            IsEnabled="{Binding !IsGameTitleNotNull}"
                            Opacity="{Binding PanelOpacity}"
                            IsChecked="{Binding ShowConfirmExit}">
                            <StackPanel Orientation="Horizontal">
                                <TextBlock Text="{ext:Locale SettingsTabGeneralShowConfirmExitDialog}" />
                                <TextBlock Classes="globalConfigMarker" IsVisible="{Binding IsGameTitleNotNull}" />
                            </StackPanel>
                        </CheckBox>
                        <CheckBox
                            IsEnabled="{Binding !IsGameTitleNotNull}"
                            Opacity="{Binding PanelOpacity}"
                            IsChecked="{Binding RememberWindowState}">
                            <StackPanel Orientation="Horizontal">
                                <TextBlock Text="{ext:Locale SettingsTabGeneralRememberWindowState}" />
                                <TextBlock Classes="globalConfigMarker" IsVisible="{Binding IsGameTitleNotNull}" />
                            </StackPanel>
                        </CheckBox>
                        <CheckBox
                            IsEnabled="{Binding !IsGameTitleNotNull}"
                            Opacity="{Binding PanelOpacity}"
                            IsChecked="{Binding ShowOldUI}"
                            ToolTip.Tip="{ext:Locale SettingsTabGeneralShowOldUIToolTip}">
                            <StackPanel Orientation="Horizontal">
                                <TextBlock Text="{ext:Locale SettingsTabGeneralShowOldUI}" />
                                <TextBlock Classes="globalConfigMarker" IsVisible="{Binding IsGameTitleNotNull}" />
                            </StackPanel>
                        </CheckBox>
                        <CheckBox IsChecked="{Binding EnableDiscordIntegration}">
                            <StackPanel Orientation="Horizontal">
                                <TextBlock VerticalAlignment="Center"
                                           ToolTip.Tip="{ext:Locale ToggleDiscordTooltip}"
                                           Text="{ext:Locale SettingsTabGeneralEnableDiscordRichPresence}" />
                            </StackPanel>
                        </CheckBox>
                        <StackPanel
                            Margin="0, 15, 0, 0"
                            Orientation="Horizontal">
                            <TextBlock VerticalAlignment="Center"
                                       Text="{ext:Locale SettingsTabGeneralFocusLossType}"
                                       Width="150" />
                            <ComboBox SelectedIndex="{Binding FocusLostActionType}"
                                      HorizontalContentAlignment="Left"
                                      MinWidth="100">
                                <ComboBoxItem>
                                    <TextBlock Text="{ext:Locale SettingsTabGeneralFocusLossTypeDoNothing}" />
                                </ComboBoxItem>
                                <ComboBoxItem>
                                    <TextBlock Text="{ext:Locale SettingsTabGeneralFocusLossTypeBlockInput}" />
                                </ComboBoxItem>
                                <ComboBoxItem>
                                    <TextBlock Text="{ext:Locale SettingsTabGeneralFocusLossTypeMuteAudio}" />
                                </ComboBoxItem>
                                <ComboBoxItem>
                                    <TextBlock
                                        Text="{ext:Locale SettingsTabGeneralFocusLossTypeBlockInputAndMuteAudio}" />
                                </ComboBoxItem>
                                <ComboBoxItem>
                                    <TextBlock Text="{ext:Locale SettingsTabGeneralFocusLossTypePauseEmulation}" />
                                </ComboBoxItem>
                            </ComboBox>
                        </StackPanel>
                        <StackPanel
                            IsEnabled="{Binding !IsGameTitleNotNull}"
                            Opacity="{Binding PanelOpacity}"
                            Margin="0, 15, 0, 0"
                            Orientation="Horizontal">
                            <TextBlock VerticalAlignment="Center"
                                       Text="{ext:Locale SettingsTabGeneralCheckUpdatesOnLaunch}"
                                       Width="150" />
                            <ComboBox SelectedIndex="{Binding UpdateCheckerType}"
                                      HorizontalContentAlignment="Left"
                                      MinWidth="100">
                                <ComboBoxItem>
                                    <TextBlock Text="{ext:Locale CommonOff}" />
                                </ComboBoxItem>
                                <ComboBoxItem>
                                    <TextBlock
                                        Text="{ext:Locale SettingsTabGeneralCheckUpdatesOnLaunchPromptAtStartup}" />
                                </ComboBoxItem>
                                <ComboBoxItem>
                                    <TextBlock Text="{ext:Locale SettingsTabGeneralCheckUpdatesOnLaunchBackground}" />
                                </ComboBoxItem>
                            </ComboBox>
                            <TextBlock Classes="globalConfigMarker" IsVisible="{Binding IsGameTitleNotNull}" />
                        </StackPanel>
                        <StackPanel
                            Margin="0, 15, 0, 0"
                            Orientation="Horizontal">
                            <TextBlock VerticalAlignment="Center"
                                       Text="{ext:Locale SettingsTabGeneralHideCursor}"
                                       Width="150" />
                            <ComboBox SelectedIndex="{Binding HideCursor}"
                                      HorizontalContentAlignment="Left"
                                      MinWidth="100">
                                <ComboBoxItem>
                                    <TextBlock Text="{ext:Locale Never}" />
                                </ComboBoxItem>
                                <ComboBoxItem>
                                    <TextBlock Text="{ext:Locale SettingsTabGeneralHideCursorOnIdle}" />
                                </ComboBoxItem>
                                <ComboBoxItem>
                                    <TextBlock Text="{ext:Locale SettingsTabGeneralHideCursorAlways}" />
                                </ComboBoxItem>
                            </ComboBox>
                        </StackPanel>
                        <StackPanel
                            IsEnabled="{Binding !IsGameTitleNotNull}"
                            Opacity="{Binding PanelOpacity}"
                            Margin="0, 15, 0, 10"
                            Orientation="Horizontal">
                            <TextBlock
                                VerticalAlignment="Center"
                                Text="{ext:Locale SettingsTabGeneralTheme}"
                                Width="150" />
                            <ComboBox SelectedIndex="{Binding BaseStyleIndex}"
                                      HorizontalContentAlignment="Left"
                                      MinWidth="100">
                                <ComboBoxItem>
                                    <TextBlock Text="{ext:Locale CommonAuto}" />
                                </ComboBoxItem>
                                <ComboBoxItem>
                                    <TextBlock Text="{ext:Locale SettingsTabGeneralThemeLight}" />
                                </ComboBoxItem>
                                <ComboBoxItem>
                                    <TextBlock Text="{ext:Locale SettingsTabGeneralThemeDark}" />
                                </ComboBoxItem>
                            </ComboBox>
                            <TextBlock Classes="globalConfigMarker" IsVisible="{Binding IsGameTitleNotNull}" />
                        </StackPanel>
                    </StackPanel>
                </StackPanel>
                <Border Grid.Column="1"
                        HorizontalAlignment="Center"
                        VerticalAlignment="Top"
                        Margin="10, 10, 10, 0"
                        Height="405"
                        BorderBrush="Gray"
                        Background="Gray"
                        Width="1" />
                <StackPanel
                    Margin="10"
                    Spacing="10"
                    Grid.Column="2"
                    Orientation="Vertical" HorizontalAlignment="Stretch">
                    <StackPanel Orientation="Horizontal">
                        <TextBlock Classes="h1" Text="{ext:Locale SettingsTabGeneralGameDirectories}" />
                        <TextBlock Classes="globalConfigMarker" IsVisible="{Binding IsGameTitleNotNull}" />
                    </StackPanel>
                    <StackPanel
                        IsEnabled="{Binding !IsGameTitleNotNull}"
                        Opacity="{Binding PanelOpacity}"
                        Margin="10,0,0,0"
                        HorizontalAlignment="Stretch"
                        Orientation="Vertical"
                        Spacing="10">
                        <ListBox
                            Name="GameDirsList"
                            MinHeight="120"
                            ItemsSource="{Binding GameDirectories}">
                            <ListBox.Styles>
                                <Style Selector="ListBoxItem">
                                    <Setter Property="Padding" Value="10" />
                                    <Setter Property="Background" Value="{DynamicResource ListBoxBackground}" />
                                </Style>
                            </ListBox.Styles>
                        </ListBox>
                        <Grid HorizontalAlignment="Stretch" ColumnDefinitions="*,Auto,Auto">
                            <TextBox
                                Name="GameDirPathBox"
                                Margin="0"
                                Watermark="{ext:Locale AddGameDirBoxTooltip}"
                                VerticalAlignment="Stretch" />
                            <Button
                                Name="AddGameDirButton"
                                Grid.Column="1"
                                MinWidth="90"
                                Margin="10,0,0,0">
                                <TextBlock HorizontalAlignment="Center"
                                           Text="{ext:Locale SettingsTabGeneralAdd}" />
                            </Button>
                            <Button
                                Name="RemoveGameDirButton"
                                Grid.Column="2"
                                MinWidth="90"
                                Margin="5,0,0,0"
                                Click="RemoveGameDirButton_OnClick">
                                <TextBlock HorizontalAlignment="Center"
                                           Text="{ext:Locale SettingsTabGeneralRemove}" />
                            </Button>
                        </Grid>
                    </StackPanel>
                    <Separator Height="1" />
                    <StackPanel Orientation="Vertical" Spacing="5">
                        <StackPanel Orientation="Horizontal">
                            <TextBlock Classes="h1" Text="{ext:Locale SettingsTabGeneralAutoloadDirectories}" />
                            <TextBlock Classes="globalConfigMarker" IsVisible="{Binding IsGameTitleNotNull}" />
                        </StackPanel>
                        <TextBlock Foreground="{DynamicResource SecondaryTextColor}"
                                   Text="{ext:Locale SettingsTabGeneralAutoloadNote}" />
                    </StackPanel>
                    <StackPanel
                        IsEnabled="{Binding !IsGameTitleNotNull}"
                        Opacity="{Binding PanelOpacity}"
                        Margin="10,0,0,0"
                        HorizontalAlignment="Stretch"
                        Orientation="Vertical"
                        Spacing="10">
                        <ListBox
                            Name="AutoloadDirsList"
                            MinHeight="100"
                            ItemsSource="{Binding AutoloadDirectories}">
                            <ListBox.Styles>
                                <Style Selector="ListBoxItem">
                                    <Setter Property="Padding" Value="10" />
                                    <Setter Property="Background" Value="{DynamicResource ListBoxBackground}" />
                                </Style>
                            </ListBox.Styles>
                        </ListBox>
                        <Grid HorizontalAlignment="Stretch" ColumnDefinitions="*,Auto,Auto">
                            <TextBox
                                Name="AutoloadDirPathBox"
                                Margin="0"
                                Watermark="{ext:Locale AddGameDirBoxTooltip}"
                                VerticalAlignment="Stretch" />
                            <Button
                                Name="AddAutoloadDirButton"
                                Grid.Column="1"
                                MinWidth="90"
                                Margin="10,0,0,0">
                                <TextBlock HorizontalAlignment="Center"
                                           Text="{ext:Locale SettingsTabGeneralAdd}" />
                            </Button>
                            <Button
                                Name="RemoveAutoloadDirButton"
                                Grid.Column="2"
                                MinWidth="90"
                                Margin="5,0,0,0"
                                Click="RemoveAutoloadDirButton_OnClick">
                                <TextBlock HorizontalAlignment="Center"
                                           Text="{ext:Locale SettingsTabGeneralRemove}" />
                            </Button>
                        </Grid>
                    </StackPanel>
                </StackPanel>
            </Grid>
        </Border>
    </ScrollViewer>
</UserControl>
