Start AboutWindow refactor

This commit is contained in:
Isaac Marovitz 2022-12-30 18:16:59 +01:00
parent 2b23463daa
commit 7c00738631
No known key found for this signature in database
GPG key ID: 97250B2B09A132E1
3 changed files with 230 additions and 239 deletions

View file

@ -1015,7 +1015,7 @@ namespace Ryujinx.Ava.UI.ViewModels
public async void OpenAboutWindow() public async void OpenAboutWindow()
{ {
await new AboutWindow().ShowDialog(_owner); await AboutWindow.Show();
} }
public void ChangeLanguage(object obj) public void ChangeLanguage(object obj)

View file

@ -1,21 +1,16 @@
<window:StyleableWindow <UserControl
x:Class="Ryujinx.Ava.UI.Windows.AboutWindow"
xmlns="https://github.com/avaloniaui" xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale" xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale"
xmlns:flex="clr-namespace:Avalonia.Flexbox;assembly=Avalonia.Flexbox"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:window="clr-namespace:Ryujinx.Ava.UI.Windows"
Width="850"
Height="550"
MinWidth="500"
MinHeight="550"
d:DesignHeight="350"
d:DesignWidth="400"
CanResize="False"
SizeToContent="Width"
WindowStartupLocation="CenterOwner"
mc:Ignorable="d" mc:Ignorable="d"
d:DesignHeight="500"
d:DesignWidth="750"
Height="500"
Width="750"
x:Class="Ryujinx.Ava.UI.Windows.AboutWindow"
Focusable="True"> Focusable="True">
<Grid <Grid
Margin="15" Margin="15"
@ -37,246 +32,228 @@
HorizontalAlignment="Stretch" HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"> VerticalAlignment="Stretch">
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
<RowDefinition />
<RowDefinition />
<RowDefinition Height="Auto" /> <RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions> </Grid.RowDefinitions>
<Grid Grid.Row="0"> <Grid Grid.Row="0">
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition /> <ColumnDefinition />
<ColumnDefinition /> <ColumnDefinition />
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Image <Image
Grid.Row="0"
Grid.RowSpan="3"
Grid.Column="0" Grid.Column="0"
Height="110" Height="100"
MinWidth="50"
Margin="5,10,20,10"
Source="resm:Ryujinx.Ui.Common.Resources.Logo_Ryujinx.png?assembly=Ryujinx.Ui.Common" /> Source="resm:Ryujinx.Ui.Common.Resources.Logo_Ryujinx.png?assembly=Ryujinx.Ui.Common" />
<TextBlock <flex:FlexPanel
Grid.Row="0" Grid.Column="1"
Grid.Column="1" HorizontalAlignment="Stretch"
Margin="0,20,0,0" VerticalAlignment="Stretch"
FontSize="35" JustifyContent="SpaceBetween"
Text="Ryujinx" AlignContent="Center"
TextAlignment="Center" /> Direction="Column"
<TextBlock Margin="5">
Grid.Row="1"
Grid.Column="1"
Margin="0,0,0,0"
FontSize="16"
Text="(REE-YOU-JINX)"
TextAlignment="Center" />
<Button
Grid.Row="2"
Grid.Column="1"
Margin="0"
HorizontalAlignment="Center"
Background="Transparent"
Click="Button_OnClick"
Tag="https://www.ryujinx.org/">
<TextBlock <TextBlock
Text="www.ryujinx.org" FontSize="35"
TextAlignment="Center" Text="Ryujinx"
TextDecorations="Underline" TextAlignment="Center" />
ToolTip.Tip="{locale:Locale AboutUrlTooltipMessage}" /> <TextBlock
</Button> FontSize="16"
Text="(REE-YOU-JINX)"
TextAlignment="Center" />
<Button
HorizontalAlignment="Center"
Background="Transparent"
Click="Button_OnClick"
Tag="https://www.ryujinx.org/">
<TextBlock
Text="www.ryujinx.org"
TextAlignment="Center"
TextDecorations="Underline"
ToolTip.Tip="{locale:Locale AboutUrlTooltipMessage}" />
</Button>
</flex:FlexPanel>
</Grid> </Grid>
<TextBlock <flex:FlexPanel
Grid.Row="1" Grid.Row="1"
HorizontalAlignment="Center" Direction="Column"
VerticalAlignment="Center" JustifyContent="FlexEnd"
Text="{Binding Version}" RowSpacing="10"
TextAlignment="Center" /> AlignContent="Center"
<TextBlock HorizontalAlignment="Stretch"
Grid.Row="2" VerticalAlignment="Stretch">
Margin="20" <TextBlock
HorizontalAlignment="Center" HorizontalAlignment="Center"
MaxLines="2" VerticalAlignment="Center"
Text="{locale:Locale AboutDisclaimerMessage}" Text="{Binding Version}"
TextAlignment="Center" /> TextAlignment="Center" />
<TextBlock <TextBlock
Name="AmiiboLabel" HorizontalAlignment="Center"
Grid.Row="3" MaxLines="2"
Margin="20" Text="{locale:Locale AboutDisclaimerMessage}"
HorizontalAlignment="Center" TextAlignment="Center" />
MaxLines="2" <TextBlock
PointerPressed="AmiiboLabel_OnPointerPressed" Name="AmiiboLabel"
Text="{locale:Locale AboutAmiiboDisclaimerMessage}" HorizontalAlignment="Center"
TextAlignment="Center" /> MaxLines="2"
<StackPanel PointerPressed="AmiiboLabel_OnPointerPressed"
Grid.Row="4" Text="{locale:Locale AboutAmiiboDisclaimerMessage}"
HorizontalAlignment="Center" TextAlignment="Center" />
Orientation="Horizontal" <StackPanel
Spacing="10"> HorizontalAlignment="Center"
<StackPanel Orientation="Vertical" ToolTip.Tip="{locale:Locale AboutPatreonUrlTooltipMessage}"> Orientation="Horizontal"
<Button Spacing="10">
Height="65" <StackPanel Orientation="Vertical" ToolTip.Tip="{locale:Locale AboutPatreonUrlTooltipMessage}">
Background="Transparent" <Button
Click="Button_OnClick" Height="65"
Tag="https://www.patreon.com/ryujinx"> Background="Transparent"
<Grid> Click="Button_OnClick"
<Grid.RowDefinitions> Tag="https://www.patreon.com/ryujinx">
<RowDefinition /> <Grid>
<RowDefinition Height="Auto" /> <Grid.RowDefinitions>
</Grid.RowDefinitions> <RowDefinition />
<Image Source="resm:Ryujinx.Ui.Common.Resources.Logo_Patreon.png?assembly=Ryujinx.Ui.Common" /> <RowDefinition Height="Auto" />
<TextBlock </Grid.RowDefinitions>
Grid.Row="1" <Image Source="resm:Ryujinx.Ui.Common.Resources.Logo_Patreon.png?assembly=Ryujinx.Ui.Common" />
Margin="0,5,0,0" <TextBlock
HorizontalAlignment="Center" Grid.Row="1"
Text="Patreon" /> Margin="0,5,0,0"
</Grid> HorizontalAlignment="Center"
</Button> Text="Patreon" />
</Grid>
</Button>
</StackPanel>
<StackPanel Orientation="Vertical" ToolTip.Tip="{locale:Locale AboutGithubUrlTooltipMessage}">
<Button
Height="65"
Background="Transparent"
Click="Button_OnClick"
Tag="https://github.com/Ryujinx/Ryujinx">
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Image Source="resm:Ryujinx.Ui.Common.Resources.Logo_GitHub.png?assembly=Ryujinx.Ui.Common" />
<TextBlock
Grid.Row="1"
Margin="0,5,0,0"
HorizontalAlignment="Center"
Text="GitHub" />
</Grid>
</Button>
</StackPanel>
<StackPanel Orientation="Vertical" ToolTip.Tip="{locale:Locale AboutDiscordUrlTooltipMessage}">
<Button
Height="65"
Background="Transparent"
Click="Button_OnClick"
Tag="https://discordapp.com/invite/N2FmfVc">
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Image Source="resm:Ryujinx.Ui.Common.Resources.Logo_Discord.png?assembly=Ryujinx.Ui.Common" />
<TextBlock
Grid.Row="1"
Margin="0,5,0,0"
HorizontalAlignment="Center"
Text="Discord" />
</Grid>
</Button>
</StackPanel>
<StackPanel Orientation="Vertical" ToolTip.Tip="{locale:Locale AboutTwitterUrlTooltipMessage}">
<Button
Height="65"
Background="Transparent"
Click="Button_OnClick"
Tag="https://twitter.com/RyujinxEmu">
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Image Source="resm:Ryujinx.Ui.Common.Resources.Logo_Twitter.png?assembly=Ryujinx.Ui.Common" />
<TextBlock
Grid.Row="1"
Margin="0,5,0,0"
HorizontalAlignment="Center"
Text="Twitter" />
</Grid>
</Button>
</StackPanel>
</StackPanel> </StackPanel>
<StackPanel Orientation="Vertical" ToolTip.Tip="{locale:Locale AboutGithubUrlTooltipMessage}"> </flex:FlexPanel>
<Button
Height="65"
Background="Transparent"
Click="Button_OnClick"
Tag="https://github.com/Ryujinx/Ryujinx">
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Image Source="resm:Ryujinx.Ui.Common.Resources.Logo_GitHub.png?assembly=Ryujinx.Ui.Common" />
<TextBlock
Grid.Row="1"
Margin="0,5,0,0"
HorizontalAlignment="Center"
Text="GitHub" />
</Grid>
</Button>
</StackPanel>
<StackPanel Orientation="Vertical" ToolTip.Tip="{locale:Locale AboutDiscordUrlTooltipMessage}">
<Button
Height="65"
Background="Transparent"
Click="Button_OnClick"
Tag="https://discordapp.com/invite/N2FmfVc">
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Image Source="resm:Ryujinx.Ui.Common.Resources.Logo_Discord.png?assembly=Ryujinx.Ui.Common" />
<TextBlock
Grid.Row="1"
Margin="0,5,0,0"
HorizontalAlignment="Center"
Text="Discord" />
</Grid>
</Button>
</StackPanel>
<StackPanel Orientation="Vertical" ToolTip.Tip="{locale:Locale AboutTwitterUrlTooltipMessage}">
<Button
Height="65"
Background="Transparent"
Click="Button_OnClick"
Tag="https://twitter.com/RyujinxEmu">
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Image Source="resm:Ryujinx.Ui.Common.Resources.Logo_Twitter.png?assembly=Ryujinx.Ui.Common" />
<TextBlock
Grid.Row="1"
Margin="0,5,0,0"
HorizontalAlignment="Center"
Text="Twitter" />
</Grid>
</Button>
</StackPanel>
</StackPanel>
</Grid> </Grid>
<Border <Border
Grid.Row="1" Grid.Row="1"
Grid.Column="1" Grid.Column="1"
Width="2" Width="1"
Margin="5" Margin="20 0"
VerticalAlignment="Stretch" VerticalAlignment="Stretch"
BorderBrush="White" BorderBrush="Black"
BorderThickness="1,0,0,0"> BorderThickness="1,0,0,0" />
<Separator Width="0" /> <flex:FlexPanel
</Border> Grid.Row="1"
<Grid
Grid.Row="1"
Grid.Column="2" Grid.Column="2"
Margin="20" AlignContent="SpaceEvenly"
HorizontalAlignment="Stretch" HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"> VerticalAlignment="Stretch">
<Grid.RowDefinitions> <StackPanel
<RowDefinition Height="Auto" /> Spacing="10">
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<TextBlock
FontWeight="Bold"
Text="{locale:Locale AboutRyujinxAboutTitle}"
TextDecorations="Underline" />
<TextBlock
Grid.Row="1"
Margin="20,5,5,5"
LineHeight="20"
Text="{locale:Locale AboutRyujinxAboutContent}" />
<TextBlock
Grid.Row="2"
Margin="0,10,0,0"
FontWeight="Bold"
Text="{locale:Locale AboutRyujinxMaintainersTitle}"
TextDecorations="Underline" />
<TextBlock
Grid.Row="3"
Margin="20,5,5,5"
LineHeight="20"
Text="{Binding Developers}" />
<Button
Grid.Row="4"
HorizontalAlignment="Right"
Background="Transparent"
Click="Button_OnClick"
Tag="https://github.com/Ryujinx/Ryujinx/graphs/contributors?type=a">
<TextBlock <TextBlock
Text="{locale:Locale AboutRyujinxContributorsButtonHeader}" FontWeight="Bold"
TextAlignment="Right" FontSize="18"
TextDecorations="Underline" Text="{locale:Locale AboutRyujinxAboutTitle}" />
ToolTip.Tip="{locale:Locale AboutRyujinxMaintainersContentTooltipMessage}" />
</Button>
<TextBlock
Grid.Row="5"
Margin="0,0,0,0"
FontWeight="Bold"
Text="{locale:Locale AboutRyujinxSupprtersTitle}"
TextDecorations="Underline" />
<Border
Grid.Row="6"
Width="460"
Height="200"
Margin="20,5"
Padding="5"
VerticalAlignment="Stretch"
BorderBrush="White"
BorderThickness="1">
<TextBlock <TextBlock
Name="SupportersTextBlock" LineHeight="20"
VerticalAlignment="Top" TextWrapping="Wrap"
Text="{Binding Supporters}" Text="{locale:Locale AboutRyujinxAboutContent}" />
TextWrapping="Wrap" /> </StackPanel>
</Border> <StackPanel
</Grid> Spacing="10">
<TextBlock
FontWeight="Bold"
FontSize="18"
Text="{locale:Locale AboutRyujinxMaintainersTitle}" />
<TextBlock
LineHeight="18"
TextWrapping="Wrap"
Text="{Binding Developers}" />
<Button
HorizontalAlignment="Right"
Background="Transparent"
Click="Button_OnClick"
Tag="https://github.com/Ryujinx/Ryujinx/graphs/contributors?type=a">
<TextBlock
Text="{locale:Locale AboutRyujinxContributorsButtonHeader}"
TextAlignment="Right"
ToolTip.Tip="{locale:Locale AboutRyujinxMaintainersContentTooltipMessage}" />
</Button>
</StackPanel>
<StackPanel
Spacing="10">
<TextBlock
FontWeight="Bold"
FontSize="18"
Text="{locale:Locale AboutRyujinxSupprtersTitle}" />
<Border
Padding="5"
VerticalAlignment="Stretch"
BorderBrush="Black"
BorderThickness="1"
CornerRadius="5">
<TextBlock
Name="SupportersTextBlock"
VerticalAlignment="Top"
TextTrimming="CharacterEllipsis"
FontSize="10"
MaxLines="10"
TextWrapping="Wrap"
LineHeight="12"
Text="{Binding Supporters}" />
</Border>
</StackPanel>
</flex:FlexPanel>
</Grid> </Grid>
</window:StyleableWindow> </UserControl>

View file

@ -1,25 +1,23 @@
using Avalonia.Controls; using Avalonia;
using Avalonia.Controls;
using Avalonia.Input; using Avalonia.Input;
using Avalonia.Interactivity; using Avalonia.Interactivity;
using Avalonia.Threading; using Avalonia.Threading;
using FluentAvalonia.UI.Controls;
using Ryujinx.Ava.Common.Locale; using Ryujinx.Ava.Common.Locale;
using Ryujinx.Common.Utilities; using Ryujinx.Common.Utilities;
using Ryujinx.Ui.Common.Helper; using Ryujinx.Ui.Common.Helper;
using System.Net.Http; using System.Net.Http;
using System.Net.NetworkInformation; using System.Net.NetworkInformation;
using System.Threading.Tasks; using System.Threading.Tasks;
using Button = Avalonia.Controls.Button;
namespace Ryujinx.Ava.UI.Windows namespace Ryujinx.Ava.UI.Windows
{ {
public partial class AboutWindow : StyleableWindow public partial class AboutWindow : UserControl
{ {
public AboutWindow() public AboutWindow()
{ {
if (Program.PreviewerDetached)
{
Title = $"Ryujinx {Program.Version} - " + LocaleManager.Instance["MenuBarHelpAbout"];
}
Version = Program.Version; Version = Program.Version;
DataContext = this; DataContext = this;
@ -34,6 +32,22 @@ namespace Ryujinx.Ava.UI.Windows
public string Developers => string.Format(LocaleManager.Instance["AboutPageDeveloperListMore"], "gdkchan, Ac_K, Thog, rip in peri peri, LDj3SNuD, emmaus, Thealexbarney, Xpl0itR, GoffyDude, »jD«"); public string Developers => string.Format(LocaleManager.Instance["AboutPageDeveloperListMore"], "gdkchan, Ac_K, Thog, rip in peri peri, LDj3SNuD, emmaus, Thealexbarney, Xpl0itR, GoffyDude, »jD«");
public static async Task Show()
{
var content = new AboutWindow();
ContentDialog contentDialog = new ContentDialog
{
Title = LocaleManager.Instance["MenuBarHelpAbout"],
PrimaryButtonText = "",
SecondaryButtonText = "",
CloseButtonText = LocaleManager.Instance["UserProfilesClose"],
Content = content,
Padding = new Thickness(0)
};
await contentDialog.ShowAsync();
}
private void Button_OnClick(object sender, RoutedEventArgs e) private void Button_OnClick(object sender, RoutedEventArgs e)
{ {
if (sender is Button button) if (sender is Button button)