2024-02-05 23:08:37 -08:00
|
|
|
<Window 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"
|
|
|
|
xmlns:c="using:SourceGit.Converters"
|
|
|
|
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
|
|
|
x:Class="SourceGit.Views.Blame"
|
|
|
|
x:Name="me"
|
|
|
|
x:DataType="vm:Blame"
|
2024-02-21 22:51:31 -08:00
|
|
|
Icon="/App.ico"
|
2024-02-05 23:08:37 -08:00
|
|
|
Title="{DynamicResource Text.Blame}"
|
2024-03-14 03:23:36 -07:00
|
|
|
Background="Transparent"
|
2024-02-05 23:08:37 -08:00
|
|
|
WindowStartupLocation="CenterOwner"
|
|
|
|
MinWidth="1280" MinHeight="720"
|
2024-03-14 03:23:36 -07:00
|
|
|
ExtendClientAreaToDecorationsHint="True"
|
|
|
|
ExtendClientAreaChromeHints="NoChrome"
|
|
|
|
SystemDecorations="{OnPlatform Full, Linux=None}">
|
2024-02-05 23:08:37 -08:00
|
|
|
<Grid Margin="{Binding #me.WindowState, Converter={x:Static c:WindowStateConverters.ToContentMargin}}">
|
|
|
|
<Grid.RowDefinitions>
|
2024-03-07 19:13:53 -08:00
|
|
|
<RowDefinition Height="30"/>
|
2024-03-14 19:41:36 -07:00
|
|
|
<RowDefinition Height="24"/>
|
2024-02-05 23:08:37 -08:00
|
|
|
<RowDefinition Height="*"/>
|
|
|
|
</Grid.RowDefinitions>
|
|
|
|
|
2024-03-14 03:23:36 -07:00
|
|
|
<!-- Custom window shadow for Linux -->
|
2024-03-14 19:41:36 -07:00
|
|
|
<Border Grid.Row="0" Grid.RowSpan="3"
|
2024-03-14 03:23:36 -07:00
|
|
|
Background="{DynamicResource Brush.Window}"
|
|
|
|
Effect="drop-shadow(0 0 6 #A0000000)"
|
|
|
|
IsVisible="{OnPlatform False, Linux=True}"/>
|
|
|
|
|
|
|
|
<!-- TitleBar -->
|
2024-03-14 19:41:36 -07:00
|
|
|
<Grid Grid.Row="0" ColumnDefinitions="Auto,Auto,*,Auto">
|
2024-02-05 23:08:37 -08:00
|
|
|
<!-- Bottom border -->
|
2024-03-14 19:41:36 -07:00
|
|
|
<Border Grid.Column="0" Grid.ColumnSpan="4"
|
2024-03-07 19:13:53 -08:00
|
|
|
Background="{DynamicResource Brush.TitleBar}"
|
|
|
|
BorderThickness="0,0,0,1" BorderBrush="{DynamicResource Brush.Border2}"
|
2024-03-14 03:23:36 -07:00
|
|
|
DoubleTapped="MaximizeOrRestoreWindow"
|
|
|
|
PointerPressed="BeginMoveWindow"/>
|
2024-02-05 23:08:37 -08:00
|
|
|
|
|
|
|
<!-- Caption Buttons (macOS) -->
|
2024-03-07 19:13:53 -08:00
|
|
|
<Border Grid.Column="0" IsVisible="{OnPlatform False, macOS=True}">
|
2024-02-05 23:08:37 -08:00
|
|
|
<v:CaptionButtonsMacOS/>
|
|
|
|
</Border>
|
|
|
|
|
|
|
|
<!-- Icon -->
|
|
|
|
<Path Grid.Column="1" Margin="8,0,0,0" Width="12" Height="12" Data="{StaticResource Icons.Blame}"/>
|
|
|
|
|
2024-03-14 03:23:36 -07:00
|
|
|
<!-- Title -->
|
|
|
|
<TextBlock Grid.Column="2" Margin="8,0,0,0" Text="{DynamicResource Text.Blame}" FontWeight="Bold" IsHitTestVisible="False" VerticalAlignment="Center"/>
|
2024-02-05 23:08:37 -08:00
|
|
|
|
2024-03-14 03:23:36 -07:00
|
|
|
<!-- Caption Buttons (Windows/Linux) -->
|
2024-03-14 19:41:36 -07:00
|
|
|
<Border Grid.Column="3" IsVisible="{OnPlatform True, macOS=False}">
|
2024-02-05 23:08:37 -08:00
|
|
|
<v:CaptionButtons/>
|
|
|
|
</Border>
|
|
|
|
</Grid>
|
|
|
|
|
2024-03-14 19:41:36 -07:00
|
|
|
<!-- File -->
|
|
|
|
<Border Grid.Row="1" Padding="8,0" Background="{DynamicResource Brush.Window}">
|
|
|
|
<TextBlock Text="{Binding Title}" FontSize="12" VerticalAlignment="Center"/>
|
|
|
|
</Border>
|
|
|
|
|
2024-03-14 03:23:36 -07:00
|
|
|
<!-- Body -->
|
2024-03-14 19:41:36 -07:00
|
|
|
<Grid Grid.Row="2" Background="{DynamicResource Brush.Window}">
|
2024-02-05 23:08:37 -08:00
|
|
|
<!-- Blame View -->
|
|
|
|
<v:BlameTextEditor HorizontalScrollBarVisibility="Auto"
|
2024-03-14 19:41:36 -07:00
|
|
|
VerticalScrollBarVisibility="Auto"
|
|
|
|
Margin="4,0,4,4"
|
2024-02-05 23:08:37 -08:00
|
|
|
BorderBrush="{DynamicResource Brush.Border2}"
|
2024-03-14 19:41:36 -07:00
|
|
|
BorderThickness="1"
|
2024-03-04 05:23:17 -08:00
|
|
|
Background="{DynamicResource Brush.Contents}"
|
2024-02-05 23:08:37 -08:00
|
|
|
Foreground="{DynamicResource Brush.FG1}"
|
2024-03-21 03:02:06 -07:00
|
|
|
FontFamily="{Binding Source={x:Static vm:Preference.Instance}, Path=MonospaceFont, Converter={x:Static c:StringConverters.ToFontFamily}}"
|
2024-02-05 23:08:37 -08:00
|
|
|
FontSize="12"
|
|
|
|
BlameData="{Binding Data}"/>
|
|
|
|
|
|
|
|
<!-- Not supported mask (for binary files) -->
|
|
|
|
<StackPanel Orientation="Vertical"
|
|
|
|
HorizontalAlignment="Center" VerticalAlignment="Center"
|
|
|
|
IsVisible="{Binding IsBinary}">
|
|
|
|
<Path Width="64" Height="64" Fill="{DynamicResource Brush.FG2}" Data="{StaticResource Icons.Error}"/>
|
|
|
|
<TextBlock Margin="0,16,0,0" FontSize="18" FontWeight="Bold" HorizontalAlignment="Center" Foreground="{DynamicResource Brush.FG2}" Text="{DynamicResource Text.BlameTypeNotSupported}"/>
|
|
|
|
</StackPanel>
|
|
|
|
|
2024-03-07 19:13:53 -08:00
|
|
|
<!-- Loading -->
|
|
|
|
<Path Width="48" Height="48"
|
|
|
|
Classes="rotating"
|
|
|
|
Data="{StaticResource Icons.Loading}"
|
|
|
|
IsVisible="{Binding Data, Converter={x:Static ObjectConverters.IsNull}}"/>
|
2024-02-05 23:08:37 -08:00
|
|
|
</Grid>
|
2024-03-14 03:23:36 -07:00
|
|
|
|
|
|
|
<!-- Custom window sizer for Linux -->
|
2024-03-14 19:41:36 -07:00
|
|
|
<Grid Grid.Row="0" Grid.RowSpan="3" IsVisible="{OnPlatform False, Linux=True}">
|
2024-03-14 03:23:36 -07:00
|
|
|
<Border Width="4" Height="4"
|
|
|
|
Background="Transparent"
|
|
|
|
HorizontalAlignment="Left" VerticalAlignment="Top"
|
|
|
|
Cursor="TopLeftCorner"
|
|
|
|
Tag="{x:Static WindowEdge.NorthWest}"
|
|
|
|
PointerPressed="CustomResizeWindow"/>
|
|
|
|
|
|
|
|
<Border Height="4" Margin="4,0"
|
|
|
|
Background="Transparent"
|
|
|
|
HorizontalAlignment="Stretch" VerticalAlignment="Top"
|
|
|
|
Cursor="TopSide"
|
|
|
|
Tag="{x:Static WindowEdge.North}"
|
|
|
|
PointerPressed="CustomResizeWindow"/>
|
|
|
|
|
|
|
|
<Border Width="4" Height="4"
|
|
|
|
Background="Transparent"
|
|
|
|
HorizontalAlignment="Right" VerticalAlignment="Top"
|
|
|
|
Cursor="TopRightCorner"
|
|
|
|
Tag="{x:Static WindowEdge.NorthEast}"
|
|
|
|
PointerPressed="CustomResizeWindow"/>
|
|
|
|
|
|
|
|
<Border Width="4" Margin="0,4"
|
|
|
|
Background="Transparent"
|
|
|
|
HorizontalAlignment="Left" VerticalAlignment="Stretch"
|
|
|
|
Cursor="LeftSide"
|
|
|
|
Tag="{x:Static WindowEdge.West}"
|
|
|
|
PointerPressed="CustomResizeWindow"/>
|
|
|
|
|
|
|
|
<Border Width="4" Margin="0,4"
|
|
|
|
Background="Transparent"
|
|
|
|
HorizontalAlignment="Right" VerticalAlignment="Stretch"
|
|
|
|
Cursor="RightSide"
|
|
|
|
Tag="{x:Static WindowEdge.East}"
|
|
|
|
PointerPressed="CustomResizeWindow"/>
|
|
|
|
|
|
|
|
<Border Width="4" Height="4"
|
|
|
|
Background="Transparent"
|
|
|
|
HorizontalAlignment="Left" VerticalAlignment="Bottom"
|
|
|
|
Cursor="BottomLeftCorner"
|
|
|
|
Tag="{x:Static WindowEdge.SouthWest}"
|
|
|
|
PointerPressed="CustomResizeWindow"/>
|
|
|
|
|
|
|
|
<Border Height="4" Margin="4,0"
|
|
|
|
Background="Transparent"
|
|
|
|
HorizontalAlignment="Stretch" VerticalAlignment="Bottom"
|
|
|
|
Cursor="BottomSide"
|
|
|
|
Tag="{x:Static WindowEdge.South}"
|
|
|
|
PointerPressed="CustomResizeWindow"/>
|
|
|
|
|
|
|
|
<Border Width="4" Height="4"
|
|
|
|
Background="Transparent"
|
|
|
|
HorizontalAlignment="Right" VerticalAlignment="Bottom"
|
|
|
|
Cursor="BottomRightCorner"
|
|
|
|
Tag="{x:Static WindowEdge.SouthEast}"
|
|
|
|
PointerPressed="CustomResizeWindow"/>
|
|
|
|
</Grid>
|
2024-02-05 23:08:37 -08:00
|
|
|
</Grid>
|
|
|
|
</Window>
|