<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:m="using:SourceGit.Models"
             xmlns:vm="using:SourceGit.ViewModels"
             xmlns:v="using:SourceGit.Views"
             mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
             x:Class="SourceGit.Views.TextDiffView"
             x:Name="ThisControl"
             Background="{DynamicResource Brush.Contents}">
  <UserControl.DataTemplates>
    <DataTemplate DataType="m:TextDiff">
      <v:CombinedTextDiffPresenter FileName="{Binding File}"
                                   Foreground="{DynamicResource Brush.FG1}"
                                   LineBrush="{DynamicResource Brush.Border2}"
                                   EmptyContentBackground="{DynamicResource Brush.Diff.EmptyBG}"
                                   AddedContentBackground="{DynamicResource Brush.Diff.AddedBG}"
                                   DeletedContentBackground="{DynamicResource Brush.Diff.DeletedBG}"
                                   AddedHighlightBrush="{DynamicResource Brush.Diff.AddedHighlight}"
                                   DeletedHighlightBrush="{DynamicResource Brush.Diff.DeletedHighlight}"
                                   IndicatorForeground="{DynamicResource Brush.FG2}"
                                   FontFamily="{Binding Source={x:Static vm:Preference.Instance}, Path=MonospaceFont}"
                                   UseSyntaxHighlighting="{Binding Source={x:Static vm:Preference.Instance}, Path=UseSyntaxHighlighting}"
                                   WordWrap="{Binding Source={x:Static vm:Preference.Instance}, Path=EnableDiffViewWordWrap}"/>
    </DataTemplate>

    <DataTemplate DataType="vm:TwoSideTextDiff">
      <Grid ColumnDefinitions="*,1,*">
        <v:SingleSideTextDiffPresenter Grid.Column="0"
                                       IsOld="True"
                                       FileName="{Binding File}"
                                       Foreground="{DynamicResource Brush.FG1}"
                                       LineBrush="{DynamicResource Brush.Border2}"
                                       EmptyContentBackground="{DynamicResource Brush.Diff.EmptyBG}"
                                       AddedContentBackground="{DynamicResource Brush.Diff.AddedBG}"
                                       DeletedContentBackground="{DynamicResource Brush.Diff.DeletedBG}"
                                       AddedHighlightBrush="{DynamicResource Brush.Diff.AddedHighlight}"
                                       DeletedHighlightBrush="{DynamicResource Brush.Diff.DeletedHighlight}"
                                       IndicatorForeground="{DynamicResource Brush.FG2}"
                                       FontFamily="{Binding Source={x:Static vm:Preference.Instance}, Path=MonospaceFont}"
                                       UseSyntaxHighlighting="{Binding Source={x:Static vm:Preference.Instance}, Path=UseSyntaxHighlighting}"
                                       WordWrap="{Binding Source={x:Static vm:Preference.Instance}, Path=EnableDiffViewWordWrap}"/>

        <Rectangle Grid.Column="1" Fill="{DynamicResource Brush.Border2}" Width="1" HorizontalAlignment="Center" VerticalAlignment="Stretch"/>

        <v:SingleSideTextDiffPresenter Grid.Column="2"
                                       IsOld="False"
                                       FileName="{Binding File}"
                                       Foreground="{DynamicResource Brush.FG1}"
                                       LineBrush="{DynamicResource Brush.Border2}"
                                       EmptyContentBackground="{DynamicResource Brush.Diff.EmptyBG}"
                                       AddedContentBackground="{DynamicResource Brush.Diff.AddedBG}"
                                       DeletedContentBackground="{DynamicResource Brush.Diff.DeletedBG}"
                                       AddedHighlightBrush="{DynamicResource Brush.Diff.AddedHighlight}"
                                       DeletedHighlightBrush="{DynamicResource Brush.Diff.DeletedHighlight}"
                                       IndicatorForeground="{DynamicResource Brush.FG2}"
                                       FontFamily="{Binding Source={x:Static vm:Preference.Instance}, Path=MonospaceFont}"
                                       UseSyntaxHighlighting="{Binding Source={x:Static vm:Preference.Instance}, Path=UseSyntaxHighlighting}"
                                       WordWrap="{Binding Source={x:Static vm:Preference.Instance}, Path=EnableDiffViewWordWrap}"/>
      </Grid>
    </DataTemplate>
  </UserControl.DataTemplates>
</UserControl>
