<window:StyleableWindow
    x:Class="Ryujinx.Ava.Ui.Windows.SettingsWindow"
    xmlns="https://github.com/avaloniaui"
    xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale"
    xmlns:controls="clr-namespace:Ryujinx.Ava.Ui.Controls"
    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:window="clr-namespace:Ryujinx.Ava.Ui.Windows"
    Width="1100"
    Height="768"
    d:DesignWidth="800"
    d:DesignHeight="950"
    MinWidth="800"
    MinHeight="480"
    WindowStartupLocation="CenterOwner"
    x:CompileBindings="True"
    x:DataType="viewModels:SettingsViewModel"
    mc:Ignorable="d">
    <Design.DataContext>
        <viewModels:SettingsViewModel />
    </Design.DataContext>
    <Window.Resources>
        <controls:KeyValueConverter x:Key="Key" />
    </Window.Resources>
    <Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch" MinWidth="600">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition />
            <RowDefinition Height="Auto" />
        </Grid.RowDefinitions>
        <ContentPresenter
            x:Name="ContentPresenter"
            Grid.Row="1"
            IsVisible="False"
            KeyboardNavigation.IsTabStop="False"/>
        <Grid Name="Pages" IsVisible="False" Grid.Row="2">
            <ScrollViewer Name="UiPage"
                          Margin="0,0,2,0"
                          HorizontalAlignment="Stretch"
                          VerticalAlignment="Stretch"
                          HorizontalScrollBarVisibility="Disabled"
                          VerticalScrollBarVisibility="Auto">
                <Border Classes="settings">
                    <StackPanel
                        Margin="10,5"
                        HorizontalAlignment="Stretch"
                        Orientation="Vertical"
                        Spacing="10">
                        <TextBlock Classes="h1" Text="{locale:Locale SettingsTabGeneralGeneral}" />
                        <StackPanel Margin="10,0,0,0" Orientation="Vertical">
                            <CheckBox IsChecked="{Binding EnableDiscordIntegration}">
                                <TextBlock VerticalAlignment="Center"
                                           ToolTip.Tip="{locale:Locale ToggleDiscordTooltip}"
                                           Text="{locale:Locale SettingsTabGeneralEnableDiscordRichPresence}" />
                            </CheckBox>
                            <CheckBox IsChecked="{Binding CheckUpdatesOnStart}">
                                <TextBlock Text="{locale:Locale SettingsTabGeneralCheckUpdatesOnLaunch}" />
                            </CheckBox>
                            <CheckBox IsChecked="{Binding ShowConfirmExit}">
                                <TextBlock Text="{locale:Locale SettingsTabGeneralShowConfirmExitDialog}" />
                            </CheckBox>
                            <CheckBox IsChecked="{Binding HideCursorOnIdle}">
                                <TextBlock Text="{locale:Locale SettingsTabGeneralHideCursorOnIdle}" />
                            </CheckBox>
                        </StackPanel>
                        <Separator Height="1" />
                        <TextBlock Classes="h1" Text="{locale:Locale SettingsTabGeneralGameDirectories}" />
                        <StackPanel
                            Margin="10,0,0,0"
                            HorizontalAlignment="Stretch"
                            Orientation="Vertical"
                            Spacing="10">
                            <ListBox
                                Name="GameList"
                                MinHeight="150"
                                Items="{Binding GameDirectories}" />
                            <Grid HorizontalAlignment="Stretch">
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="*" />
                                    <ColumnDefinition Width="Auto" />
                                    <ColumnDefinition Width="Auto" />
                                </Grid.ColumnDefinitions>
                                <TextBox
                                    Name="PathBox"
                                    Margin="0"
                                    ToolTip.Tip="{locale:Locale AddGameDirBoxTooltip}"
                                    VerticalAlignment="Stretch" />
                                <Button
                                    Name="AddButton"
                                    Grid.Column="1"
                                    MinWidth="90"
                                    Margin="10,0,0,0"
                                    ToolTip.Tip="{locale:Locale AddGameDirTooltip}"
                                    Click="AddButton_OnClick">
                                    <TextBlock HorizontalAlignment="Center"
                                               Text="{locale:Locale SettingsTabGeneralAdd}" />
                                </Button>
                                <Button
                                    Name="RemoveButton"
                                    Grid.Column="2"
                                    MinWidth="90"
                                    Margin="10,0,0,0"
                                    ToolTip.Tip="{locale:Locale RemoveGameDirTooltip}"
                                    Click="RemoveButton_OnClick">
                                    <TextBlock HorizontalAlignment="Center"
                                               Text="{locale:Locale SettingsTabGeneralRemove}" />
                                </Button>
                            </Grid>
                        </StackPanel>
                        <Separator Height="1" />
                        <TextBlock Classes="h1" Text="{locale:Locale SettingsTabGeneralTheme}" />
                        <Grid Margin="10,0,0,0">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="Auto" />
                                <ColumnDefinition />
                                <ColumnDefinition Width="Auto" />
                            </Grid.ColumnDefinitions>
                            <Grid.RowDefinitions>
                                <RowDefinition />
                                <RowDefinition />
                                <RowDefinition />
                            </Grid.RowDefinitions>
                            <CheckBox IsChecked="{Binding EnableCustomTheme}"
                                      ToolTip.Tip="{locale:Locale CustomThemeCheckTooltip}">
                                <TextBlock Text="{locale:Locale SettingsTabGeneralThemeEnableCustomTheme}" />
                            </CheckBox>
                            <TextBlock VerticalAlignment="Center"
                                       Margin="0,10,0,0"
                                       Grid.Row="1"
                                       Text="{locale:Locale SettingsTabGeneralThemeCustomTheme}"
                                       ToolTip.Tip="{locale:Locale CustomThemePathTooltip}" />
                            <TextBox Margin="0,10,0,0"
                                     Grid.Row="1"
                                     Grid.Column="1"
                                     Text="{Binding CustomThemePath}" />
                            <Button Grid.Row="1"
                                    Grid.Column="2"
                                    Margin="10,10,0,0"
                                    Command="{ReflectionBinding BrowseTheme}"
                                    ToolTip.Tip="{locale:Locale CustomThemeBrowseTooltip}"
                                    Content="{locale:Locale ButtonBrowse}" />
                            <TextBlock VerticalAlignment="Center"
                                       Margin="0,10,0,0"
                                       Grid.Row="2"
                                       Text="{locale:Locale SettingsTabGeneralThemeBaseStyle}" />
                            <ComboBox VerticalAlignment="Center"
                                      Margin="0,10,0,0"
                                      Grid.Column="1"
                                      Grid.Row="2"
                                      MinWidth="100"
                                      SelectedIndex="{Binding BaseStyleIndex}">
                                <ComboBoxItem>
                                    <TextBlock Text="{locale:Locale SettingsTabGeneralThemeBaseStyleLight}" />
                                </ComboBoxItem>
                                <ComboBoxItem>
                                    <TextBlock Text="{locale:Locale SettingsTabGeneralThemeBaseStyleDark}" />
                                </ComboBoxItem>
                            </ComboBox>
                        </Grid>
                    </StackPanel>
                </Border>
            </ScrollViewer>
            <ScrollViewer Name="InputPage"
                          HorizontalAlignment="Stretch"
                          VerticalAlignment="Stretch"
                          Padding="0,0,2,0"
                          HorizontalScrollBarVisibility="Disabled"
                          VerticalScrollBarVisibility="Auto">
                <Border Classes="settings">
                    <StackPanel Margin="4" Orientation="Vertical">
                        <StackPanel Orientation="Horizontal">
                            <CheckBox Margin="5,0"
                                      ToolTip.Tip="{locale:Locale DockModeToggleTooltip}"
                                      IsChecked="{Binding EnableDockedMode}">
                                <TextBlock VerticalAlignment="Center"
                                           Text="{locale:Locale SettingsTabInputEnableDockedMode}" />
                            </CheckBox>
                            <CheckBox Margin="5,0"
                                      ToolTip.Tip="{locale:Locale DirectKeyboardTooltip}"
                                      IsChecked="{Binding EnableKeyboard}">
                                <TextBlock Text="{locale:Locale SettingsTabInputDirectKeyboardAccess}" />
                            </CheckBox>
                            <CheckBox Margin="5,0"
                                      ToolTip.Tip="{locale:Locale DirectMouseTooltip}"
                                      IsChecked="{Binding EnableMouse}">
                                <TextBlock Text="{locale:Locale SettingsTabInputDirectMouseAccess}" />
                            </CheckBox>
                        </StackPanel>
                        <window:ControllerSettingsWindow Name="ControllerSettings" Margin="0,0,0,0" MinHeight="600" />
                    </StackPanel>
                </Border>
            </ScrollViewer>
            <ScrollViewer Name="HotkeysPage"
                          HorizontalAlignment="Stretch"
                          VerticalAlignment="Stretch"
                          HorizontalScrollBarVisibility="Disabled"
                          VerticalScrollBarVisibility="Auto">
                <Border Classes="settings">
                    <StackPanel Margin="10,5" Orientation="Vertical" Spacing="10">
                        <TextBlock Classes="h1" Text="{locale:Locale SettingsTabHotkeysHotkeys}" />
                        <StackPanel Margin="10,0,0,0" Orientation="Horizontal">
                            <TextBlock VerticalAlignment="Center" Text="{locale:Locale SettingsTabHotkeysToggleVsyncHotkey}" Width="230" />
                            <ToggleButton Width="90" Height="27" Checked="Button_Checked" Unchecked="Button_Unchecked">
                                <TextBlock
                                    Text="{Binding KeyboardHotkeys.ToggleVsync, Mode=TwoWay, Converter={StaticResource Key}}"
                                    TextAlignment="Center" />
                            </ToggleButton>
                        </StackPanel>
                        <StackPanel Margin="10,0,0,0" Orientation="Horizontal">
                            <TextBlock VerticalAlignment="Center" Text="{locale:Locale SettingsTabHotkeysScreenshotHotkey}" Width="230" />
                            <ToggleButton Width="90" Height="27" Checked="Button_Checked" Unchecked="Button_Unchecked">
                                <TextBlock
                                    Text="{Binding KeyboardHotkeys.Screenshot, Mode=TwoWay, Converter={StaticResource Key}}"
                                    TextAlignment="Center" />
                            </ToggleButton>
                        </StackPanel>
                        <StackPanel Margin="10,0,0,0" Orientation="Horizontal">
                            <TextBlock VerticalAlignment="Center" Text="{locale:Locale SettingsTabHotkeysShowUiHotkey}" Width="230" />
                            <ToggleButton Width="90" Height="27" Checked="Button_Checked" Unchecked="Button_Unchecked">
                                <TextBlock
                                    Text="{Binding KeyboardHotkeys.ShowUi, Mode=TwoWay, Converter={StaticResource Key}}"
                                    TextAlignment="Center" />
                            </ToggleButton>
                        </StackPanel>
                        <StackPanel Margin="10,0,0,0" Orientation="Horizontal">
                            <TextBlock VerticalAlignment="Center" Text="{locale:Locale SettingsTabHotkeysPauseHotkey}" Width="230" />
                            <ToggleButton Width="90" Height="27" Checked="Button_Checked" Unchecked="Button_Unchecked">
                                <TextBlock
                                    Text="{Binding KeyboardHotkeys.Pause, Mode=TwoWay, Converter={StaticResource Key}}"
                                    TextAlignment="Center" />
                            </ToggleButton>
                        </StackPanel>
                        <StackPanel Margin="10,0,0,0" Orientation="Horizontal">
                            <TextBlock VerticalAlignment="Center" Text="{locale:Locale SettingsTabHotkeysToggleMuteHotkey}" Width="230" />
                            <ToggleButton Width="90" Height="27" Checked="Button_Checked" Unchecked="Button_Unchecked">
                                <TextBlock
                                    Text="{Binding KeyboardHotkeys.ToggleMute, Mode=TwoWay, Converter={StaticResource Key}}"
                                    TextAlignment="Center" />
                            </ToggleButton>
                        </StackPanel>
                        <StackPanel Margin="10,0,0,0" Orientation="Horizontal">
                            <TextBlock VerticalAlignment="Center" Text="{locale:Locale SettingsTabHotkeysResScaleUpHotkey}" Width="230" />
                            <ToggleButton Width="90" Height="27" Checked="Button_Checked" Unchecked="Button_Unchecked">
                                <TextBlock
                                    Text="{Binding KeyboardHotkeys.ResScaleUp, Mode=TwoWay, Converter={StaticResource Key}}"
                                    TextAlignment="Center" />
                            </ToggleButton>
                        </StackPanel>
                        <StackPanel Margin="10,0,0,0" Orientation="Horizontal">
                            <TextBlock VerticalAlignment="Center" Text="{locale:Locale SettingsTabHotkeysResScaleDownHotkey}" Width="230" />
                            <ToggleButton Width="90" Height="27" Checked="Button_Checked" Unchecked="Button_Unchecked">
                                <TextBlock
                                    Text="{Binding KeyboardHotkeys.ResScaleDown, Mode=TwoWay, Converter={StaticResource Key}}"
                                    TextAlignment="Center" />
                            </ToggleButton>
                        </StackPanel>
                        <StackPanel Margin="10,0,0,0" Orientation="Horizontal">
                            <TextBlock VerticalAlignment="Center" Text="{locale:Locale SettingsTabHotkeysVolumeUpHotkey}" Width="230" />
                            <ToggleButton Width="90" Height="27" Checked="Button_Checked" Unchecked="Button_Unchecked">
                                <TextBlock
                                    Text="{Binding KeyboardHotkeys.VolumeUp, Mode=TwoWay, Converter={StaticResource Key}}"
                                    TextAlignment="Center" />
                            </ToggleButton>
                        </StackPanel>
                        <StackPanel Margin="10,0,0,0" Orientation="Horizontal">
                            <TextBlock VerticalAlignment="Center" Text="{locale:Locale SettingsTabHotkeysVolumeDownHotkey}" Width="230" />
                            <ToggleButton Width="90" Height="27" Checked="Button_Checked" Unchecked="Button_Unchecked">
                                <TextBlock
                                    Text="{Binding KeyboardHotkeys.VolumeDown, Mode=TwoWay, Converter={StaticResource Key}}"
                                    TextAlignment="Center" />
                            </ToggleButton>
                        </StackPanel>
                    </StackPanel>
                </Border>
            </ScrollViewer>
            <ScrollViewer Name="SystemPage"
                          HorizontalAlignment="Stretch"
                          VerticalAlignment="Stretch"
                          HorizontalScrollBarVisibility="Disabled"
                          VerticalScrollBarVisibility="Auto">
                <Border Classes="settings">
                    <StackPanel
                        Margin="10,5"
                        HorizontalAlignment="Stretch"
                        Orientation="Vertical"
                        Spacing="10">
                        <TextBlock Classes="h1" Text="{locale:Locale SettingsTabSystemCore}" />
                        <StackPanel Margin="10,0,0,0" Orientation="Vertical">
                            <StackPanel Margin="0,0,0,10" Orientation="Horizontal">
                                <TextBlock VerticalAlignment="Center"
                                           Text="{locale:Locale SettingsTabSystemSystemRegion}"
                                           Width="250" />
                                <ComboBox SelectedIndex="{Binding Region}"
                                          ToolTip.Tip="{locale:Locale RegionTooltip}"
                                          HorizontalContentAlignment="Left"
                                          Width="350">
                                    <ComboBoxItem>
                                        <TextBlock Text="{locale:Locale SettingsTabSystemSystemRegionJapan}" />
                                    </ComboBoxItem>
                                    <ComboBoxItem>
                                        <TextBlock Text="{locale:Locale SettingsTabSystemSystemRegionUSA}" />
                                    </ComboBoxItem>
                                    <ComboBoxItem>
                                        <TextBlock Text="{locale:Locale SettingsTabSystemSystemRegionEurope}" />
                                    </ComboBoxItem>
                                    <ComboBoxItem>
                                        <TextBlock Text="{locale:Locale SettingsTabSystemSystemRegionAustralia}" />
                                    </ComboBoxItem>
                                    <ComboBoxItem>
                                        <TextBlock Text="{locale:Locale SettingsTabSystemSystemRegionChina}" />
                                    </ComboBoxItem>
                                    <ComboBoxItem>
                                        <TextBlock Text="{locale:Locale SettingsTabSystemSystemRegionKorea}" />
                                    </ComboBoxItem>
                                    <ComboBoxItem>
                                        <TextBlock Text="{locale:Locale SettingsTabSystemSystemRegionTaiwan}" />
                                    </ComboBoxItem>
                                </ComboBox>
                            </StackPanel>
                            <StackPanel Margin="0,0,0,10" Orientation="Horizontal">
                                <TextBlock VerticalAlignment="Center"
                                           Text="{locale:Locale SettingsTabSystemSystemLanguage}"
                                           ToolTip.Tip="{locale:Locale LanguageTooltip}"
                                           Width="250" />
                                <ComboBox SelectedIndex="{Binding Language}"
                                          ToolTip.Tip="{locale:Locale LanguageTooltip}"
                                          HorizontalContentAlignment="Left"
                                          Width="350">
                                    <ComboBoxItem>
                                        <TextBlock Text="{locale:Locale SettingsTabSystemSystemLanguageJapanese}" />
                                    </ComboBoxItem>
                                    <ComboBoxItem>
                                        <TextBlock
                                            Text="{locale:Locale SettingsTabSystemSystemLanguageAmericanEnglish}" />
                                    </ComboBoxItem>
                                    <ComboBoxItem>
                                        <TextBlock Text="{locale:Locale SettingsTabSystemSystemLanguageFrench}" />
                                    </ComboBoxItem>
                                    <ComboBoxItem>
                                        <TextBlock Text="{locale:Locale SettingsTabSystemSystemLanguageGerman}" />
                                    </ComboBoxItem>
                                    <ComboBoxItem>
                                        <TextBlock Text="{locale:Locale SettingsTabSystemSystemLanguageItalian}" />
                                    </ComboBoxItem>
                                    <ComboBoxItem>
                                        <TextBlock Text="{locale:Locale SettingsTabSystemSystemLanguageSpanish}" />
                                    </ComboBoxItem>
                                    <ComboBoxItem>
                                        <TextBlock Text="{locale:Locale SettingsTabSystemSystemLanguageChinese}" />
                                    </ComboBoxItem>
                                    <ComboBoxItem>
                                        <TextBlock Text="{locale:Locale SettingsTabSystemSystemLanguageKorean}" />
                                    </ComboBoxItem>
                                    <ComboBoxItem>
                                        <TextBlock Text="{locale:Locale SettingsTabSystemSystemLanguageDutch}" />
                                    </ComboBoxItem>
                                    <ComboBoxItem>
                                        <TextBlock Text="{locale:Locale SettingsTabSystemSystemLanguagePortuguese}" />
                                    </ComboBoxItem>
                                    <ComboBoxItem>
                                        <TextBlock Text="{locale:Locale SettingsTabSystemSystemLanguageRussian}" />
                                    </ComboBoxItem>
                                    <ComboBoxItem>
                                        <TextBlock Text="{locale:Locale SettingsTabSystemSystemLanguageTaiwanese}" />
                                    </ComboBoxItem>
                                    <ComboBoxItem>
                                        <TextBlock
                                            Text="{locale:Locale SettingsTabSystemSystemLanguageBritishEnglish}" />
                                    </ComboBoxItem>
                                    <ComboBoxItem>
                                        <TextBlock
                                            Text="{locale:Locale SettingsTabSystemSystemLanguageCanadianFrench}" />
                                    </ComboBoxItem>
                                    <ComboBoxItem>
                                        <TextBlock
                                            Text="{locale:Locale SettingsTabSystemSystemLanguageLatinAmericanSpanish}" />
                                    </ComboBoxItem>
                                    <ComboBoxItem>
                                        <TextBlock
                                            Text="{locale:Locale SettingsTabSystemSystemLanguageSimplifiedChinese}" />
                                    </ComboBoxItem>
                                    <ComboBoxItem>
                                        <TextBlock
                                            Text="{locale:Locale SettingsTabSystemSystemLanguageTraditionalChinese}" />
                                    </ComboBoxItem>
                                    <ComboBoxItem>
                                        <TextBlock
                                            Text="{locale:Locale SettingsTabSystemSystemLanguageBrazilianPortuguese}" />
                                    </ComboBoxItem>
                                </ComboBox>
                            </StackPanel>
                            <StackPanel Margin="0,0,0,10" Orientation="Horizontal">
                                <TextBlock VerticalAlignment="Center"
                                           Text="{locale:Locale SettingsTabSystemSystemTimeZone}"
                                           ToolTip.Tip="{locale:Locale TimezoneTooltip}"
                                           Width="250" />
                                <AutoCompleteBox
                                    Name="TimeZoneBox"
                                    Width="350"
                                    MaxDropDownHeight="500"
                                    FilterMode="Contains"
                                    Items="{Binding TimeZones}"
                                    SelectionChanged="TimeZoneBox_OnSelectionChanged"
                                    Text="{Binding Path=TimeZone, Mode=OneWay}"
                                    TextChanged="TimeZoneBox_OnTextChanged"
                                    ValueMemberBinding="{ReflectionBinding TzMultiBinding}"
                                    ToolTip.Tip="{locale:Locale TimezoneTooltip}" />
                            </StackPanel>
                            <StackPanel Margin="0,0,0,10" Orientation="Horizontal">
                                <TextBlock VerticalAlignment="Center"
                                           Text="{locale:Locale SettingsTabSystemSystemTime}"
                                           ToolTip.Tip="{locale:Locale TimeTooltip}"
                                           Width="250"/>
                                <DatePicker VerticalAlignment="Center" SelectedDate="{Binding DateOffset}"
                                            ToolTip.Tip="{locale:Locale TimeTooltip}"
                                            Width="350" />
                            </StackPanel>
                            <StackPanel Margin="250,0,0,10" Orientation="Horizontal">
                                <TimePicker
                                    VerticalAlignment="Center"
                                    ClockIdentifier="24HourClock"
                                    SelectedTime="{Binding TimeOffset}"
                                    Width="350"
                                    ToolTip.Tip="{locale:Locale TimeTooltip}" />
                            </StackPanel>
                            <CheckBox IsChecked="{Binding EnableVsync}">
                                <TextBlock Text="{locale:Locale SettingsTabSystemEnableVsync}"
                                           ToolTip.Tip="{locale:Locale VSyncToggleTooltip}" />
                            </CheckBox>
                            <CheckBox IsChecked="{Binding EnableFsIntegrityChecks}">
                                <TextBlock Text="{locale:Locale SettingsTabSystemEnableFsIntegrityChecks}"
                                           ToolTip.Tip="{locale:Locale FsIntegrityToggleTooltip}" />
                            </CheckBox>
                        </StackPanel>
                        <Separator Height="1" />
                        <StackPanel Orientation="Horizontal">
                            <TextBlock Classes="h1" Text="{locale:Locale SettingsTabSystemHacks}" />
                            <TextBlock Text="{locale:Locale SettingsTabSystemHacksNote}" />
                        </StackPanel>
                        <StackPanel
                            Margin="10,0,0,0"
                            HorizontalAlignment="Stretch"
                            Orientation="Vertical">
                            <CheckBox IsChecked="{Binding ExpandDramSize}"
                                      ToolTip.Tip="{locale:Locale DRamTooltip}">
                                <TextBlock Text="{locale:Locale SettingsTabSystemExpandDramSize}" />
                            </CheckBox>
                            <CheckBox IsChecked="{Binding IgnoreMissingServices}"
                                      ToolTip.Tip="{locale:Locale IgnoreMissingServicesTooltip}">
                                <TextBlock Text="{locale:Locale SettingsTabSystemIgnoreMissingServices}" />
                            </CheckBox>
                        </StackPanel>
                    </StackPanel>
                </Border>
            </ScrollViewer>
            <ScrollViewer
                Name="CpuPage"
                HorizontalAlignment="Stretch"
                VerticalAlignment="Stretch"
                HorizontalScrollBarVisibility="Disabled"
                VerticalScrollBarVisibility="Auto">
                <Border Classes="settings">
                    <StackPanel
                        Margin="10,5"
                        HorizontalAlignment="Stretch"
                        Orientation="Vertical"
                        Spacing="10">
                        <TextBlock Classes="h1" Text="{locale:Locale SettingsTabCpuCache}" />
                        <StackPanel
                            Margin="10,0,0,0"
                            HorizontalAlignment="Stretch"
                            Orientation="Vertical">
                            <CheckBox IsChecked="{Binding EnablePptc}">
                                <TextBlock Text="{locale:Locale SettingsTabSystemEnablePptc}"
                                           ToolTip.Tip="{locale:Locale PptcToggleTooltip}" />
                            </CheckBox>
                        </StackPanel>
                        <Separator Height="1" />
                        <TextBlock Classes="h1" Text="{locale:Locale SettingsTabCpuMemory}" />
                        <StackPanel
                            Margin="10,0,0,0"
                            HorizontalAlignment="Stretch"
                            Orientation="Vertical">
                            <StackPanel Orientation="Horizontal">
                                <TextBlock VerticalAlignment="Center"
                                           Text="{locale:Locale SettingsTabSystemMemoryManagerMode}"
                                           ToolTip.Tip="{locale:Locale MemoryManagerTooltip}"
                                           Width="250" />
                                <ComboBox SelectedIndex="{Binding MemoryMode}"
                                          ToolTip.Tip="{locale:Locale MemoryManagerTooltip}"
                                          HorizontalContentAlignment="Left"
                                          Width="350">
                                    <ComboBoxItem
                                        ToolTip.Tip="{locale:Locale MemoryManagerSoftwareTooltip}">
                                        <TextBlock
                                            Text="{locale:Locale SettingsTabSystemMemoryManagerModeSoftware}" />
                                    </ComboBoxItem>
                                    <ComboBoxItem
                                        ToolTip.Tip="{locale:Locale MemoryManagerHostTooltip}">
                                        <TextBlock Text="{locale:Locale SettingsTabSystemMemoryManagerModeHost}" />
                                    </ComboBoxItem>
                                    <ComboBoxItem
                                        ToolTip.Tip="{locale:Locale MemoryManagerUnsafeTooltip}">
                                        <TextBlock
                                            Text="{locale:Locale SettingsTabSystemMemoryManagerModeHostUnchecked}" />
                                    </ComboBoxItem>
                                </ComboBox>
                            </StackPanel>
                        </StackPanel>
                    </StackPanel>
                </Border>
            </ScrollViewer>
            <ScrollViewer
                Name="GraphicsPage"
                HorizontalAlignment="Stretch"
                VerticalAlignment="Stretch"
                HorizontalScrollBarVisibility="Disabled"
                VerticalScrollBarVisibility="Auto">
                <Border Classes="settings">
                    <StackPanel
                        Margin="10,5"
                        HorizontalAlignment="Stretch"
                        Orientation="Vertical"
                        Spacing="10">
                        <TextBlock Classes="h1" Text="{locale:Locale SettingsTabGraphicsAPI}" />
                        <StackPanel Margin="10,0,0,0" Orientation="Vertical" Spacing="10">
                            <StackPanel Orientation="Horizontal">
                                <TextBlock VerticalAlignment="Center"
                                        ToolTip.Tip="{locale:Locale SettingsTabGraphicsBackendTooltip}"
                                        Text="{locale:Locale SettingsTabGraphicsBackend}"
                                        Width="250" />
                                <ComboBox Width="350"
                                        HorizontalContentAlignment="Left"
                                        ToolTip.Tip="{locale:Locale SettingsTabGraphicsBackendTooltip}"
                                        SelectedIndex="{Binding GraphicsBackendIndex}">
                                    <ComboBoxItem IsVisible="{Binding IsVulkanAvailable}">
                                        <TextBlock Text="Vulkan" />
                                    </ComboBoxItem>
                                    <ComboBoxItem>
                                        <TextBlock Text="OpenGL" />
                                    </ComboBoxItem>
                                </ComboBox>
                            </StackPanel>
                            <StackPanel Orientation="Horizontal" IsVisible="{Binding IsVulkanSelected}">
                                <TextBlock VerticalAlignment="Center"
                                        ToolTip.Tip="{locale:Locale SettingsTabGraphicsPreferredGpuTooltip}"
                                        Text="{locale:Locale SettingsTabGraphicsPreferredGpu}"
                                        Width="250" />
                                <ComboBox Width="350"
                                        HorizontalContentAlignment="Left"
                                        ToolTip.Tip="{locale:Locale SettingsTabGraphicsPreferredGpuTooltip}"
                                        SelectedIndex="{Binding PreferredGpuIndex}"
                                        Items="{Binding AvailableGpus}"/>
                            </StackPanel>
                        </StackPanel>
                        <Separator Height="1" />
                        <TextBlock Classes="h1" Text="{locale:Locale SettingsTabGraphicsFeatures}" />
                        <StackPanel Margin="10,0,0,0" Orientation="Vertical" Spacing="10">
                            <StackPanel Orientation="Vertical">
                                <CheckBox IsChecked="{Binding EnableShaderCache}"
                                    ToolTip.Tip="{locale:Locale ShaderCacheToggleTooltip}">
                                    <TextBlock Text="{locale:Locale SettingsTabGraphicsEnableShaderCache}" />
                                </CheckBox>
                                <CheckBox IsChecked="{Binding EnableTextureRecompression}"
                                    ToolTip.Tip="{locale:Locale SettingsEnableTextureRecompressionTooltip}">
                                    <TextBlock Text="{locale:Locale SettingsEnableTextureRecompression}" />
                                </CheckBox>
                            </StackPanel>
                            <StackPanel Orientation="Horizontal">
                                <TextBlock VerticalAlignment="Center"
                                           ToolTip.Tip="{locale:Locale ResolutionScaleTooltip}"
                                           Text="{locale:Locale SettingsTabGraphicsResolutionScale}"
                                           Width="250" />
                                <ComboBox SelectedIndex="{Binding ResolutionScale}"
                                          Width="350"
                                          HorizontalContentAlignment="Left"
                                          ToolTip.Tip="{locale:Locale ResolutionScaleTooltip}">
                                    <ComboBoxItem>
                                        <TextBlock Text="{locale:Locale SettingsTabGraphicsResolutionScaleCustom}" />
                                    </ComboBoxItem>
                                    <ComboBoxItem>
                                        <TextBlock Text="{locale:Locale SettingsTabGraphicsResolutionScaleNative}" />
                                    </ComboBoxItem>
                                    <ComboBoxItem>
                                        <TextBlock Text="{locale:Locale SettingsTabGraphicsResolutionScale2x}" />
                                    </ComboBoxItem>
                                    <ComboBoxItem>
                                        <TextBlock Text="{locale:Locale SettingsTabGraphicsResolutionScale3x}" />
                                    </ComboBoxItem>
                                    <ComboBoxItem>
                                        <TextBlock Text="{locale:Locale SettingsTabGraphicsResolutionScale4x}" />
                                    </ComboBoxItem>
                                </ComboBox>
                                <ui:NumberBox
                                    Margin="10,0,0,0"
                                    ToolTip.Tip="{locale:Locale ResolutionScaleEntryTooltip}"
                                    MinWidth="150"
                                    SmallChange="0.1"
                                    LargeChange="1"
                                    SimpleNumberFormat="F2"
                                    SpinButtonPlacementMode="Inline"
                                    IsVisible="{Binding IsCustomResolutionScaleActive}"
                                    Maximum="100"
                                    Minimum="0.1"
                                    Value="{Binding CustomResolutionScale}" />
                            </StackPanel>
                            <StackPanel Orientation="Horizontal">
                                <TextBlock VerticalAlignment="Center"
                                           ToolTip.Tip="{locale:Locale AnisotropyTooltip}"
                                           Text="{locale:Locale SettingsTabGraphicsAnisotropicFiltering}"
                                           Width="250" />
                                <ComboBox SelectedIndex="{Binding MaxAnisotropy}"
                                          Width="350"
                                          HorizontalContentAlignment="Left"
                                          ToolTip.Tip="{locale:Locale AnisotropyTooltip}">
                                    <ComboBoxItem>
                                        <TextBlock
                                            Text="{locale:Locale SettingsTabGraphicsAnisotropicFilteringAuto}" />
                                    </ComboBoxItem>
                                    <ComboBoxItem>
                                        <TextBlock Text="{locale:Locale SettingsTabGraphicsAnisotropicFiltering2x}" />
                                    </ComboBoxItem>
                                    <ComboBoxItem>
                                        <TextBlock Text="{locale:Locale SettingsTabGraphicsAnisotropicFiltering4x}" />
                                    </ComboBoxItem>
                                    <ComboBoxItem>
                                        <TextBlock Text="{locale:Locale SettingsTabGraphicsAnisotropicFiltering8x}" />
                                    </ComboBoxItem>
                                    <ComboBoxItem>
                                        <TextBlock
                                            Text="{locale:Locale SettingsTabGraphicsAnisotropicFiltering16x}" />
                                    </ComboBoxItem>
                                </ComboBox>
                            </StackPanel>
                            <StackPanel Orientation="Horizontal">
                                <TextBlock VerticalAlignment="Center"
                                           ToolTip.Tip="{locale:Locale AspectRatioTooltip}"
                                           Text="{locale:Locale SettingsTabGraphicsAspectRatio}"
                                           Width="250" />
                                <ComboBox SelectedIndex="{Binding AspectRatio}"
                                          Width="350"
                                          HorizontalContentAlignment="Left"
                                          ToolTip.Tip="{locale:Locale AspectRatioTooltip}">
                                    <ComboBoxItem>
                                        <TextBlock Text="{locale:Locale SettingsTabGraphicsAspectRatio4x3}" />
                                    </ComboBoxItem>
                                    <ComboBoxItem>
                                        <TextBlock Text="{locale:Locale SettingsTabGraphicsAspectRatio16x9}" />
                                    </ComboBoxItem>
                                    <ComboBoxItem>
                                        <TextBlock Text="{locale:Locale SettingsTabGraphicsAspectRatio16x10}" />
                                    </ComboBoxItem>
                                    <ComboBoxItem>
                                        <TextBlock Text="{locale:Locale SettingsTabGraphicsAspectRatio21x9}" />
                                    </ComboBoxItem>
                                    <ComboBoxItem>
                                        <TextBlock Text="{locale:Locale SettingsTabGraphicsAspectRatio32x9}" />
                                    </ComboBoxItem>
                                    <ComboBoxItem>
                                        <TextBlock Text="{locale:Locale SettingsTabGraphicsAspectRatioStretch}" />
                                    </ComboBoxItem>
                                </ComboBox>
                            </StackPanel>
                        </StackPanel>
                        <StackPanel
                            Margin="10,0,0,0"
                            HorizontalAlignment="Stretch"
                            Orientation="Vertical"
                            Spacing="10">
                            <StackPanel Orientation="Horizontal">
                                <TextBlock VerticalAlignment="Center"
                                           ToolTip.Tip="{locale:Locale GraphicsBackendThreadingTooltip}"
                                           Text="{locale:Locale SettingsTabGraphicsBackendMultithreading}"
                                           Width="250" />
                                <ComboBox Width="350"
                                          HorizontalContentAlignment="Left"
                                          ToolTip.Tip="{locale:Locale GalThreadingTooltip}"
                                          SelectedIndex="{Binding GraphicsBackendMultithreadingIndex}">
                                    <ComboBoxItem>
                                        <TextBlock Text="{locale:Locale CommonAuto}" />
                                    </ComboBoxItem>
                                    <ComboBoxItem>
                                        <TextBlock Text="{locale:Locale CommonOff}" />
                                    </ComboBoxItem>
                                    <ComboBoxItem>
                                        <TextBlock Text="{locale:Locale CommonOn}" />
                                    </ComboBoxItem>
                                </ComboBox>
                            </StackPanel>
                        </StackPanel>
                        <Separator Height="1" />
                        <TextBlock Classes="h1" Text="{locale:Locale SettingsTabGraphicsDeveloperOptions}" />
                        <StackPanel
                            Margin="10,0,0,0"
                            HorizontalAlignment="Stretch"
                            Orientation="Vertical"
                            Spacing="10">
                            <StackPanel Orientation="Horizontal">
                                <TextBlock VerticalAlignment="Center"
                                           ToolTip.Tip="{locale:Locale ShaderDumpPathTooltip}"
                                           Text="{locale:Locale SettingsTabGraphicsShaderDumpPath}"
                                           Width="250" />
                                <TextBox Text="{Binding ShaderDumpPath}"
                                         Width="350"
                                         ToolTip.Tip="{locale:Locale ShaderDumpPathTooltip}" />
                            </StackPanel>
                        </StackPanel>
                    </StackPanel>
                </Border>
            </ScrollViewer>
            <ScrollViewer
                Name="AudioPage"
                HorizontalAlignment="Stretch"
                VerticalAlignment="Stretch"
                HorizontalScrollBarVisibility="Disabled"
                VerticalScrollBarVisibility="Auto">
                <Border Classes="settings">
                    <StackPanel
                        Margin="10,5"
                        HorizontalAlignment="Stretch"
                        Orientation="Vertical"
                        Spacing="10">
                        <TextBlock Classes="h1" Text="{locale:Locale SettingsTabAudio}" />
                        <StackPanel Margin="10,0,0,0" Orientation="Horizontal">
                            <TextBlock VerticalAlignment="Center"
                                       Text="{locale:Locale SettingsTabSystemAudioBackend}"
                                       ToolTip.Tip="{locale:Locale AudioBackendTooltip}"
                                       Width="250" />
                            <ComboBox SelectedIndex="{Binding AudioBackend}"
                                      Width="350"
                                      HorizontalContentAlignment="Left">
                                <ComboBoxItem>
                                    <TextBlock Text="{locale:Locale SettingsTabSystemAudioBackendDummy}" />
                                </ComboBoxItem>
                                <ComboBoxItem IsEnabled="{Binding IsOpenAlEnabled}">
                                    <TextBlock Text="{locale:Locale SettingsTabSystemAudioBackendOpenAL}" />
                                </ComboBoxItem>
                                <ComboBoxItem IsEnabled="{Binding IsSoundIoEnabled}">
                                    <TextBlock Text="{locale:Locale SettingsTabSystemAudioBackendSoundIO}" />
                                </ComboBoxItem>
                                <ComboBoxItem IsEnabled="{Binding IsSDL2Enabled}">
                                    <TextBlock Text="{locale:Locale SettingsTabSystemAudioBackendSDL2}" />
                                </ComboBoxItem>
                            </ComboBox>
                        </StackPanel>
                        <StackPanel Margin="10,0,0,0" Orientation="Horizontal">
                            <TextBlock VerticalAlignment="Center"
                                       Text="{locale:Locale SettingsTabSystemAudioVolume}"
                                       ToolTip.Tip="{locale:Locale AudioVolumeTooltip}"
                                       Width="250" />
                            <ui:NumberBox Value="{Binding Volume}"
                                    ToolTip.Tip="{locale:Locale AudioVolumeTooltip}"
                                    Width="350"
                                    SmallChange="1"
                                    LargeChange="10"
                                    SimpleNumberFormat="F0"
                                    SpinButtonPlacementMode="Inline"
                                    Minimum="0"
                                    Maximum="100" />
                        </StackPanel>
                        <StackPanel Margin="10,0,0,0" Orientation="Horizontal">
                            <Slider Value="{Binding Volume}"
                                    Margin="250,0,0,0"
                                    ToolTip.Tip="{locale:Locale AudioVolumeTooltip}"
                                    Minimum="0"
                                    Maximum="100"
                                    SmallChange="5"
                                    TickFrequency="5"
                                    IsSnapToTickEnabled="True"
                                    LargeChange="10"
                                    Width="350" />
                        </StackPanel>
                    </StackPanel>
                </Border>
            </ScrollViewer>
            <ScrollViewer
                Name="NetworkPage"
                HorizontalAlignment="Stretch"
                VerticalAlignment="Stretch"
                HorizontalScrollBarVisibility="Disabled"
                VerticalScrollBarVisibility="Auto">
                <Border Classes="settings">
                    <StackPanel
                        Margin="10,5"
                        HorizontalAlignment="Stretch"
                        Orientation="Vertical"
                        Spacing="10">
                        <TextBlock Classes="h1" Text="{locale:Locale SettingsTabNetworkConnection}" />
                        <CheckBox Margin="10,0,0,0" IsChecked="{Binding EnableInternetAccess}">
                            <TextBlock Text="{locale:Locale SettingsTabSystemEnableInternetAccess}"
                                       ToolTip.Tip="{locale:Locale EnableInternetAccessTooltip}" />
                        </CheckBox>
                    </StackPanel>
                </Border>
            </ScrollViewer>
            <ScrollViewer
                Name="LoggingPage"
                HorizontalAlignment="Stretch"
                VerticalAlignment="Stretch"
                HorizontalScrollBarVisibility="Disabled"
                VerticalScrollBarVisibility="Auto">
                <Border Classes="settings">
                    <StackPanel
                        Margin="10,5"
                        HorizontalAlignment="Stretch"
                        Orientation="Vertical"
                        Spacing="10">
                        <TextBlock Classes="h1" Text="{locale:Locale SettingsTabLoggingLogging}" />
                        <StackPanel Margin="10,0,0,0" Orientation="Vertical">
                            <CheckBox IsChecked="{Binding EnableFileLog}"
                                      ToolTip.Tip="{locale:Locale FileLogTooltip}">
                                <TextBlock Text="{locale:Locale SettingsTabLoggingEnableLoggingToFile}" />
                            </CheckBox>
                            <CheckBox IsChecked="{Binding EnableStub}"
                                      ToolTip.Tip="{locale:Locale StubLogTooltip}">
                                <TextBlock Text="{locale:Locale SettingsTabLoggingEnableStubLogs}" />
                            </CheckBox>
                            <CheckBox IsChecked="{Binding EnableInfo}"
                                      ToolTip.Tip="{locale:Locale InfoLogTooltip}">
                                <TextBlock Text="{locale:Locale SettingsTabLoggingEnableInfoLogs}" />
                            </CheckBox>
                            <CheckBox IsChecked="{Binding EnableWarn}"
                                      ToolTip.Tip="{locale:Locale WarnLogTooltip}">
                                <TextBlock Text="{locale:Locale SettingsTabLoggingEnableWarningLogs}" />
                            </CheckBox>
                            <CheckBox IsChecked="{Binding EnableError}"
                                      ToolTip.Tip="{locale:Locale ErrorLogTooltip}">
                                <TextBlock Text="{locale:Locale SettingsTabLoggingEnableErrorLogs}" />
                            </CheckBox>
                            <CheckBox IsChecked="{Binding EnableTrace}"
                                      ToolTip.Tip="{locale:Locale TraceLogTooltip}">
                                <TextBlock Text="{locale:Locale SettingsTabLoggingEnableTraceLogs}" />
                            </CheckBox>
                            <CheckBox IsChecked="{Binding EnableGuest}"
                                      ToolTip.Tip="{locale:Locale GuestLogTooltip}">
                                <TextBlock Text="{locale:Locale SettingsTabLoggingEnableGuestLogs}" />
                            </CheckBox>
                        </StackPanel>
                        <Separator Height="1" />
                        <TextBlock Classes="h1" Text="{locale:Locale SettingsTabLoggingDeveloperOptions}" />
                        <StackPanel
                            Margin="10,0,0,0"
                            HorizontalAlignment="Stretch"
                            Orientation="Vertical"
                            Spacing="10">
                            <StackPanel Orientation="Vertical">
                                <CheckBox IsChecked="{Binding EnableDebug}"
                                        ToolTip.Tip="{locale:Locale DebugLogTooltip}">
                                <TextBlock Text="{locale:Locale SettingsTabLoggingEnableDebugLogs}" />
                                </CheckBox>
                                <CheckBox IsChecked="{Binding EnableFsAccessLog}"
                                        ToolTip.Tip="{locale:Locale FileAccessLogTooltip}">
                                <TextBlock Text="{locale:Locale SettingsTabLoggingEnableFsAccessLogs}" />
                                </CheckBox>
                                <StackPanel Margin="0,10,0,0" Orientation="Horizontal" VerticalAlignment="Stretch">
                                    <TextBlock VerticalAlignment="Center"
                                            ToolTip.Tip="{locale:Locale FSAccessLogModeTooltip}"
                                            Text="{locale:Locale SettingsTabLoggingFsGlobalAccessLogMode}"
                                            Width="285" />
                                    <ui:NumberBox
                                        Maximum="3"
                                        Minimum="0"
                                        Width="150"
                                        SpinButtonPlacementMode="Inline"
                                        SmallChange="1"
                                        LargeChange="1"
                                        Value="{Binding FsGlobalAccessLogMode}" />
                                </StackPanel>
                                <StackPanel Margin="0,10,0,0" Orientation="Horizontal">
                                    <TextBlock VerticalAlignment="Center"
                                            Text="{locale:Locale SettingsTabLoggingOpenglLogLevel}"
                                            ToolTip.Tip="{locale:Locale OpenGlLogLevel}"
                                            Width="285" />
                                    <ComboBox SelectedIndex="{Binding OpenglDebugLevel}"
                                            Width="150"
                                            HorizontalContentAlignment="Left"
                                            ToolTip.Tip="{locale:Locale OpenGlLogLevel}">
                                        <ComboBoxItem>
                                            <TextBlock Text="{locale:Locale SettingsTabLoggingOpenglLogLevelNone}" />
                                        </ComboBoxItem>
                                        <ComboBoxItem>
                                            <TextBlock Text="{locale:Locale SettingsTabLoggingOpenglLogLevelError}" />
                                        </ComboBoxItem>
                                        <ComboBoxItem>
                                            <TextBlock
                                                Text="{locale:Locale SettingsTabLoggingOpenglLogLevelPerformance}" />
                                        </ComboBoxItem>
                                        <ComboBoxItem>
                                            <TextBlock Text="{locale:Locale SettingsTabLoggingOpenglLogLevelAll}" />
                                        </ComboBoxItem>
                                    </ComboBox>
                                </StackPanel>
                            </StackPanel>
                        </StackPanel>
                    </StackPanel>
                </Border>
            </ScrollViewer>
        </Grid>
        <ui:NavigationView Grid.Row="1"
                           IsSettingsVisible="False"
                           Name="NavPanel"
                           IsBackEnabled="False"
                           PaneDisplayMode="Left"
                           Margin="2,10,10,0"
                           VerticalAlignment="Stretch"
                           HorizontalAlignment="Stretch"
                           OpenPaneLength="200">
            <ui:NavigationView.MenuItems>
                <ui:NavigationViewItem IsSelected="True"
                                       Content="{locale:Locale SettingsTabGeneral}"
                                       Tag="UiPage"
                                       Icon="New" />
                <ui:NavigationViewItem
                    Content="{locale:Locale SettingsTabInput}"
                    Tag="InputPage"
                    Icon="Games" />
                <ui:NavigationViewItem
                    Content="{locale:Locale SettingsTabHotkeys}"
                    Tag="HotkeysPage"
                    Icon="Keyboard" />
                <ui:NavigationViewItem
                    Content="{locale:Locale SettingsTabSystem}"
                    Tag="SystemPage"
                    Icon="Settings" />
                <ui:NavigationViewItem
                    Content="{locale:Locale SettingsTabCpu}"
                    Tag="CpuPage">
                    <ui:NavigationViewItem.Icon>
                        <ui:FontIcon FontFamily="avares://Ryujinx.Ava/Assets/Fonts#Segoe Fluent Icons"
                                     Glyph="{controls:GlyphValueConverter Chip}" />
                    </ui:NavigationViewItem.Icon>
                </ui:NavigationViewItem>
                <ui:NavigationViewItem
                    Content="{locale:Locale SettingsTabGraphics}"
                    Tag="GraphicsPage"
                    Icon="Image" />
                <ui:NavigationViewItem
                    Content="{locale:Locale SettingsTabAudio}"
                    Icon="Audio"
                    Tag="AudioPage" />
                <ui:NavigationViewItem
                    Content="{locale:Locale SettingsTabNetwork}"
                    Tag="NetworkPage"
                    Icon="Globe" />
                <ui:NavigationViewItem
                    Content="{locale:Locale SettingsTabLogging}"
                    Tag="LoggingPage"
                    Icon="Document" />
            </ui:NavigationView.MenuItems>
        </ui:NavigationView>
        <StackPanel
            Grid.Row="2"
            Margin="10"
            Spacing="10"
            Orientation="Horizontal"
            HorizontalAlignment="Right">
            <Button Content="{locale:Locale SettingsButtonSave}" Click="SaveButton_Clicked" />
            <Button Content="{locale:Locale SettingsButtonClose}" Click="CloseButton_Clicked" />
            <Button Content="{locale:Locale SettingsButtonApply}"
                    Click="ApplyButton_Clicked" />
        </StackPanel>
    </Grid>
</window:StyleableWindow>