0
0
mirror of https://github.com/sp-tarkov/launcher.git synced 2025-02-13 06:50:43 -05:00
launcher/project/SPT.Launcher/CustomControls/DetailedProfileCard.axaml

113 lines
5.6 KiB
XML

<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:helpers="using:SPT.Launcher.Helpers"
xmlns:cvt="using:SPT.Launcher.Converters"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="SPT.Launcher.CustomControls.DetailedProfileCard"
MinWidth="250" MinHeight="300"
MaxWidth="250" MaxHeight="300"
PointerEntered="InputElement_OnPointerEntered"
PointerExited="InputElement_OnPointerExited"
PointerPressed="InputElement_OnPointerPressed"
PointerReleased="InputElement_OnPointerReleased"
>
<UserControl.Resources>
<cvt:ImageSourceConverter x:Key="ImageSourceCvt" />
</UserControl.Resources>
<Border x:Name="CardBorder" Classes="card" Margin="15">
<Border.Transitions>
<Transitions>
<TransformOperationsTransition Property="RenderTransform" Duration="0:0:0.200"/>
<BrushTransition Duration="0:0:0.200" Property="Background" />
<BoxShadowsTransition Property="BoxShadow" Duration="0:0:0.200" />
<DoubleTransition Property="Opacity" Duration="0:0:0.200" />
</Transitions>
</Border.Transitions>
<Grid RowDefinitions="30, Auto, *, 20, Auto" ColumnDefinitions="Auto, *, Auto" Margin="10">
<!-- SPT version -->
<Viewbox Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="3" Stretch="Uniform">
<Label x:Name="SptVersion"
Background="Transparent" HorizontalAlignment="Center"
ToolTip.Tip="{Binding $parent[UserControl].ProfileInfo.MismatchMessage}"
Classes.versionMismatch="{Binding $parent[UserControl].ProfileInfo.VersionMismatch}"
>
<TextBlock>
<Run Text="{Binding $parent[UserControl].ProfileInfo.SPT.version}"
/>
<InlineUIContainer>
<Path Data="{StaticResource Alert}" Fill="{Binding ElementName=SptVersion, Path=Foreground}"
Margin="10 0"
IsVisible="{Binding $parent[UserControl].ProfileInfo.VersionMismatch}"
/>
</InlineUIContainer>
</TextBlock>
</Label>
</Viewbox>
<!-- Side image -->
<Image Grid.Row="1" Grid.Column="0"
Source="{Binding $parent[UserControl].ProfileInfo.SideImage, Converter={StaticResource ImageSourceCvt}}"
Height="50" />
<!-- Name and nickname -->
<StackPanel Grid.Row="1" Grid.Column="1" Margin="10 0 0 0">
<Label Content="{Binding $parent[UserControl].ProfileInfo.Username}" FontSize="18" FontWeight="SemiBold"
/>
<Label Content="{Binding $parent[UserControl].ProfileInfo.Nickname}" FontSize="16" Classes="acc"
IsVisible="{Binding $parent[UserControl].ProfileInfo.HasData}"
/>
</StackPanel>
<!-- No data label -->
<Label Grid.Row="0" Grid.RowSpan="5" Grid.Column="1"
Content="{Binding Source={x:Static helpers:LocalizationProvider.Instance}, Path=no_profile_data}"
HorizontalAlignment="Center"
VerticalAlignment="Center"
FontWeight="SemiBold"
Classes="alt"
IsVisible="{Binding !$parent[UserControl].ProfileInfo.HasData}"
/>
<!-- Level -->
<StackPanel Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="3"
HorizontalAlignment="Center" VerticalAlignment="Center">
<Label Content="{Binding Source={x:Static helpers:LocalizationProvider.Instance}, Path=level}"
IsVisible="{Binding HasData}"
FontSize="20"
HorizontalAlignment="Center"
Margin="0"
Padding="0"
Classes="alt"
/>
<Label Content="{Binding $parent[UserControl].ProfileInfo.Level}"
FontSize="30"
FontWeight="Bold"
Margin="0"
Padding="0"
IsVisible="{Binding HasData}"
HorizontalAlignment="Center"
/>
</StackPanel>
<!-- remaining xp -->
<Viewbox Grid.Row="3" Grid.Column="0" Grid.ColumnSpan="3" Stretch="Uniform" IsVisible="{Binding $parent[UserControl].ProfileInfo.HasData}">
<TextBlock>
<Run Text="{Binding Source={x:Static helpers:LocalizationProvider.Instance}, Path=next_level_in}"/>
<Run Text="{Binding $parent[UserControl].ProfileInfo.RemainingExp}" Foreground="{DynamicResource AccentBrush}"/>
<Run>xp</Run>
</TextBlock>
</Viewbox>
<!-- xp progress -->
<ProgressBar Grid.Row="4" Grid.Column="0" Grid.ColumnSpan="2" Margin="0 10"
Value="{Binding $parent[UserControl].ProfileInfo.XPLevelProgress}"
IsVisible="{Binding $parent[UserControl].ProfileInfo.HasData}"
/>
</Grid>
</Border>
</UserControl>