<UserControl
    x:Class="Ryujinx.Ava.UI.Windows.DownloadableContentManagerWindow"
    xmlns="https://github.com/avaloniaui"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:viewModels="clr-namespace:Ryujinx.Ava.UI.ViewModels"
    xmlns:models="clr-namespace:Ryujinx.Ava.UI.Models"
    xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
    Width="500"
    Height="380"
    mc:Ignorable="d"
    x:CompileBindings="True"
    x:DataType="viewModels:DownloadableContentManagerViewModel"
    Focusable="True">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="*" />
            <RowDefinition Height="Auto" />
        </Grid.RowDefinitions>
        <Panel
            Margin="0 0 0 10"
            Grid.Row="0">
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="Auto" />
                    <ColumnDefinition Width="Auto" />
                    <ColumnDefinition Width="*" />
                </Grid.ColumnDefinitions>
                <TextBlock
                    Grid.Column="0"
                    Text="{Binding UpdateCount}" />
                <StackPanel
                    Margin="10 0"
                    Grid.Column="1"
                    Orientation="Horizontal">
                    <Button
                        Name="EnableAllButton"
                        MinWidth="90"
                        Margin="5"
                        Command="{ReflectionBinding EnableAll}">
                        <TextBlock Text="{locale:Locale DlcManagerEnableAllButton}" />
                    </Button>
                    <Button
                        Name="DisableAllButton"
                        MinWidth="90"
                        Margin="5"
                        Command="{ReflectionBinding DisableAll}">
                        <TextBlock Text="{locale:Locale DlcManagerDisableAllButton}" />
                    </Button>
                </StackPanel>
                <TextBox
                    Grid.Column="2"
                    MinHeight="27"
                    MaxHeight="27"
                    HorizontalAlignment="Stretch"
                    Watermark="{locale:Locale Search}"
                    Text="{Binding Search}" />
            </Grid>
        </Panel>
        <Border
            Grid.Row="1"
            Margin="0 0 0 24"
            HorizontalAlignment="Stretch"
            VerticalAlignment="Stretch"
            BorderBrush="{DynamicResource AppListHoverBackgroundColor}"
            BorderThickness="1"
            CornerRadius="5"
            Padding="2.5">
            <ListBox
                AutoScrollToSelectedItem="False"
                VirtualizationMode="None"
                SelectionMode="Multiple, Toggle"
                Background="Transparent"
                SelectionChanged="OnSelectionChanged"
                SelectedItems="{Binding SelectedDownloadableContents, Mode=TwoWay}"
                Items="{Binding Views}">
                <ListBox.DataTemplates>
                    <DataTemplate
                        DataType="models:DownloadableContentModel">
                        <Panel Margin="10">
                            <Grid>
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="*" />
                                    <ColumnDefinition Width="Auto" />
                                </Grid.ColumnDefinitions>
                                <Grid
                                    Grid.Column="0">
                                    <Grid.ColumnDefinitions>
                                        <ColumnDefinition Width="*"></ColumnDefinition>
                                        <ColumnDefinition Width="Auto"></ColumnDefinition>
                                    </Grid.ColumnDefinitions>
                                    <TextBlock
                                        Grid.Column="0"
                                        HorizontalAlignment="Left"
                                        VerticalAlignment="Center"
                                        MaxLines="2"
                                        TextWrapping="Wrap"
                                        TextTrimming="CharacterEllipsis"
                                        Text="{Binding FileName}" />
                                    <TextBlock
                                        Grid.Column="1"
                                        Margin="10 0"
                                        HorizontalAlignment="Left"
                                        VerticalAlignment="Center"
                                        Text="{Binding TitleId}" />
                                </Grid>
                                <StackPanel
                                    Grid.Column="1"
                                    Spacing="10"
                                    Orientation="Horizontal"
                                    HorizontalAlignment="Right">
                                    <Button
                                        VerticalAlignment="Center"
                                        HorizontalAlignment="Right"
                                        Padding="10"
                                        MinWidth="0"
                                        MinHeight="0"
                                        Click="OpenLocation">
                                        <ui:SymbolIcon
                                            Symbol="OpenFolder"
                                            HorizontalAlignment="Center"
                                            VerticalAlignment="Center" />
                                    </Button>
                                    <Button
                                        VerticalAlignment="Center"
                                        HorizontalAlignment="Right"
                                        Padding="10"
                                        MinWidth="0"
                                        MinHeight="0"
                                        Click="RemoveDLC">
                                        <ui:SymbolIcon
                                            Symbol="Cancel"
                                            HorizontalAlignment="Center"
                                            VerticalAlignment="Center" />
                                    </Button>
                                </StackPanel>
                            </Grid>
                        </Panel>
                    </DataTemplate>
                </ListBox.DataTemplates>
                <ListBox.Styles>
                    <Style Selector="ListBoxItem">
                        <Setter Property="Background" Value="Transparent" />
                    </Style>
                </ListBox.Styles>
            </ListBox>
        </Border>
        <Panel
            Grid.Row="2"
            HorizontalAlignment="Stretch">
            <StackPanel
                Orientation="Horizontal"
                Spacing="10"
                HorizontalAlignment="Left">
                <Button
                    Name="AddButton"
                    MinWidth="90"
                    Margin="5"
                    Command="{ReflectionBinding Add}">
                    <TextBlock Text="{locale:Locale SettingsTabGeneralAdd}" />
                </Button>
                <Button
                    Name="RemoveAllButton"
                    MinWidth="90"
                    Margin="5"
                    Command="{ReflectionBinding RemoveAll}">
                    <TextBlock Text="{locale:Locale DlcManagerRemoveAllButton}" />
                </Button>
            </StackPanel>
            <StackPanel
                Orientation="Horizontal"
                Spacing="10"
                HorizontalAlignment="Right">
                <Button
                    Name="SaveButton"
                    MinWidth="90"
                    Margin="5"
                    Click="SaveAndClose">
                    <TextBlock Text="{locale:Locale SettingsButtonSave}" />
                </Button>
                <Button
                    Name="CancelButton"
                    MinWidth="90"
                    Margin="5"
                    Click="Close">
                    <TextBlock Text="{locale:Locale InputDialogCancel}" />
                </Button>
            </StackPanel>
        </Panel>
    </Grid>
</UserControl>