<UserControl
    x:Class="Ryujinx.Ava.UI.Views.Settings.SettingsCPUView"
    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"
    xmlns:helper="clr-namespace:Ryujinx.Common.Helper;assembly=Ryujinx.Common"
    xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
    mc:Ignorable="d"
    x:DataType="viewModels:SettingsViewModel">
    <Design.DataContext>
        <viewModels:SettingsViewModel />
    </Design.DataContext>
    <ScrollViewer
        Name="CpuPage"
        HorizontalAlignment="Stretch"
        VerticalAlignment="Stretch"
        HorizontalScrollBarVisibility="Disabled"
        VerticalScrollBarVisibility="Auto">
        <Border Classes="settings">
            <StackPanel
                Margin="10"
                HorizontalAlignment="Stretch"
                Orientation="Vertical"
                Spacing="10">
                <TextBlock Classes="h1" Text="{ext:Locale SettingsTabCpuCache}" />
                <StackPanel
                    Margin="10,0,0,0"
                    HorizontalAlignment="Stretch"
                    Orientation="Vertical">
                    <CheckBox IsChecked="{Binding EnablePptc}">
                        <TextBlock Text="{ext:Locale SettingsTabSystemEnablePptc}"
                                   ToolTip.Tip="{ext:Locale PptcToggleTooltip}" />
                    </CheckBox>
                    <CheckBox IsChecked="{Binding EnableLowPowerPptc}">
                        <TextBlock Text="{ext:Locale SettingsTabSystemEnableLowPowerPptc}"
                                   ToolTip.Tip="{ext:Locale LowPowerPptcToggleTooltip}" />
                    </CheckBox>
                </StackPanel>
                <Separator Height="1" />
                <TextBlock Classes="h1" Text="{ext:Locale SettingsTabCpuMemory}" />
                <StackPanel
                    Margin="10,0,0,0"
                    HorizontalAlignment="Stretch"
                    Orientation="Vertical">
                    <StackPanel Orientation="Horizontal">
                        <TextBlock VerticalAlignment="Center"
                                   Text="{ext:Locale SettingsTabSystemMemoryManagerMode}"
                                   ToolTip.Tip="{ext:Locale MemoryManagerTooltip}"
                                   Width="250" />
                        <ComboBox SelectedIndex="{Binding MemoryMode}"
                                  ToolTip.Tip="{ext:Locale MemoryManagerTooltip}"
                                  HorizontalContentAlignment="Left"
                                  Width="350">
                            <ComboBoxItem
                                ToolTip.Tip="{ext:Locale MemoryManagerSoftwareTooltip}">
                                <TextBlock
                                    Text="{ext:Locale SettingsTabSystemMemoryManagerModeSoftware}" />
                            </ComboBoxItem>
                            <ComboBoxItem
                                ToolTip.Tip="{ext:Locale MemoryManagerHostTooltip}">
                                <TextBlock Text="{ext:Locale SettingsTabSystemMemoryManagerModeHost}" />
                            </ComboBoxItem>
                            <ComboBoxItem
                                ToolTip.Tip="{ext:Locale MemoryManagerUnsafeTooltip}">
                                <TextBlock
                                    Text="{ext:Locale SettingsTabSystemMemoryManagerModeHostUnchecked}" />
                            </ComboBoxItem>
                        </ComboBox>
                    </StackPanel>
                    <CheckBox IsChecked="{Binding UseHypervisor}"
                              IsVisible="{x:Static helper:RunningPlatform.IsArmMac}"
                              ToolTip.Tip="{ext:Locale UseHypervisorTooltip}">
                        <TextBlock Text="{ext:Locale SettingsTabSystemUseHypervisor}"
                                   ToolTip.Tip="{ext:Locale UseHypervisorTooltip}" />
                    </CheckBox>
                </StackPanel>
                <Separator Height="1" />
                <StackPanel
                    Orientation="Vertical"
                    Spacing="5">
                    <TextBlock
                        Classes="h1"
                        Text="{ext:Locale SettingsTabSystemHacks}" />
                    <TextBlock
                        Foreground="{DynamicResource SecondaryTextColor}"
                        TextDecorations="Underline"
                        Text="{ext:Locale SettingsTabSystemHacksNote}" />
                </StackPanel>
                <StackPanel
                    Margin="10,0,0,0"
                    HorizontalAlignment="Stretch"
                    Orientation="Vertical">
                    <StackPanel Margin="0,0,0,10"
                                Orientation="Horizontal">
                        <TextBlock
                            VerticalAlignment="Center"
                            Background="Transparent"
                            Text="{ext:Locale SettingsTabSystemTurboMultiplier}"
                            ToolTip.Tip="{ext:Locale SettingsTabSystemTurboMultiplierToolTip}"
                            Width="250" />
                        <ui:NumberBox ToolTip.Tip="{ext:Locale SettingsTabSystemTurboMultiplierValueToolTip}"
                                      Value="{Binding TurboMultiplier}"
                                      Width="165"
                                      SmallChange="1.0"
                                      LargeChange="10"
                                      SimpleNumberFormat="F0"
                                      SpinButtonPlacementMode="Hidden"
                                      Minimum="50"
                                      Maximum="1000" />
                        <Slider Value="{Binding TurboMultiplier}"
                                ToolTip.Tip="{ext:Locale SettingsTabSystemTurboMultiplierValueToolTip}"
                                MinWidth="175"
                                Margin="10,-3,0,0"
                                Height="32"
                                Padding="0,-5"
                                TickFrequency="1"
                                IsSnapToTickEnabled="True"
                                LargeChange="10"
                                SmallChange="1"
                                VerticalAlignment="Center"
                                Minimum="50"
                                Maximum="1000" />
                        <TextBlock Margin="5,0"
                                   Width="40"
                                   Text="{Binding TurboMultiplierPercentageText}"/>
                    </StackPanel>
                </StackPanel>
            </StackPanel>
        </Border>
    </ScrollViewer>
</UserControl>
