<UserControl x:Class="PixiEditor.Views.Dialogs.SettingGroups.ShortcutsBinder"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
             xmlns:local="clr-namespace:PixiEditor.Views.Dialogs.SettingGroups"
             xmlns:converters="clr-namespace:PixiEditor.Helpers.Converters"
             xmlns:views="clr-namespace:PixiEditor.Views"
             xmlns:userControls="clr-namespace:PixiEditor.Views.UserControls"
             xmlns:commands="clr-namespace:PixiEditor.Models.Commands"
             xmlns:commands1="clr-namespace:PixiEditor.Models.Commands.Commands"
             xmlns:ui="clr-namespace:PixiEditor.Extensions.UI;assembly=PixiEditor.Extensions"
             mc:Ignorable="d"
             d:DesignHeight="600" d:DesignWidth="400">
    <Grid>
    <ScrollViewer x:Name="commandScroll" FocusVisualStyle="{x:Null}">
                    <ScrollViewer.Template>
                        <ControlTemplate TargetType="{x:Type ScrollViewer}">
                            <Grid x:Name="Grid" Background="{TemplateBinding Background}">
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="*"/>
                                    <ColumnDefinition Width="Auto"/>
                                </Grid.ColumnDefinitions>
                                <Grid.RowDefinitions>
                                    <RowDefinition Height="*"/>
                                    <RowDefinition Height="Auto"/>
                                </Grid.RowDefinitions>
                                <Rectangle x:Name="Corner" Grid.Column="1" Fill="{DynamicResource {x:Static SystemColors.ControlBrushKey}}" Grid.Row="1"/>
                                <ScrollContentPresenter x:Name="PART_ScrollContentPresenter" CanContentScroll="{TemplateBinding CanContentScroll}" CanHorizontallyScroll="False" CanVerticallyScroll="False" ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" Grid.Column="0" Margin="{TemplateBinding Padding}" Grid.Row="0"/>
                                <ScrollBar x:Name="PART_VerticalScrollBar" AutomationProperties.AutomationId="VerticalScrollBar" Cursor="Arrow" Grid.Column="1" Maximum="{TemplateBinding ScrollableHeight}" Minimum="0" Grid.Row="0" Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}" Value="{Binding VerticalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" ViewportSize="{TemplateBinding ViewportHeight}" Margin="0,5,0,20"/>
                                <ScrollBar x:Name="PART_HorizontalScrollBar" AutomationProperties.AutomationId="HorizontalScrollBar" Cursor="Arrow" Grid.Column="0" Maximum="{TemplateBinding ScrollableWidth}" Minimum="0" Orientation="Horizontal" Grid.Row="1" Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}" Value="{Binding HorizontalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" ViewportSize="{TemplateBinding ViewportWidth}"/>
                            </Grid>
                        </ControlTemplate>
                    </ScrollViewer.Template>
                    <Grid>
                        <TextBlock Foreground="LightGray" HorizontalAlignment="Center" TextAlignment="Center"
                                   Visibility="{Binding VisibleGroups, ConverterParameter=0, Mode=OneWay, Converter={converters:EqualityBoolToVisibilityConverter}}"
                                   ui:Translator.Key="NOTHING_FOUND"  d:Text="Nothing found."/>
                        <ItemsControl ItemsSource="{Binding Commands}" Foreground="White" Focusable="False">
                            <ItemsControl.ItemTemplate>
                                <DataTemplate DataType="{x:Type commands:CommandGroup}">
                                    <StackPanel Margin="0,0,0,20" Visibility="{Binding Visibility}">
                                        <TextBlock ui:Translator.Key="{Binding DisplayName.Key}" FontSize="22" FontWeight="SemiBold"/>
                                        <ItemsControl ItemsSource="{Binding Commands}" Focusable="False">
                                            <ItemsControl.ItemTemplate>
                                                <DataTemplate DataType="{x:Type commands1:Command}">
                                                    <Grid Margin="0,5,5,0" Visibility="{Binding Visibility}">
                                                        <TextBlock Text="{Binding Command.DisplayName}" ToolTip="{Binding Command.Description}"/>
                                                        <userControls:ShortcutBox Width="120" Command="{Binding Command}" HorizontalAlignment="Right" Focusable="False"/>
                                                    </Grid>
                                                </DataTemplate>
                                            </ItemsControl.ItemTemplate>
                                        </ItemsControl>
                                    </StackPanel>
                                </DataTemplate>
                            </ItemsControl.ItemTemplate>
                        </ItemsControl>
                    </Grid>
                </ScrollViewer>
        <Grid Height="10" VerticalAlignment="Top"
              Visibility="{Binding VerticalOffset, ElementName=commandScroll, Mode=OneWay, Converter={converters:EqualityBoolToVisibilityConverter Invert=True}, ConverterParameter=0}"
              Margin="-10,0">
            <Grid.Background>
                <LinearGradientBrush StartPoint="0, 0" EndPoint="0, 1">
                    <GradientStop Color="#22000000" Offset="0"/>
                    <GradientStop Color="#00000000" Offset="1.0"/>
                </LinearGradientBrush>
            </Grid.Background>
        </Grid>
        </Grid>
</UserControl>
