<ResourceDictionary
    xmlns="https://github.com/avaloniaui"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:converters="using:Avalonia.Controls.Converters"
    xmlns:u="https://irihi.tech/ursa">
    <converters:PlatformKeyGestureConverter x:Key="KeyGestureConverter" />

    <ControlTheme x:Key="{x:Type u:KeyGestureInput}" TargetType="u:KeyGestureInput">
        <Setter Property="Width" Value="{DynamicResource KeyGestureInputWidth}" />
        <Setter Property="Height" Value="{DynamicResource KeyGestureInputHeight}" />
        <Setter Property="Background" Value="{DynamicResource KeyGestureInputBackground}" />
        <Setter Property="BorderBrush" Value="{DynamicResource KeyGestureInputBorderBrush}" />
        <Setter Property="BorderThickness" Value="{DynamicResource KeyGestureInputBorderThickness}" />
        <Setter Property="CornerRadius" Value="{DynamicResource KeyGestureInputCornerRadius}" />

        <Setter Property="Template">
            <ControlTemplate TargetType="u:KeyGestureInput">
                <Border
                    Name="Background"
                    HorizontalAlignment="Stretch"
                    VerticalAlignment="Stretch"
                    Background="{TemplateBinding Background}"
                    BorderBrush="{TemplateBinding BorderBrush}"
                    BorderThickness="{TemplateBinding BorderThickness}"
                    CornerRadius="{TemplateBinding CornerRadius}">
                    <SelectableTextBlock
                        HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
                        VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
                        Text="{TemplateBinding Gesture,
                                               Converter={StaticResource KeyGestureConverter}}" />
                </Border>
            </ControlTemplate>
        </Setter>
        <Style Selector="^:pointerover /template/ Border#Background">
            <Setter Property="Background" Value="{DynamicResource KeyGestureInputPointeroverBackground}" />
        </Style>
        <Style Selector="^:pressed /template/ Border#Background">
            <Setter Property="Background" Value="{DynamicResource KeyGestureInputPressedBackground}" />
        </Style>
        <Style Selector="^:focus /template/ Border#Background">
            <Setter Property="Background" Value="{DynamicResource KeyGestureInputPressedBackground}" />
            <Setter Property="BorderBrush" Value="{DynamicResource KeyGestureInputFocusBorderBrush}" />
        </Style>
        <Style Selector="^:focus-within /template/ Border#Background">
            <Setter Property="Background" Value="{DynamicResource KeyGestureInputPressedBackground}" />
            <Setter Property="BorderBrush" Value="{DynamicResource KeyGestureInputFocusBorderBrush}" />
        </Style>
    </ControlTheme>
</ResourceDictionary>
