<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:vm="using:SourceGit.ViewModels"
             xmlns:c="using:SourceGit.Converters"
             mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
             x:Class="SourceGit.Views.LauncherTabsSelector"
             x:Name="ThisControl">
  <Grid RowDefinitions="28,Auto">
    <TextBox Grid.Row="0"
             Height="24"
             Margin="4,0"
             BorderThickness="1"
             CornerRadius="12"
             Text="{Binding #ThisControl.SearchFilter, Mode=TwoWay}"
             BorderBrush="{DynamicResource Brush.Border2}"
             VerticalContentAlignment="Center">
      <TextBox.InnerLeftContent>
        <Path Width="14" Height="14"
              Margin="6,0,0,0"
              Fill="{DynamicResource Brush.FG2}"
              Data="{StaticResource Icons.Search}"/>
      </TextBox.InnerLeftContent>

      <TextBox.InnerRightContent>
        <Button Classes="icon_button"
                Width="16"
                Margin="0,0,6,0"
                Click="OnClearSearchFilter"
                IsVisible="{Binding #ThisControl.SearchFilter, Converter={x:Static StringConverters.IsNotNullOrEmpty}}"
                HorizontalAlignment="Right">
          <Path Width="14" Height="14"
                Margin="0,1,0,0"
                Fill="{DynamicResource Brush.FG1}"
                Data="{StaticResource Icons.Clear}"/>
        </Button>
      </TextBox.InnerRightContent>
    </TextBox>

    <ListBox Grid.Row="1"
             Width="200"
             MaxHeight="400"
             Margin="0,4,0,0"
             Background="Transparent"
             SelectionMode="Single"
             ScrollViewer.HorizontalScrollBarVisibility="Disabled"
             ScrollViewer.VerticalScrollBarVisibility="Auto"
             ItemsSource="{Binding #ThisControl.VisiblePages}"
             SelectionChanged="OnPageSelectionChanged">
      <ListBox.Styles>
        <Style Selector="ListBoxItem">
          <Setter Property="Padding" Value="0"/>
          <Setter Property="MinHeight" Value="26"/>
          <Setter Property="CornerRadius" Value="4"/>
        </Style>

        <Style Selector="ListBox">
          <Setter Property="FocusAdorner">
            <FocusAdornerTemplate>
              <Grid/>
            </FocusAdornerTemplate>
          </Setter>
        </Style>
      </ListBox.Styles>

      <ListBox.ItemsPanel>
        <ItemsPanelTemplate>
          <StackPanel Orientation="Vertical"/>
        </ItemsPanelTemplate>
      </ListBox.ItemsPanel>

      <ListBox.ItemTemplate>
        <DataTemplate DataType="vm:LauncherPage">
          <Grid ColumnDefinitions="Auto,*" VerticalAlignment="Center">
            <Path Grid.Column="0"
                  Width="12" Height="12" Margin="12,0"
                  Fill="{Binding Node.Bookmark, Converter={x:Static c:IntConverters.ToBookmarkBrush}}"
                  Data="{StaticResource Icons.Bookmark}"
                  IsVisible="{Binding Node.IsRepository}"
                  IsHitTestVisible="False"/>
            <Path Grid.Column="0"
                  Width="12" Height="12" Margin="12,0"
                  Fill="{DynamicResource Brush.FG1}"
                  Data="{StaticResource Icons.Repositories}"
                  IsVisible="{Binding !Node.IsRepository}"
                  IsHitTestVisible="False"/>
            <TextBlock Grid.Column="1"
                       Classes="primary"
                       VerticalAlignment="Center"
                       FontSize="{Binding Source={x:Static vm:Preferences.Instance}, Path=DefaultFontSize, Converter={x:Static c:DoubleConverters.Decrease}}"
                       Text="{Binding Node.Name}"
                       IsVisible="{Binding Node.IsRepository}"
                       IsHitTestVisible="False"/>
            <TextBlock Grid.Column="1"
                       Classes="primary"
                       VerticalAlignment="Center"
                       FontSize="{Binding Source={x:Static vm:Preferences.Instance}, Path=DefaultFontSize, Converter={x:Static c:DoubleConverters.Decrease}}"
                       Text="{DynamicResource Text.PageTabBar.Welcome.Title}"
                       IsVisible="{Binding !Node.IsRepository}"
                       IsHitTestVisible="False"/>
          </Grid>
        </DataTemplate>
      </ListBox.ItemTemplate>
    </ListBox>
  </Grid>
</UserControl>
