<Window
    x:Class="Wabbajack.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:local="clr-namespace:Wabbajack"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    Title="Wabbajack"
    Width="1280"
    Height="960"
    MinWidth="1280"
    MinHeight="960"
    Closing="Window_Closing"
    Icon="Icons/wabbajack.ico"
    ResizeMode="CanResize"
    Style="{StaticResource {x:Type Window}}"
    WindowStyle="ToolWindow"
    mc:Ignorable="d">
    <Viewbox Stretch="Uniform">
        <Grid Margin="4,0,4,0">
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto" />
                <RowDefinition Height="435" />
                <RowDefinition Height="10" />
                <RowDefinition Height="Auto" />
                <RowDefinition Height="320" />
                <RowDefinition Height="Auto" />
                <RowDefinition Height="Auto" />
                <RowDefinition Height="Auto" />
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="640" />
                <ColumnDefinition Width="640" />
            </Grid.ColumnDefinitions>

            <StackPanel
                Grid.Row="0"
                Margin="0,8,0,8"
                Orientation="Horizontal">
                <TextBlock
                    FontSize="16"
                    FontWeight="Bold"
                    Text="{Binding Mode}" />
                <TextBlock FontSize="16" Text=" : " />
                <TextBlock FontSize="16" Text="{Binding ModListName}" />
            </StackPanel>

            <local:SlideshowView
                x:Name="Slideshow"
                Grid.Row="1"
                Grid.Column="0"
                Grid.ColumnSpan="2"
                Margin="0,0,0,4"
                DataContext="{Binding Slideshow}" />

            <ProgressBar
                Grid.Row="2"
                Grid.Column="0"
                Grid.ColumnSpan="2"
                Margin="1,0,1,0"
                Background="#444444"
                Maximum="100"
                Minimum="0"
                Value="{Binding QueueProgress}" />

            <!--  Log  -->
            <TextBlock
                Grid.Row="3"
                Margin="0,16,0,8"
                FontSize="14"
                Text="Log:" />
            <ListBox
                Grid.Row="4"
                Margin="0,0,2,0"
                local:AutoScrollBehavior.ScrollOnNewItem="True"
                ItemsSource="{Binding Log}" />
            <!--  End Log  -->

            <!--  Location  -->
            <Grid
                Grid.Row="5"
                Grid.RowSpan="2"
                Grid.Column="0"
                Margin="-4,10,2,10"
                HorizontalAlignment="Stretch">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="Auto" />
                    <ColumnDefinition Width="*" />
                    <ColumnDefinition Width="Auto" />
                </Grid.ColumnDefinitions>
                <Grid.RowDefinitions>
                    <RowDefinition />
                    <RowDefinition MinHeight="10" />
                    <RowDefinition />
                </Grid.RowDefinitions>
                <Label
                    Grid.Row="0"
                    Grid.Column="0"
                    Content="{Binding LocationLabel}" />
                <TextBox
                    Grid.Row="0"
                    Grid.Column="1"
                    IsEnabled="{Binding UIReady}"
                    Text="{Binding Location, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True, NotifyOnValidationError=True}" />
                <Button
                    Grid.Row="0"
                    Grid.Column="2"
                    MinWidth="80"
                    Command="{Binding ChangePathCommand}"
                    Content="Select"
                    IsEnabled="{Binding UIReady}" />
                <Label
                    Grid.Row="2"
                    Grid.Column="0"
                    Content="Download Location:" />
                <TextBox
                    Grid.Row="2"
                    Grid.Column="1"
                    IsEnabled="{Binding UIReady}"
                    Text="{Binding DownloadLocation}" />
                <Button
                    Grid.Row="2"
                    Grid.Column="2"
                    MinWidth="80"
                    Command="{Binding ChangeDownloadPathCommand}"
                    Content="Select"
                    IsEnabled="{Binding UIReady}" />
            </Grid>
            <!--  End Location  -->


            <!--  Work Queue Start  -->
            <TextBlock
                Grid.Row="3"
                Grid.Column="1"
                Margin="2,16,0,8"
                FontSize="14"
                Text="Work Queue:" />

            <ListBox
                Grid.Row="4"
                Grid.Column="1"
                Width="Auto"
                Margin="2,0,0,0"
                HorizontalAlignment="Stretch"
                ItemsSource="{Binding Status}">
                <ListBox.ItemTemplate>
                    <DataTemplate>
                        <Grid HorizontalAlignment="Stretch">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="Auto" />
                                <ColumnDefinition Width="Auto" />
                                <ColumnDefinition Width="Auto" />
                                <ColumnDefinition Width="Auto" />
                                <ColumnDefinition Width="Auto" />
                            </Grid.ColumnDefinitions>
                            <ProgressBar
                                Grid.Column="0"
                                Width="100"
                                Maximum="100"
                                Minimum="0"
                                Value="{Binding Progress, Mode=OneTime}">
                                <ProgressBar.Style>
                                    <Style TargetType="ProgressBar">
                                        <Setter Property="Visibility" Value="Visible" />
                                        <Style.Triggers>
                                            <DataTrigger Binding="{Binding Progress}" Value="0">
                                                <Setter Property="Visibility" Value="Collapsed" />
                                            </DataTrigger>
                                        </Style.Triggers>
                                    </Style>
                                </ProgressBar.Style>
                            </ProgressBar>
                            <TextBlock Grid.Column="1" Text=" CPU " />
                            <TextBlock Grid.Column="2" Text="{Binding ID}" />
                            <TextBlock Grid.Column="3" Text=" - " />
                            <TextBlock Grid.Column="4" Text="{Binding Msg}" />
                        </Grid>
                    </DataTemplate>
                </ListBox.ItemTemplate>
            </ListBox>
            <!--  Work Queue End  -->

            <Grid
                Grid.Row="5"
                Grid.RowSpan="2"
                Grid.Column="1"
                Margin="2,10,0,10">
                <Grid.RowDefinitions>
                    <RowDefinition Height="30" />
                    <RowDefinition Height="30" />
                </Grid.RowDefinitions>
                <Button
                    Grid.Row="0"
                    Margin="0,0,0,4"
                    Command="{Binding ShowReportCommand}"
                    Visibility="{Binding HTMLReport, Converter={StaticResource IsNotNullVisibilityConverter}}">
                    <TextBlock FontSize="13" FontWeight="Bold">View ModList Contents</TextBlock>
                </Button>
                <Button
                    Grid.Row="1"
                    Margin="0,4,0,0"
                    Command="{Binding BeginCommand}">
                    <TextBlock FontSize="13" FontWeight="Bold">Begin</TextBlock>
                </Button>
            </Grid>
        </Grid>
    </Viewbox>
</Window>