<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:controls="clr-namespace:Ryujinx.Ava.UI.Controls"
    xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
    xmlns:helpers="clr-namespace:Ryujinx.Ava.UI.Helpers"
    xmlns:ext="clr-namespace:Ryujinx.Ava.Common.Markup"
    xmlns:viewModels="clr-namespace:Ryujinx.Ava.UI.ViewModels"
    mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
    x:Class="Ryujinx.Ava.UI.Views.Main.MainViewControls"
    x:DataType="viewModels:MainWindowViewModel">
    <Design.DataContext>
        <viewModels:MainWindowViewModel />
    </Design.DataContext>
    <DockPanel
        Margin="0,0,0,5"
        Height="35"
        HorizontalAlignment="Stretch">
        <Button
            Width="40"
            MinWidth="40"
            Margin="5,2,0,2"
            VerticalAlignment="Stretch"
            Command="{Binding SetListMode}"
            IsEnabled="{Binding IsGrid}">
            <ui:FontIcon
                Margin="0"
                HorizontalAlignment="Stretch"
                VerticalAlignment="Center"
                FontFamily="avares://FluentAvalonia/Fonts#Symbols"
                Glyph="{helpers:GlyphValueConverter List}" />
        </Button>
        <Button
            Width="40"
            MinWidth="40"
            Margin="5,2,5,2"
            VerticalAlignment="Stretch"
            Command="{Binding SetGridMode}"
            IsEnabled="{Binding IsList}">
            <ui:FontIcon
                Margin="0"
                HorizontalAlignment="Stretch"
                VerticalAlignment="Center"
                FontFamily="avares://FluentAvalonia/Fonts#Symbols"
                Glyph="{helpers:GlyphValueConverter Grid}" />
        </Button>
        <controls:SliderScroll
            Width="150"
            Height="35"
            Margin="5,-12,10,0"
            VerticalAlignment="Center"
            IsSnapToTickEnabled="True"
            SmallChange="1"
            Maximum="4"
            Minimum="1"
            TickFrequency="1"
            Value="{Binding GridSizeScale}" />
        <CheckBox
            Margin="0,-2,0,0"
            VerticalAlignment="Center"
            IsChecked="{Binding ShowNames, Mode=TwoWay}"
            IsVisible="{Binding IsGrid}">
            <TextBlock Text="{ext:Locale CommonShowNames}" />
        </CheckBox>
        <TextBox
            Name="SearchBox"
            MinWidth="200"
            Margin="5,0,5,0"
            HorizontalAlignment="Right"
            VerticalAlignment="Center"
            DockPanel.Dock="Right"
            KeyUp="SearchBox_OnKeyUp"
            Text="{Binding SearchText}"
            Watermark="{ext:Locale MenuSearch}" />
        <DropDownButton
            Width="150"
            HorizontalAlignment="Right"
            VerticalAlignment="Center"
            Content="{Binding SortName}"
            DockPanel.Dock="Right">
            <DropDownButton.Flyout>
                <Flyout Placement="Bottom">
                    <StackPanel
                        Margin="0"
                        HorizontalAlignment="Stretch"
                        Orientation="Vertical">
                        <StackPanel>
                            <RadioButton
                                Checked="Sort_Checked"
                                Content="{ext:Locale CommonFavorite}"
                                GroupName="Sort"
                                IsChecked="{Binding IsSortedByFavorite, Mode=OneTime}"
                                Tag="Favorite" />
                            <RadioButton
                                Checked="Sort_Checked"
                                Content="{ext:Locale GameListHeaderApplication}"
                                GroupName="Sort"
                                IsChecked="{Binding IsSortedByTitle, Mode=OneTime}"
                                Tag="Title" />
                            <RadioButton
                                Checked="Sort_Checked"
                                Content="{ext:Locale DlcManagerTableHeadingTitleIdLabel}"
                                GroupName="Sort"
                                IsChecked="{Binding IsSortedByTitleId, Mode=OneTime}"
                                Tag="TitleId" />
                            <RadioButton
                                Checked="Sort_Checked"
                                Content="{ext:Locale GameListSortDeveloper}"
                                GroupName="Sort"
                                IsChecked="{Binding IsSortedByDeveloper, Mode=OneTime}"
                                Tag="Developer" />
                            <RadioButton
                                Checked="Sort_Checked"
                                Content="{ext:Locale GameListSortTimePlayed}"
                                GroupName="Sort"
                                IsChecked="{Binding IsSortedByTimePlayed, Mode=OneTime}"
                                Tag="TotalTimePlayed" />
                            <RadioButton
                                Checked="Sort_Checked"
                                Content="{ext:Locale GameListSortLastPlayed}"
                                GroupName="Sort"
                                IsChecked="{Binding IsSortedByLastPlayed, Mode=OneTime}"
                                Tag="LastPlayed" />
                            <RadioButton
                                Checked="Sort_Checked"
                                Content="{ext:Locale GameListSortFileExtension}"
                                GroupName="Sort"
                                IsChecked="{Binding IsSortedByType, Mode=OneTime}"
                                Tag="FileType" />
                            <RadioButton
                                Checked="Sort_Checked"
                                Content="{ext:Locale GameListSortFileSize}"
                                GroupName="Sort"
                                IsChecked="{Binding IsSortedBySize, Mode=OneTime}"
                                Tag="FileSize" />
                            <RadioButton
                                Checked="Sort_Checked"
                                Content="{ext:Locale GameListSortPath}"
                                GroupName="Sort"
                                IsChecked="{Binding IsSortedByPath, Mode=OneTime}"
                                Tag="Path" />
                        </StackPanel>
                        <Border
                            Width="60"
                            Height="2"
                            Margin="5"
                            HorizontalAlignment="Stretch"
                            BorderBrush="White"
                            BorderThickness="0,1,0,0">
                            <Separator Height="0" HorizontalAlignment="Stretch" />
                        </Border>
                        <RadioButton
                            Checked="Order_Checked"
                            Content="{ext:Locale OrderAscending}"
                            GroupName="Order"
                            IsChecked="{Binding IsAscending, Mode=OneTime}"
                            Tag="Ascending" />
                        <RadioButton
                            Checked="Order_Checked"
                            Content="{ext:Locale OrderDescending}"
                            GroupName="Order"
                            IsChecked="{Binding !IsAscending, Mode=OneTime}"
                            Tag="Descending" />
                    </StackPanel>
                </Flyout>
            </DropDownButton.Flyout>
        </DropDownButton>
    </DockPanel>
</UserControl>
