<UserControl
    x:Class="PDF_Master.Views.Dialog.ToolsDialogs.SaftyDialogs.CheckPasswordDialog"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:cus="clr-namespace:PDF_Master.CustomControl"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:help="clr-namespace:PDF_Master.Helper"
    xmlns:prism="http://prismlibrary.com/"
    xmlns:saftydialogs="clr-namespace:PDF_Master.ViewModels.Dialog.ToolsDialogs.SaftyDialogs"
    prism:Dialog.WindowStyle="{StaticResource DialogWindowStyle}"
    prism:ViewModelLocator.AutoWireViewModel="True"
    Loaded="UserControl_Loaded">
    <UserControl.Resources>
        <Style x:Key="CheckPasswordBoxStyle" TargetType="PasswordBox">
            <Setter Property="Height" Value="32" />
            <Setter Property="FontSize" Value="14" />
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="PasswordBox">
                        <Border
                            x:Name="border"
                            Background="{TemplateBinding Background}"
                            BorderBrush="{TemplateBinding BorderBrush}"
                            BorderThickness="{TemplateBinding BorderThickness}"
                            CornerRadius="5"
                            SnapsToDevicePixels="True">
                            <Grid>
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition />
                                    <ColumnDefinition Width="24" />
                                </Grid.ColumnDefinitions>
                                <Grid Grid.Column="0" Margin="8,0,0,0">
                                    <TextBlock
                                        Name="markText"
                                        Grid.Column="1"
                                        VerticalAlignment="Center"
                                        FontSize="12"
                                        Foreground="#BBB"
                                        Text="{TemplateBinding help:PasswordBoxHelper.DisplayText}"
                                        Visibility="Collapsed" />
                                    <ScrollViewer
                                        x:Name="PART_ContentHost"
                                        MinHeight="20"
                                        VerticalAlignment="Center"
                                        Focusable="false"
                                        HorizontalScrollBarVisibility="Hidden"
                                        VerticalScrollBarVisibility="Hidden" />
                                </Grid>
                            </Grid>
                        </Border>

                        <ControlTemplate.Triggers>
                            <Trigger Property="IsEnabled" Value="false">
                                <Setter TargetName="border" Property="Opacity" Value="0.56" />
                            </Trigger>
                            <Trigger Property="IsMouseOver" Value="true">
                                <Setter TargetName="border" Property="BorderBrush" Value="#FF7EB4EA" />
                            </Trigger>
                            <Trigger Property="IsKeyboardFocused" Value="true">
                                <Setter TargetName="border" Property="BorderBrush" Value="#1770F4" />
                            </Trigger>
                            <DataTrigger Binding="{Binding Path=Password}" Value="">
                                <Setter TargetName="markText" Property="Visibility" Value="Visible" />
                            </DataTrigger>
                            <DataTrigger Binding="{Binding Path=IsRightValue}" Value="false">
                                <Setter TargetName="border" Property="BorderBrush" Value="#F3465B" />
                            </DataTrigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>

        <Style x:Key="DeletePasswordButtonStyle" TargetType="Button">
            <Setter Property="Height" Value="14" />
            <Setter Property="Width" Value="14" />
            <Setter Property="HorizontalContentAlignment" Value="Center" />
            <Setter Property="VerticalContentAlignment" Value="Center" />
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type ButtonBase}">
                        <Grid>
                            <Viewbox Stretch="Uniform">
                                <Grid Background="Transparent">
                                    <Path Data="M7 14C10.866 14 14 10.866 14 7C14 3.13401 10.866 0 7 0C3.13401 0 0 3.13401 0 7C0 10.866 3.13401 14 7 14ZM10.5303 4.53038L8.06069 7L10.5303 9.46962L9.46967 10.5303L7.00002 8.06066L4.53033 10.5303L3.46967 9.46967L5.93936 7L3.46967 4.53033L4.53033 3.46967L7.00002 5.93934L9.46967 3.46971L10.5303 4.53038Z" Fill="#CED0D4" />
                                </Grid>
                            </Viewbox>
                        </Grid>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </UserControl.Resources>
    <cus:DialogContent FontFamily="Segoe UI" Header="{Binding PasswordDialogTitle}">
        <cus:DialogContent.Content>
            <Grid
                Width="400"
                MinHeight="106"
                Margin="16,0,16,0">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="80" />
                    <ColumnDefinition />
                </Grid.ColumnDefinitions>
                <Image Margin="0,-20,0,0" Source="pack://application:,,,/Resources/Dialog/password.png" />
                <Grid Grid.Column="1" Margin="8,0,0,0">
                    <Grid.RowDefinitions>
                        <RowDefinition MinHeight="44" />
                        <RowDefinition Height="40" />
                        <RowDefinition />
                    </Grid.RowDefinitions>
                    <Grid Grid.Row="0">
                        <TextBlock
                            Block.TextAlignment="Left"
                            FontFamily="Segoe UI"
                            FontSize="14"
                            Text="{Binding InputPasswordMsg, Mode=TwoWay}"
                            TextWrapping="Wrap" />
                    </Grid>
                    <Grid
                        Grid.Row="1"
                        Margin="0,8,0,0"
                        FocusManager.FocusedElement="{Binding ElementName=InputBox}">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition />
                            <ColumnDefinition Width="23" />
                        </Grid.ColumnDefinitions>
                        <PasswordBox
                            Name="InputBox"
                            Grid.ColumnSpan="2"
                            help:PasswordBoxHelper.DisplayText="{Binding CheckPasswordMsg, Mode=TwoWay}"
                            help:PasswordBoxHelper.IsRightValue="{Binding IsRightValue, Mode=TwoWay}"
                            help:PasswordBoxHelper.Password="{Binding Password, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
                            Focusable="True"
                            PasswordChar="*"
                            Style="{StaticResource CheckPasswordBoxStyle}" />
                        <Button
                            Grid.Column="1"
                            HorizontalAlignment="Left"
                            Command="{Binding ClearPasswordCommand}"
                            Style="{StaticResource DeletePasswordButtonStyle}"
                            Visibility="{Binding ClearPasswordButtonVisibility, Mode=TwoWay}" />
                    </Grid>
                    <Grid Grid.Row="2" Margin="0,2,0,0">
                        <TextBlock
                            Foreground="#F3465B"
                            Text="{Binding ErrorPasswordMsg, Mode=TwoWay}"
                            TextWrapping="Wrap"
                            Visibility="{Binding ErrorPasswordMsgVisibility, Mode=TwoWay}" />
                    </Grid>
                </Grid>
            </Grid>
        </cus:DialogContent.Content>
        <cus:DialogContent.BottmBar>
            <Grid Margin="16">
                <StackPanel
                    Height="32"
                    HorizontalAlignment="Right"
                    VerticalAlignment="Center"
                    Orientation="Horizontal">
                    <Button
                        Width="67"
                        Margin="0,0,16,0"
                        Command="{Binding ConfirmCommand}"
                        IsDefault="True"
                        Style="{StaticResource Btn.cta}">
                        <TextBlock Text="Open" />
                    </Button>
                    <Button
                        Width="67"
                        Command="{Binding CancelCommand}"
                        Style="{StaticResource btn.sec}">
                        <TextBlock Text="Cancel" />
                    </Button>
                </StackPanel>
            </Grid>
        </cus:DialogContent.BottmBar>
    </cus:DialogContent>
</UserControl>