<UserControl
    x:Class="Wabbajack.CompilerView"
    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:mahapps="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:wabbacommon="clr-namespace:Wabbajack.Common;assembly=Wabbajack.Common"
    d:DataContext="{d:DesignInstance local:CompilerVM}"
    d:DesignHeight="450"
    d:DesignWidth="800"
    mc:Ignorable="d">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="45" />
            <RowDefinition Height="4*" />
            <RowDefinition Height="*" MinHeight="150" />
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="5" />
            <ColumnDefinition Width="2*" />
            <ColumnDefinition Width="1" />
            <ColumnDefinition Width="5*" />
            <ColumnDefinition Width="5" />
        </Grid.ColumnDefinitions>
        <local:BorderFadeDownView
            Grid.Row="1"
            Grid.RowSpan="2"
            Grid.Column="0" />
        <local:BorderFadeDownView
            Grid.Row="1"
            Grid.RowSpan="2"
            Grid.Column="4" />
        <local:DetailImageView
            Title="{Binding CurrentModlistSettings.ModListName}"
            Grid.Row="1"
            Grid.Column="3"
            Author="{Binding CurrentModlistSettings.AuthorText}"
            BorderThickness="0"
            Description="{Binding CurrentModlistSettings.Description}"
            Image="{Binding Image}" />
        <Rectangle
            x:Name="ControlVerticalThinSeparator"
            Grid.Row="1"
            Grid.Column="2"
            Width="1"
            HorizontalAlignment="Center"
            Fill="{StaticResource DarkBackgroundBrush}"
            SnapsToDevicePixels="True" />
        <!--  Comes after image area so shadow can overlay  -->
        <local:TopProgressView
            Title="{Binding CurrentModlistSettings.ModListName, Mode=OneWay}"
            Grid.Row="0"
            Grid.RowSpan="2"
            Grid.Column="0"
            Grid.ColumnSpan="5"
            OverhangShadow="True"
            ProgressPercent="{Binding ProgressPercent}"
            StatePrefixTitle="Compiling" />
        <ScrollViewer
            Grid.Row="1"
            Grid.Column="1"
            Margin="5"
            Background="Transparent"
            HorizontalScrollBarVisibility="Disabled"
            IsEnabled="{Binding Compiling, Converter={StaticResource InverseBooleanConverter}}"
            VerticalScrollBarVisibility="Auto">
            <StackPanel
                Margin="0,5,0,0"
                Background="Transparent"
                DataContext="{Binding CurrentModlistSettings}"
                Orientation="Vertical">
                <StackPanel.Resources>
                    <Thickness
                        x:Key="TitleMargin"
                        Bottom="1"
                        Left="5" />
                    <Style
                        x:Key="ValueStyle"
                        BasedOn="{StaticResource MainTextBoxStyle}"
                        TargetType="TextBox">
                        <Setter Property="MaxLength" Value="50" />
                        <Setter Property="AcceptsTab" Value="False" />
                        <Setter Property="FontSize" Value="15" />
                        <Setter Property="Margin" Value="0,0,0,6" />
                    </Style>
                    <Style
                        x:Key="PickerStyle"
                        BasedOn="{StaticResource MainFilePickerStyle}"
                        TargetType="local:FilePicker">
                        <Setter Property="Margin" Value="0,0,0,6" />
                    </Style>
                </StackPanel.Resources>
                <TextBlock Margin="{StaticResource TitleMargin}" Text="ModList Name" />
                <TextBox Style="{StaticResource ValueStyle}" Text="{Binding ModListName, UpdateSourceTrigger=PropertyChanged}" />
                <TextBlock Margin="{StaticResource TitleMargin}" Text="Author" />
                <TextBox Style="{StaticResource ValueStyle}" Text="{Binding AuthorText, UpdateSourceTrigger=PropertyChanged}" />
                <TextBlock Margin="{StaticResource TitleMargin}" Text="Description" />
                <TextBox
                    Height="150"
                    mahapps:TextBoxHelper.Watermark="(700 characters max)"
                    AcceptsReturn="True"
                    AcceptsTab="False"
                    MaxLength="700"
                    Style="{StaticResource ValueStyle}"
                    Text="{Binding Description, UpdateSourceTrigger=PropertyChanged}"
                    TextWrapping="Wrap" />
                <TextBlock Margin="{StaticResource TitleMargin}" Text="Image" />
                <local:FilePicker
                    DataContext="{Binding ImagePath}"
                    Style="{StaticResource PickerStyle}"
                    ToolTip="Path to an image to display for the modlist." />
                <TextBlock Margin="{StaticResource TitleMargin}" Text="Website" />
                <TextBox Style="{StaticResource ValueStyle}" Text="{Binding Website}" />
                <TextBlock
                    Margin="{StaticResource TitleMargin}"
                    Text="Readme Path"
                    ToolTip="Path to a readme file." />
                <local:FilePicker
                    DataContext="{Binding ReadMeText}"
                    Style="{StaticResource PickerStyle}"
                    ToolTip="Path to a readme file." />
            </StackPanel>
        </ScrollViewer>
        <Rectangle
            x:Name="ControlTopThinSeparator"
            Grid.Row="2"
            Grid.Column="0"
            Grid.ColumnSpan="5"
            Height="1"
            Margin="25,0"
            VerticalAlignment="Top"
            Fill="{StaticResource DarkBackgroundBrush}"
            SnapsToDevicePixels="True" />
        <Grid
            Grid.Row="2"
            Grid.Column="0"
            Grid.ColumnSpan="5"
            MaxWidth="1000">
            <Border
                x:Name="ConfigurationBackgroundHaze"
                Height="120"
                Background="{StaticResource PrimaryVariantBrush}"
                CornerRadius="50"
                Opacity="0.10">
                <Border.Effect>
                    <BlurEffect Radius="45" />
                </Border.Effect>
            </Border>
            <Grid
                Margin="35,0,35,0"
                VerticalAlignment="Center"
                ClipToBounds="False"
                Visibility="{Binding Compiling, Converter={StaticResource bool2VisibilityConverter}, ConverterParameter=False}">
                <Grid.RowDefinitions>
                    <RowDefinition Height="*" />
                    <RowDefinition Height="Auto" />
                    <RowDefinition Height="*" />
                </Grid.RowDefinitions>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="Auto" />
                    <ColumnDefinition Width="*" />
                    <ColumnDefinition Width="20" />
                    <ColumnDefinition Width="Auto" />
                </Grid.ColumnDefinitions>
                <Grid
                    Grid.Row="0"
                    Grid.RowSpan="5"
                    Grid.Column="0"
                    Margin="15"
                    VerticalAlignment="Center">
                    <Grid.RowDefinitions>
                        <RowDefinition Height="Auto" />
                        <RowDefinition Height="Auto" />
                    </Grid.RowDefinitions>
                    <local:ImageRadioButtonView
                        Grid.Row="0"
                        Height="35"
                        Margin="4"
                        IsChecked="{Binding SelectedCompilerType, Converter={StaticResource EqualsToBoolConverter}, ConverterParameter={x:Static wabbacommon:ModManager.MO2}}">
                        <local:ImageRadioButtonView.Image>
                            <BitmapImage UriSource="../../Resources/MO2Button.png" />
                        </local:ImageRadioButtonView.Image>
                    </local:ImageRadioButtonView>
                    <local:ImageRadioButtonView
                        Grid.Row="1"
                        Height="35"
                        Margin="4"
                        IsChecked="{Binding SelectedCompilerType, Converter={StaticResource EqualsToBoolConverter}, ConverterParameter={x:Static wabbacommon:ModManager.Vortex}}">
                        <local:ImageRadioButtonView.Image>
                            <BitmapImage UriSource="../../Resources/VortexButton.png" />
                        </local:ImageRadioButtonView.Image>
                    </local:ImageRadioButtonView>
                </Grid>
                <ContentPresenter
                    Grid.Row="1"
                    Grid.Column="1"
                    Content="{Binding Compiler}">
                    <ContentPresenter.Resources>
                        <DataTemplate DataType="{x:Type local:MO2CompilerVM}">
                            <local:MO2CompilerConfigView />
                        </DataTemplate>
                        <DataTemplate DataType="{x:Type local:VortexCompilerVM}">
                            <local:VortexCompilerConfigView />
                        </DataTemplate>
                    </ContentPresenter.Resources>
                </ContentPresenter>
                <local:BeginButton
                    Grid.Row="0"
                    Grid.RowSpan="3"
                    Grid.Column="5"
                    Command="{Binding Compiler.BeginCommand}" />
            </Grid>
        </Grid>
        <Grid
            Grid.Row="2"
            Grid.Column="0"
            Grid.ColumnSpan="5"
            Margin="5"
            Visibility="{Binding Compiling, Converter={StaticResource bool2VisibilityConverter}, FallbackValue=Hidden}">
            <local:LogCpuView DataContext="{Binding MWVM}" />
        </Grid>
    </Grid>
</UserControl>
