mirror of
https://github.com/sourcegit-scm/sourcegit.git
synced 2024-12-26 21:17:20 -08:00
111 lines
5.1 KiB
Text
111 lines
5.1 KiB
Text
|
<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:c="using:SourceGit.Converters"
|
||
|
xmlns:v="using:SourceGit.Views"
|
||
|
xmlns:vm="using:SourceGit.ViewModels"
|
||
|
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
||
|
x:Class="SourceGit.Views.BranchTree"
|
||
|
x:Name="ThisControl">
|
||
|
<DataGrid x:Name="BranchesPresenter"
|
||
|
ItemsSource="{Binding #ThisControl.Rows}"
|
||
|
Height="{Binding #ThisControl.Height}"
|
||
|
Background="Transparent"
|
||
|
RowHeight="24"
|
||
|
CanUserReorderColumns="False"
|
||
|
CanUserResizeColumns="False"
|
||
|
CanUserSortColumns="False"
|
||
|
HorizontalAlignment="Stretch"
|
||
|
HorizontalScrollBarVisibility="Disabled"
|
||
|
VerticalScrollBarVisibility="Auto"
|
||
|
HeadersVisibility="None"
|
||
|
SelectionChanged="OnNodesSelectionChanged"
|
||
|
ContextRequested="OnTreeContextRequested">
|
||
|
<DataGrid.Styles>
|
||
|
<Style Selector="DataGridRow" x:DataType="vm:BranchTreeNode">
|
||
|
<Setter Property="CornerRadius" Value="{Binding CornerRadius}" />
|
||
|
</Style>
|
||
|
|
||
|
<Style Selector="DataGridRow /template/ Border#RowBorder">
|
||
|
<Setter Property="ClipToBounds" Value="True" />
|
||
|
</Style>
|
||
|
|
||
|
<Style Selector="Grid.repository_leftpanel DataGridRow:pointerover /template/ Rectangle#BackgroundRectangle">
|
||
|
<Setter Property="Fill" Value="{DynamicResource Brush.AccentHovered}" />
|
||
|
<Setter Property="Opacity" Value=".5"/>
|
||
|
</Style>
|
||
|
<Style Selector="Grid.repository_leftpanel DataGridRow:selected /template/ Rectangle#BackgroundRectangle">
|
||
|
<Setter Property="Fill" Value="{DynamicResource Brush.AccentHovered}" />
|
||
|
<Setter Property="Opacity" Value="1"/>
|
||
|
</Style>
|
||
|
<Style Selector="Grid.repository_leftpanel:focus-within DataGridRow:selected /template/ Rectangle#BackgroundRectangle">
|
||
|
<Setter Property="Fill" Value="{DynamicResource Brush.Accent}" />
|
||
|
<Setter Property="Opacity" Value=".65"/>
|
||
|
</Style>
|
||
|
<Style Selector="Grid.repository_leftpanel:focus-within DataGridRow:selected:pointerover /template/ Rectangle#BackgroundRectangle">
|
||
|
<Setter Property="Fill" Value="{DynamicResource Brush.Accent}" />
|
||
|
<Setter Property="Opacity" Value=".8"/>
|
||
|
</Style>
|
||
|
</DataGrid.Styles>
|
||
|
|
||
|
<DataGrid.Columns>
|
||
|
<DataGridTemplateColumn Width="*">
|
||
|
<DataGridTemplateColumn.CellTemplate>
|
||
|
<DataTemplate x:DataType="vm:BranchTreeNode">
|
||
|
<Grid Height="24"
|
||
|
Margin="{Binding Depth, Converter={x:Static c:IntConverters.ToTreeMargin}}"
|
||
|
ColumnDefinitions="16,20,*,Auto,Auto"
|
||
|
Background="Transparent"
|
||
|
DoubleTapped="OnDoubleTappedBranchNode"
|
||
|
ToolTip.Tip="{Binding Tooltip}">
|
||
|
|
||
|
<!-- Tree Expander -->
|
||
|
<ToggleButton Grid.Column="0"
|
||
|
Classes="tree_expander"
|
||
|
Focusable="False"
|
||
|
HorizontalAlignment="Center"
|
||
|
IsChecked="{Binding IsExpanded}"
|
||
|
IsHitTestVisible="False"
|
||
|
IsVisible="{Binding !IsBranch}"/>
|
||
|
|
||
|
<!-- Icon -->
|
||
|
<v:BranchTreeNodeIcon Grid.Column="1"
|
||
|
Node="{Binding}"
|
||
|
IsExpanded="{Binding IsExpanded}"/>
|
||
|
|
||
|
<!-- Name -->
|
||
|
<TextBlock Grid.Column="2"
|
||
|
Text="{Binding Name}"
|
||
|
Classes="monospace"
|
||
|
FontWeight="{Binding NameFontWeight}"/>
|
||
|
|
||
|
<!-- Tracking status -->
|
||
|
<Border Grid.Column="3"
|
||
|
Margin="8,0"
|
||
|
Height="18"
|
||
|
CornerRadius="9"
|
||
|
VerticalAlignment="Center"
|
||
|
Background="{DynamicResource Brush.Badge}"
|
||
|
IsVisible="{Binding IsUpstreamTrackStatusVisible}">
|
||
|
<TextBlock Classes="monospace" FontSize="10" HorizontalAlignment="Center" Margin="9,0" Text="{Binding UpstreamTrackStatus}" Foreground="{DynamicResource Brush.BadgeFG}"/>
|
||
|
</Border>
|
||
|
|
||
|
<!-- Filter Toggle Button -->
|
||
|
<ToggleButton Grid.Column="4"
|
||
|
Classes="filter"
|
||
|
Margin="0,0,8,0"
|
||
|
Background="Transparent"
|
||
|
IsCheckedChanged="OnToggleFilter"
|
||
|
IsVisible="{Binding IsBranch}"
|
||
|
IsChecked="{Binding IsFiltered}"
|
||
|
ToolTip.Tip="{DynamicResource Text.Filter}"/>
|
||
|
</Grid>
|
||
|
</DataTemplate>
|
||
|
</DataGridTemplateColumn.CellTemplate>
|
||
|
</DataGridTemplateColumn>
|
||
|
</DataGrid.Columns>
|
||
|
</DataGrid>
|
||
|
</UserControl>
|
||
|
|