aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Ryujinx.Ava/App.axaml6
-rw-r--r--Ryujinx.Ava/App.axaml.cs5
-rw-r--r--Ryujinx.Ava/AppHost.cs23
-rw-r--r--Ryujinx.Ava/Assets/Styles/BaseDark.xaml14
-rw-r--r--Ryujinx.Ava/Assets/Styles/BaseLight.xaml14
-rw-r--r--Ryujinx.Ava/Assets/Styles/Styles.xaml34
-rw-r--r--Ryujinx.Ava/Ui/Applet/ErrorAppletWindow.axaml61
-rw-r--r--Ryujinx.Ava/Ui/Applet/SwkbdAppletDialog.axaml70
-rw-r--r--Ryujinx.Ava/Ui/Controls/GameGridView.axaml303
-rw-r--r--Ryujinx.Ava/Ui/Controls/GameListView.axaml188
-rw-r--r--Ryujinx.Ava/Ui/Controls/InputDialog.axaml33
-rw-r--r--Ryujinx.Ava/Ui/Controls/UpdateWaitWindow.axaml48
-rw-r--r--Ryujinx.Ava/Ui/Windows/AboutWindow.axaml285
-rw-r--r--Ryujinx.Ava/Ui/Windows/MainWindow.axaml654
-rw-r--r--Ryujinx.Ava/Ui/Windows/UpdaterWindow.axaml79
15 files changed, 1110 insertions, 707 deletions
diff --git a/Ryujinx.Ava/App.axaml b/Ryujinx.Ava/App.axaml
index 0db01629..eb9ffd86 100644
--- a/Ryujinx.Ava/App.axaml
+++ b/Ryujinx.Ava/App.axaml
@@ -1,9 +1,9 @@
<Application
x:Class="Ryujinx.Ava.App"
xmlns="https://github.com/avaloniaui"
- xmlns:sty="using:FluentAvalonia.Styling"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:sty="using:FluentAvalonia.Styling">
<Application.Styles>
- <sty:FluentAvaloniaTheme UseSystemThemeOnWindows="False"/>
+ <sty:FluentAvaloniaTheme UseSystemThemeOnWindows="False" />
</Application.Styles>
</Application> \ No newline at end of file
diff --git a/Ryujinx.Ava/App.axaml.cs b/Ryujinx.Ava/App.axaml.cs
index a76de8b3..6ecf0198 100644
--- a/Ryujinx.Ava/App.axaml.cs
+++ b/Ryujinx.Ava/App.axaml.cs
@@ -2,7 +2,6 @@ using Avalonia;
using Avalonia.Controls.ApplicationLifetimes;
using Avalonia.Markup.Xaml;
using Avalonia.Styling;
-using Avalonia.Threading;
using FluentAvalonia.Styling;
using Ryujinx.Ava.Ui.Windows;
using Ryujinx.Common;
@@ -13,7 +12,7 @@ using System.IO;
namespace Ryujinx.Ava
{
- public class App : Avalonia.Application
+ public class App : Application
{
public override void Initialize()
{
@@ -46,7 +45,7 @@ namespace Ryujinx.Ava
private void ShowRestartDialog()
{
- // TODO. Implement Restart Dialog when SettingsWindow is implemented.
+ // TODO: Implement Restart Dialog when SettingsWindow is implemented.
}
private void ThemeChanged_Event(object sender, ReactiveEventArgs<string> e)
diff --git a/Ryujinx.Ava/AppHost.cs b/Ryujinx.Ava/AppHost.cs
index 09163bd6..1a6ba024 100644
--- a/Ryujinx.Ava/AppHost.cs
+++ b/Ryujinx.Ava/AppHost.cs
@@ -57,7 +57,7 @@ namespace Ryujinx.Ava
private static readonly Cursor InvisibleCursor = new Cursor(StandardCursorType.None);
private readonly AccountManager _accountManager;
- private UserChannelPersistence _userChannelPersistence;
+ private readonly UserChannelPersistence _userChannelPersistence;
private readonly InputManager _inputManager;
@@ -82,7 +82,6 @@ namespace Ryujinx.Ava
private bool _dialogShown;
private WindowsMultimediaTimerResolution _windowsMultimediaTimerResolution;
- private KeyboardStateSnapshot _lastKeyboardSnapshot;
private readonly CancellationTokenSource _gpuCancellationTokenSource;
@@ -126,7 +125,6 @@ namespace Ryujinx.Ava
_glLogLevel = ConfigurationState.Instance.Logger.GraphicsDebugLevel;
_inputManager.SetMouseDriver(new AvaloniaMouseDriver(renderer));
_keyboardInterface = (IKeyboard)_inputManager.KeyboardDriver.GetGamepad("0");
- _lastKeyboardSnapshot = _keyboardInterface.GetKeyboardStateSnapshot();
NpadManager = _inputManager.CreateNpadManager();
TouchScreenManager = _inputManager.CreateTouchScreenManager();
@@ -722,9 +720,7 @@ namespace Ryujinx.Ava
}
}
- var memoryConfiguration = ConfigurationState.Instance.System.ExpandRam.Value
- ? HLE.MemoryConfiguration.MemoryConfiguration6GB
- : HLE.MemoryConfiguration.MemoryConfiguration4GB;
+ var memoryConfiguration = ConfigurationState.Instance.System.ExpandRam.Value ? HLE.MemoryConfiguration.MemoryConfiguration6GB : HLE.MemoryConfiguration.MemoryConfiguration4GB;
IntegrityCheckLevel fsIntegrityCheckLevel = ConfigurationState.Instance.System.EnableFsIntegrityChecks ? IntegrityCheckLevel.ErrorOnInvalid : IntegrityCheckLevel.None;
@@ -898,7 +894,7 @@ namespace Ryujinx.Ava
}
}
- private void HandleScreenState(KeyboardStateSnapshot keyboard, KeyboardStateSnapshot lastKeyboard)
+ private void HandleScreenState()
{
if (ConfigurationState.Instance.Hid.EnableMouse)
{
@@ -935,19 +931,12 @@ namespace Ryujinx.Ava
{
Dispatcher.UIThread.Post(() =>
{
- KeyboardStateSnapshot keyboard = _keyboardInterface.GetKeyboardStateSnapshot();
+ HandleScreenState();
- HandleScreenState(keyboard, _lastKeyboardSnapshot);
-
- if (keyboard.IsPressed(Key.Delete))
+ if (_keyboardInterface.GetKeyboardStateSnapshot().IsPressed(Key.Delete) && _parent.WindowState != WindowState.FullScreen)
{
- if (_parent.WindowState != WindowState.FullScreen)
- {
- Ptc.Continue();
- }
+ Ptc.Continue();
}
-
- _lastKeyboardSnapshot = keyboard;
});
}
diff --git a/Ryujinx.Ava/Assets/Styles/BaseDark.xaml b/Ryujinx.Ava/Assets/Styles/BaseDark.xaml
index b80cb11f..e32c3d08 100644
--- a/Ryujinx.Ava/Assets/Styles/BaseDark.xaml
+++ b/Ryujinx.Ava/Assets/Styles/BaseDark.xaml
@@ -1,9 +1,7 @@
-<Styles
- xmlns="https://github.com/avaloniaui"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
+<Styles xmlns="https://github.com/avaloniaui" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<StyleInclude Source="avares://Ryujinx.Ava/Assets/Styles/Styles.xaml" />
<Design.PreviewWith>
- <Border Padding="20" Height="2000">
+ <Border Height="2000" Padding="20">
<StackPanel Spacing="5">
<TextBlock Text="Code Font Family" />
<Grid RowDefinitions="*,Auto">
@@ -27,8 +25,12 @@
Name="btnRem"
HorizontalAlignment="Right"
Content="Add" />
- <TextBox Width="100" VerticalAlignment="Center" Text="Rrrrr" Watermark="Hello"
- UseFloatingWatermark="True" />
+ <TextBox
+ Width="100"
+ VerticalAlignment="Center"
+ Text="Rrrrr"
+ UseFloatingWatermark="True"
+ Watermark="Hello" />
<CheckBox>Test Check</CheckBox>
</StackPanel>
</Grid>
diff --git a/Ryujinx.Ava/Assets/Styles/BaseLight.xaml b/Ryujinx.Ava/Assets/Styles/BaseLight.xaml
index c2739895..1d1e4fae 100644
--- a/Ryujinx.Ava/Assets/Styles/BaseLight.xaml
+++ b/Ryujinx.Ava/Assets/Styles/BaseLight.xaml
@@ -1,9 +1,7 @@
-<Styles
- xmlns="https://github.com/avaloniaui"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
+<Styles xmlns="https://github.com/avaloniaui" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<StyleInclude Source="avares://Ryujinx.Ava/Assets/Styles/Styles.xaml" />
<Design.PreviewWith>
- <Border Padding="20" Height="2000">
+ <Border Height="2000" Padding="20">
<StackPanel Spacing="5">
<TextBlock Text="Code Font Family" />
<Grid RowDefinitions="*,Auto">
@@ -27,8 +25,12 @@
Name="btnRem"
HorizontalAlignment="Right"
Content="Add" />
- <TextBox Width="100" VerticalAlignment="Center" Text="Rrrrr" Watermark="Hello"
- UseFloatingWatermark="True" />
+ <TextBox
+ Width="100"
+ VerticalAlignment="Center"
+ Text="Rrrrr"
+ UseFloatingWatermark="True"
+ Watermark="Hello" />
<CheckBox>Test Check</CheckBox>
</StackPanel>
</Grid>
diff --git a/Ryujinx.Ava/Assets/Styles/Styles.xaml b/Ryujinx.Ava/Assets/Styles/Styles.xaml
index 422e6fa4..5ab0a861 100644
--- a/Ryujinx.Ava/Assets/Styles/Styles.xaml
+++ b/Ryujinx.Ava/Assets/Styles/Styles.xaml
@@ -1,10 +1,10 @@
<Styles
xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
- xmlns:sys="clr-namespace:System;assembly=netstandard">
+ xmlns:sys="clr-namespace:System;assembly=netstandard"
+ xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia">
<Design.PreviewWith>
- <Border Padding="20" Height="2000">
+ <Border Height="2000" Padding="20">
<StackPanel Spacing="5">
<TextBlock Text="Code Font Family" />
<Grid RowDefinitions="*,Auto">
@@ -22,15 +22,19 @@
<StackPanel Orientation="Horizontal">
<ToggleButton
Name="btnAdd"
- HorizontalAlignment="Right"
Height="28"
+ HorizontalAlignment="Right"
Content="Addy" />
<Button
Name="btnRem"
HorizontalAlignment="Right"
Content="Add" />
- <TextBox Width="100" VerticalAlignment="Center" Text="Rrrrr" Watermark="Hello"
- UseFloatingWatermark="True" />
+ <TextBox
+ Width="100"
+ VerticalAlignment="Center"
+ Text="Rrrrr"
+ UseFloatingWatermark="True"
+ Watermark="Hello" />
<CheckBox>Test Check</CheckBox>
</StackPanel>
</Grid>
@@ -62,13 +66,10 @@
<Style Selector="Image.huge">
<Setter Property="Width" Value="120" />
</Style>
- <Style Selector="RadioButton">
- <Setter Property="VerticalContentAlignment" Value="Center" />
- </Style>
- <Style Selector="#TitleBarHost > Image">
+ <Style Selector="#TitleBarHost &gt; Image">
<Setter Property="Margin" Value="10" />
</Style>
- <Style Selector="#TitleBarHost > Label">
+ <Style Selector="#TitleBarHost &gt; Label">
<Setter Property="Margin" Value="5" />
<Setter Property="FontSize" Value="14" />
</Style>
@@ -225,12 +226,12 @@
<StaticResource x:Key="ListViewItemBackgroundPointerOver" ResourceKey="SystemAccentColorDark2" />
<StaticResource x:Key="ListViewItemBackgroundSelectedPressed" ResourceKey="ThemeAccentColorBrush" />
<StaticResource x:Key="ListViewItemBackgroundSelectedPointerOver" ResourceKey="SystemAccentColorDark2" />
- <SolidColorBrush x:Key="DataGridGridLinesBrush"
- Color="{DynamicResource SystemBaseMediumLowColor}"
- Opacity="0.4" />
+ <SolidColorBrush
+ x:Key="DataGridGridLinesBrush"
+ Opacity="0.4"
+ Color="{DynamicResource SystemBaseMediumLowColor}" />
<SolidColorBrush x:Key="DataGridSelectionBackgroundBrush" Color="{DynamicResource DataGridSelectionColor}" />
- <SolidColorBrush x:Key="MenuFlyoutPresenterBorderBrush"
- Color="{DynamicResource MenuFlyoutPresenterBorderColor}" />
+ <SolidColorBrush x:Key="MenuFlyoutPresenterBorderBrush" Color="{DynamicResource MenuFlyoutPresenterBorderColor}" />
<SolidColorBrush x:Key="ThemeAccentColorBrush" Color="{DynamicResource SystemAccentColor}" />
<SolidColorBrush x:Key="ListBoxBackground" Color="{DynamicResource ThemeContentBackgroundColor}" />
<SolidColorBrush x:Key="ThemeForegroundBrush" Color="{DynamicResource ThemeForegroundColor}" />
@@ -241,7 +242,6 @@
<SolidColorBrush x:Key="SplitButtonBackgroundCheckedDisabled" Color="#00E81123" />
<Thickness x:Key="PageMargin">40 0 40 0</Thickness>
<Thickness x:Key="Margin">0 5 0 5</Thickness>
- <Thickness x:Key="TextMargin">0 4 0 0</Thickness>
<Thickness x:Key="MenuItemPadding">5 0 5 0</Thickness>
<Color x:Key="MenuFlyoutPresenterBorderColor">#00000000</Color>
<Color x:Key="SystemAccentColor">#FF00C3E3</Color>
diff --git a/Ryujinx.Ava/Ui/Applet/ErrorAppletWindow.axaml b/Ryujinx.Ava/Ui/Applet/ErrorAppletWindow.axaml
index 6d365abf..9816dbec 100644
--- a/Ryujinx.Ava/Ui/Applet/ErrorAppletWindow.axaml
+++ b/Ryujinx.Ava/Ui/Applet/ErrorAppletWindow.axaml
@@ -1,17 +1,21 @@
-<Window 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:window="clr-namespace:Ryujinx.Ava.Ui.Windows"
- mc:Ignorable="d"
- x:Class="Ryujinx.Ava.Ui.Applet.ErrorAppletWindow"
- xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale"
- CanResize="False"
- SizeToContent="Height"
- Width="450"
- Height="340"
- Title="{locale:Locale ErrorWindowTitle}">
- <Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="20">
+<Window
+ x:Class="Ryujinx.Ava.Ui.Applet.ErrorAppletWindow"
+ xmlns="https://github.com/avaloniaui"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:window="clr-namespace:Ryujinx.Ava.Ui.Windows"
+ Title="{locale:Locale ErrorWindowTitle}"
+ Width="450"
+ Height="340"
+ CanResize="False"
+ SizeToContent="Height"
+ mc:Ignorable="d">
+ <Grid
+ Margin="20"
+ HorizontalAlignment="Stretch"
+ VerticalAlignment="Stretch">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
@@ -21,11 +25,28 @@
<ColumnDefinition Width="Auto" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
- <Image Grid.Row="1" Grid.RowSpan="2" Margin="5, 10, 20 , 10" Grid.Column="0"
- Source="resm:Ryujinx.Ui.Common.Resources.Logo_Ryujinx.png?assembly=Ryujinx.Ui.Common" Height="80" MinWidth="50" />
- <TextBlock Grid.Row="1" Margin="10" Grid.Column="1" VerticalAlignment="Stretch" TextWrapping="Wrap"
- Text="{Binding Message}" />
- <StackPanel Name="ButtonStack" Margin="10" Spacing="10" Grid.Row="2" Grid.Column="1"
- HorizontalAlignment="Right" Orientation="Horizontal" />
+ <Image
+ Grid.Row="1"
+ Grid.RowSpan="2"
+ Grid.Column="0"
+ Height="80"
+ MinWidth="50"
+ Margin="5,10,20,10"
+ Source="resm:Ryujinx.Ui.Common.Resources.Logo_Ryujinx.png?assembly=Ryujinx.Ui.Common" />
+ <TextBlock
+ Grid.Row="1"
+ Grid.Column="1"
+ Margin="10"
+ VerticalAlignment="Stretch"
+ Text="{Binding Message}"
+ TextWrapping="Wrap" />
+ <StackPanel
+ Name="ButtonStack"
+ Grid.Row="2"
+ Grid.Column="1"
+ Margin="10"
+ HorizontalAlignment="Right"
+ Orientation="Horizontal"
+ Spacing="10" />
</Grid>
</Window> \ No newline at end of file
diff --git a/Ryujinx.Ava/Ui/Applet/SwkbdAppletDialog.axaml b/Ryujinx.Ava/Ui/Applet/SwkbdAppletDialog.axaml
index b027a230..329c7423 100644
--- a/Ryujinx.Ava/Ui/Applet/SwkbdAppletDialog.axaml
+++ b/Ryujinx.Ava/Ui/Applet/SwkbdAppletDialog.axaml
@@ -1,12 +1,16 @@
-<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:window="clr-namespace:Ryujinx.Ava.Ui.Windows"
- mc:Ignorable="d"
- x:Class="Ryujinx.Ava.Ui.Controls.SwkbdAppletDialog"
- Width="400">
- <Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="20">
+<UserControl
+ x:Class="Ryujinx.Ava.Ui.Controls.SwkbdAppletDialog"
+ 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:window="clr-namespace:Ryujinx.Ava.Ui.Windows"
+ Width="400"
+ mc:Ignorable="d">
+ <Grid
+ Margin="20"
+ HorizontalAlignment="Stretch"
+ VerticalAlignment="Stretch">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
@@ -18,15 +22,43 @@
<ColumnDefinition Width="Auto" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
- <Image Grid.Row="1" VerticalAlignment="Center" Grid.RowSpan="5" Margin="5, 10, 20 , 10"
- Source="resm:Ryujinx.Ui.Common.Resources.Logo_Ryujinx.png?assembly=Ryujinx.Ui.Common" Height="80"
- MinWidth="50" />
- <TextBlock Grid.Row="1" Margin="5" Grid.Column="1" Text="{Binding MainText}" TextWrapping="Wrap" />
- <TextBlock Grid.Row="2" Margin="5" Grid.Column="1" Text="{Binding SecondaryText}" TextWrapping="Wrap" />
- <TextBox Name="Input" KeyUp="Message_KeyUp" UseFloatingWatermark="True" TextInput="Message_TextInput"
- Text="{Binding Message}" Grid.Row="2"
- Grid.Column="1" VerticalAlignment="Center" HorizontalAlignment="Stretch" TextWrapping="Wrap" />
- <TextBlock Name="Error" Margin="5" Grid.Row="4" Grid.Column="1" HorizontalAlignment="Stretch"
- TextWrapping="Wrap" />
+ <Image
+ Grid.Row="1"
+ Grid.RowSpan="5"
+ Height="80"
+ MinWidth="50"
+ Margin="5,10,20,10"
+ VerticalAlignment="Center"
+ Source="resm:Ryujinx.Ui.Common.Resources.Logo_Ryujinx.png?assembly=Ryujinx.Ui.Common" />
+ <TextBlock
+ Grid.Row="1"
+ Grid.Column="1"
+ Margin="5"
+ Text="{Binding MainText}"
+ TextWrapping="Wrap" />
+ <TextBlock
+ Grid.Row="2"
+ Grid.Column="1"
+ Margin="5"
+ Text="{Binding SecondaryText}"
+ TextWrapping="Wrap" />
+ <TextBox
+ Name="Input"
+ Grid.Row="2"
+ Grid.Column="1"
+ HorizontalAlignment="Stretch"
+ VerticalAlignment="Center"
+ KeyUp="Message_KeyUp"
+ Text="{Binding Message}"
+ TextInput="Message_TextInput"
+ TextWrapping="Wrap"
+ UseFloatingWatermark="True" />
+ <TextBlock
+ Name="Error"
+ Grid.Row="4"
+ Grid.Column="1"
+ Margin="5"
+ HorizontalAlignment="Stretch"
+ TextWrapping="Wrap" />
</Grid>
</UserControl> \ No newline at end of file
diff --git a/Ryujinx.Ava/Ui/Controls/GameGridView.axaml b/Ryujinx.Ava/Ui/Controls/GameGridView.axaml
index 13b75f11..431bcf00 100644
--- a/Ryujinx.Ava/Ui/Controls/GameGridView.axaml
+++ b/Ryujinx.Ava/Ui/Controls/GameGridView.axaml
@@ -1,188 +1,219 @@
-<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:flex="clr-namespace:Avalonia.Flexbox;assembly=Avalonia.Flexbox"
- xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale"
- xmlns:controls="clr-namespace:Ryujinx.Ava.Ui.Controls"
- xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
- mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
- x:Class="Ryujinx.Ava.Ui.Controls.GameGridView">
- <UserControl.Resources>
- <controls:BitmapArrayValueConverter x:Key="ByteImage" />
- <MenuFlyout x:Key="GameContextMenu" Opened="MenuBase_OnMenuOpened">
- <MenuItem
+<UserControl
+ x:Class="Ryujinx.Ava.Ui.Controls.GameGridView"
+ xmlns="https://github.com/avaloniaui"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:controls="clr-namespace:Ryujinx.Ava.Ui.Controls"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:flex="clr-namespace:Avalonia.Flexbox;assembly=Avalonia.Flexbox"
+ xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
+ d:DesignHeight="450"
+ d:DesignWidth="800"
+ mc:Ignorable="d">
+ <UserControl.Resources>
+ <controls:BitmapArrayValueConverter x:Key="ByteImage" />
+ <MenuFlyout x:Key="GameContextMenu" Opened="MenuBase_OnMenuOpened">
+ <MenuItem
Command="{Binding ToggleFavorite}"
Header="{locale:Locale GameListContextMenuToggleFavorite}"
ToolTip.Tip="{locale:Locale GameListContextMenuToggleFavoriteToolTip}" />
- <Separator />
- <MenuItem
+ <Separator />
+ <MenuItem
Command="{Binding OpenUserSaveDirectory}"
Header="{locale:Locale GameListContextMenuOpenUserSaveDirectory}"
ToolTip.Tip="{locale:Locale GameListContextMenuOpenUserSaveDirectoryToolTip}" />
- <MenuItem
+ <MenuItem
Command="{Binding OpenDeviceSaveDirectory}"
Header="{locale:Locale GameListContextMenuOpenUserDeviceDirectory}"
ToolTip.Tip="{locale:Locale GameListContextMenuOpenUserDeviceDirectoryToolTip}" />
- <MenuItem
+ <MenuItem
Command="{Binding OpenBcatSaveDirectory}"
Header="{locale:Locale GameListContextMenuOpenUserBcatDirectory}"
ToolTip.Tip="{locale:Locale GameListContextMenuOpenUserBcatDirectoryToolTip}" />
- <Separator />
- <MenuItem
+ <Separator />
+ <MenuItem
Command="{Binding OpenTitleUpdateManager}"
Header="{locale:Locale GameListContextMenuManageTitleUpdates}"
ToolTip.Tip="{locale:Locale GameListContextMenuManageTitleUpdatesToolTip}" />
- <MenuItem
+ <MenuItem
Command="{Binding OpenDlcManager}"
Header="{locale:Locale GameListContextMenuManageDlc}"
ToolTip.Tip="{locale:Locale GameListContextMenuManageDlcToolTip}" />
- <MenuItem
+ <MenuItem
Command="{Binding OpenCheatManager}"
Header="{locale:Locale GameListContextMenuManageCheat}"
ToolTip.Tip="{locale:Locale GameListContextMenuManageCheatToolTip}" />
- <MenuItem
+ <MenuItem
Command="{Binding OpenModsDirectory}"
Header="{locale:Locale GameListContextMenuOpenModsDirectory}"
ToolTip.Tip="{locale:Locale GameListContextMenuOpenModsDirectoryToolTip}" />
- <MenuItem
+ <MenuItem
Command="{Binding OpenSdModsDirectory}"
Header="{locale:Locale GameListContextMenuOpenSdModsDirectory}"
ToolTip.Tip="{locale:Locale GameListContextMenuOpenSdModsDirectoryToolTip}" />
- <Separator />
- <MenuItem Header="{locale:Locale GameListContextMenuCacheManagement}">
- <MenuItem
+ <Separator />
+ <MenuItem Header="{locale:Locale GameListContextMenuCacheManagement}">
+ <MenuItem
Command="{Binding PurgePtcCache}"
Header="{locale:Locale GameListContextMenuCacheManagementPurgePptc}"
ToolTip.Tip="{locale:Locale GameListContextMenuCacheManagementPurgePptcToolTip}" />
- <MenuItem
+ <MenuItem
Command="{Binding PurgeShaderCache}"
Header="{locale:Locale GameListContextMenuCacheManagementPurgeShaderCache}"
ToolTip.Tip="{locale:Locale GameListContextMenuCacheManagementPurgeShaderCacheToolTip}" />
- <MenuItem
+ <MenuItem
Command="{Binding OpenPtcDirectory}"
Header="{locale:Locale GameListContextMenuCacheManagementOpenPptcDirectory}"
ToolTip.Tip="{locale:Locale GameListContextMenuCacheManagementOpenPptcDirectoryToolTip}" />
- <MenuItem
+ <MenuItem
Command="{Binding OpenShaderCacheDirectory}"
Header="{locale:Locale GameListContextMenuCacheManagementOpenShaderCacheDirectory}"
ToolTip.Tip="{locale:Locale GameListContextMenuCacheManagementOpenShaderCacheDirectoryToolTip}" />
- </MenuItem>
- <MenuItem Header="{locale:Locale GameListContextMenuExtractData}">
- <MenuItem
+ </MenuItem>
+ <MenuItem Header="{locale:Locale GameListContextMenuExtractData}">
+ <MenuItem
Command="{Binding ExtractExeFs}"
Header="{locale:Locale GameListContextMenuExtractDataExeFS}"
ToolTip.Tip="{locale:Locale GameListContextMenuExtractDataExeFSToolTip}" />
- <MenuItem
+ <MenuItem
Command="{Binding ExtractRomFs}"
Header="{locale:Locale GameListContextMenuExtractDataRomFS}"
ToolTip.Tip="{locale:Locale GameListContextMenuExtractDataRomFSToolTip}" />
- <MenuItem
+ <MenuItem
Command="{Binding ExtractLogo}"
Header="{locale:Locale GameListContextMenuExtractDataLogo}"
ToolTip.Tip="{locale:Locale GameListContextMenuExtractDataLogoToolTip}" />
- </MenuItem>
- </MenuFlyout>
- </UserControl.Resources>
- <Grid>
- <Grid.RowDefinitions>
- <RowDefinition Height="*" />
- </Grid.RowDefinitions>
- <ListBox Grid.Row="0"
- Padding="8"
- HorizontalAlignment="Stretch"
- DoubleTapped="GameList_DoubleTapped"
- SelectionChanged="GameList_SelectionChanged"
- ContextFlyout="{StaticResource GameContextMenu}"
- VerticalAlignment="Stretch"
- Items="{Binding AppsObservableList}">
- <ListBox.ItemsPanel>
- <ItemsPanelTemplate>
- <flex:FlexPanel HorizontalAlignment="Stretch" VerticalAlignment="Stretch" JustifyContent="Center"
- AlignContent="FlexStart" />
- </ItemsPanelTemplate>
- </ListBox.ItemsPanel>
- <ListBox.Styles>
- <Style Selector="ListBoxItem">
- <Setter Property="Padding" Value="0" />
- <Setter Property="Margin" Value="5" />
- <Setter Property="CornerRadius" Value="5" />
- <Setter Property="Background" Value="{DynamicResource SystemAccentColorDark3}" />
- <Style.Animations>
- <Animation Duration="0:0:0.7">
- <KeyFrame Cue="0%">
- <Setter Property="MaxWidth" Value="0"/>
- <Setter Property="Opacity" Value="0.0"/>
- </KeyFrame>
- <KeyFrame Cue="50%">
- <Setter Property="MaxWidth" Value="1000"/>
- <Setter Property="Opacity" Value="0.3"/>
- </KeyFrame>
- <KeyFrame Cue="100%">
- <Setter Property="MaxWidth" Value="1000"/>
- <Setter Property="Opacity" Value="1.0"/>
- </KeyFrame>
- </Animation>
- </Style.Animations>
- </Style>
- </ListBox.Styles>
- <ListBox.ItemTemplate>
- <DataTemplate>
- <Grid>
- <Grid.Styles>
- <Style Selector="ui|SymbolIcon.small.icon">
- <Setter Property="FontSize" Value="15" />
- </Style>
- <Style Selector="ui|SymbolIcon.normal.icon">
- <Setter Property="FontSize" Value="19" />
- </Style>
- <Style Selector="ui|SymbolIcon.large.icon">
- <Setter Property="FontSize" Value="23" />
- </Style>
- <Style Selector="ui|SymbolIcon.huge.icon">
- <Setter Property="FontSize" Value="26" />
- </Style>
- </Grid.Styles>
- <Border
- Classes.small="{Binding $parent[UserControl].DataContext.IsGridSmall}"
+ </MenuItem>
+ </MenuFlyout>
+ </UserControl.Resources>
+ <Grid>
+ <Grid.RowDefinitions>
+ <RowDefinition Height="*" />
+ </Grid.RowDefinitions>
+ <ListBox
+ Grid.Row="0"
+ Padding="8"
+ HorizontalAlignment="Stretch"
+ VerticalAlignment="Stretch"
+ ContextFlyout="{StaticResource GameContextMenu}"
+ DoubleTapped="GameList_DoubleTapped"
+ Items="{Binding AppsObservableList}"
+ SelectionChanged="GameList_SelectionChanged">
+ <ListBox.ItemsPanel>
+ <ItemsPanelTemplate>
+ <flex:FlexPanel
+ HorizontalAlignment="Stretch"
+ VerticalAlignment="Stretch"
+ AlignContent="FlexStart"
+ JustifyContent="Center" />
+ </ItemsPanelTemplate>
+ </ListBox.ItemsPanel>
+ <ListBox.Styles>
+ <Style Selector="ListBoxItem">
+ <Setter Property="Padding" Value="0" />
+ <Setter Property="Margin" Value="5" />
+ <Setter Property="CornerRadius" Value="5" />
+ <Setter Property="Background" Value="{DynamicResource SystemAccentColorDark3}" />
+ <Style.Animations>
+ <Animation Duration="0:0:0.7">
+ <KeyFrame Cue="0%">
+ <Setter Property="MaxWidth" Value="0" />
+ <Setter Property="Opacity" Value="0.0" />
+ </KeyFrame>
+ <KeyFrame Cue="50%">
+ <Setter Property="MaxWidth" Value="1000" />
+ <Setter Property="Opacity" Value="0.3" />
+ </KeyFrame>
+ <KeyFrame Cue="100%">
+ <Setter Property="MaxWidth" Value="1000" />
+ <Setter Property="Opacity" Value="1.0" />
+ </KeyFrame>
+ </Animation>
+ </Style.Animations>
+ </Style>
+ </ListBox.Styles>
+ <ListBox.ItemTemplate>
+ <DataTemplate>
+ <Grid>
+ <Grid.Styles>
+ <Style Selector="ui|SymbolIcon.small.icon">
+ <Setter Property="FontSize" Value="15" />
+ </Style>
+ <Style Selector="ui|SymbolIcon.normal.icon">
+ <Setter Property="FontSize" Value="19" />
+ </Style>
+ <Style Selector="ui|SymbolIcon.large.icon">
+ <Setter Property="FontSize" Value="23" />
+ </Style>
+ <Style Selector="ui|SymbolIcon.huge.icon">
+ <Setter Property="FontSize" Value="26" />
+ </Style>
+ </Grid.Styles>
+ <Border
+ Margin="0"
+ Padding="{Binding $parent[UserControl].DataContext.GridItemPadding}"
+ HorizontalAlignment="Stretch"
+ VerticalAlignment="Stretch"
+ Classes.huge="{Binding $parent[UserControl].DataContext.IsGridHuge}"
+ Classes.large="{Binding $parent[UserControl].DataContext.IsGridLarge}"
Classes.normal="{Binding $parent[UserControl].DataContext.IsGridMedium}"
+ Classes.small="{Binding $parent[UserControl].DataContext.IsGridSmall}"
+ ClipToBounds="True"
+ CornerRadius="5">
+ <Grid Margin="0">
+ <Grid.RowDefinitions>
+ <RowDefinition Height="Auto" />
+ <RowDefinition Height="Auto" />
+ </Grid.RowDefinitions>
+ <Image
+ Grid.Row="0"
+ Margin="0"
+ HorizontalAlignment="Stretch"
+ VerticalAlignment="Top"
+ Source="{Binding Icon, Converter={StaticResource ByteImage}}" />
+ <StackPanel
+ Grid.Row="1"
+ Height="50"
+ Margin="5"
+ HorizontalAlignment="Stretch"
+ VerticalAlignment="Stretch"
+ IsVisible="{Binding $parent[UserControl].DataContext.ShowNames}">
+ <TextBlock
+ HorizontalAlignment="Stretch"
+ Text="{Binding TitleName}"
+ TextAlignment="Center"
+ TextWrapping="Wrap" />
+ </StackPanel>
+ </Grid>
+ </Border>
+ <ui:SymbolIcon
+ Margin="5"
+ HorizontalAlignment="Left"
+ VerticalAlignment="Top"
+ Classes.huge="{Binding $parent[UserControl].DataContext.IsGridHuge}"
+ Classes.icon="true"
Classes.large="{Binding $parent[UserControl].DataContext.IsGridLarge}"
+ Classes.normal="{Binding $parent[UserControl].DataContext.IsGridMedium}"
+ Classes.small="{Binding $parent[UserControl].DataContext.IsGridSmall}"
+ Foreground="Yellow"
+ IsVisible="{Binding Favorite}"
+ Symbol="StarFilled" />
+ <ui:SymbolIcon
+ Margin="5"
+ HorizontalAlignment="Left"
+ VerticalAlignment="Top"
Classes.huge="{Binding $parent[UserControl].DataContext.IsGridHuge}"
- HorizontalAlignment="Stretch"
- Padding="{Binding $parent[UserControl].DataContext.GridItemPadding}" CornerRadius="5"
- VerticalAlignment="Stretch" Margin="0" ClipToBounds="True">
- <Grid Margin="0">
- <Grid.RowDefinitions>
- <RowDefinition Height="Auto" />
- <RowDefinition Height="Auto" />
- </Grid.RowDefinitions>
- <Image HorizontalAlignment="Stretch" VerticalAlignment="Top" Margin="0" Grid.Row="0"
- Source="{Binding Icon, Converter={StaticResource ByteImage}}" />
- <StackPanel IsVisible="{Binding $parent[UserControl].DataContext.ShowNames}"
- Height="50" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
- Margin="5" Grid.Row="1">
- <TextBlock Text="{Binding TitleName}" TextAlignment="Center" TextWrapping="Wrap"
- HorizontalAlignment="Stretch" />
- </StackPanel>
- </Grid>
- </Border>
- <ui:SymbolIcon Classes.icon="true" Classes.small="{Binding $parent[UserControl].DataContext.IsGridSmall}"
- Classes.normal="{Binding $parent[UserControl].DataContext.IsGridMedium}"
- Classes.large="{Binding $parent[UserControl].DataContext.IsGridLarge}"
- Classes.huge="{Binding $parent[UserControl].DataContext.IsGridHuge}"
- Foreground="Yellow" Symbol="StarFilled"
- IsVisible="{Binding Favorite}" Margin="5" VerticalAlignment="Top"
- HorizontalAlignment="Left" />
- <ui:SymbolIcon Classes.icon="true" Classes.small="{Binding $parent[UserControl].DataContext.IsGridSmall}"
- Classes.normal="{Binding $parent[UserControl].DataContext.IsGridMedium}"
- Classes.large="{Binding $parent[UserControl].DataContext.IsGridLarge}"
- Classes.huge="{Binding $parent[UserControl].DataContext.IsGridHuge}"
- Foreground="Black" Symbol="Star"
- IsVisible="{Binding Favorite}" Margin="5" VerticalAlignment="Top"
- HorizontalAlignment="Left" />
- </Grid>
- </DataTemplate>
- </ListBox.ItemTemplate>
- </ListBox>
- </Grid>
+ Classes.icon="true"
+ Classes.large="{Binding $parent[UserControl].DataContext.IsGridLarge}"
+ Classes.normal="{Binding $parent[UserControl].DataContext.IsGridMedium}"
+ Classes.small="{Binding $parent[UserControl].DataContext.IsGridSmall}"
+ Foreground="Black"
+ IsVisible="{Binding Favorite}"
+ Symbol="Star" />
+ </Grid>
+ </DataTemplate>
+ </ListBox.ItemTemplate>
+ </ListBox>
+ </Grid>
</UserControl> \ No newline at end of file
diff --git a/Ryujinx.Ava/Ui/Controls/GameListView.axaml b/Ryujinx.Ava/Ui/Controls/GameListView.axaml
index 7ab79c23..6fe0b162 100644
--- a/Ryujinx.Ava/Ui/Controls/GameListView.axaml
+++ b/Ryujinx.Ava/Ui/Controls/GameListView.axaml
@@ -1,13 +1,16 @@
-<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:flex="clr-namespace:Avalonia.Flexbox;assembly=Avalonia.Flexbox"
- xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale"
- xmlns:controls="clr-namespace:Ryujinx.Ava.Ui.Controls"
- xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
- mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
- x:Class="Ryujinx.Ava.Ui.Controls.GameListView">
+<UserControl
+ x:Class="Ryujinx.Ava.Ui.Controls.GameListView"
+ xmlns="https://github.com/avaloniaui"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:controls="clr-namespace:Ryujinx.Ava.Ui.Controls"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:flex="clr-namespace:Avalonia.Flexbox;assembly=Avalonia.Flexbox"
+ xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
+ d:DesignHeight="450"
+ d:DesignWidth="800"
+ mc:Ignorable="d">
<UserControl.Resources>
<controls:BitmapArrayValueConverter x:Key="ByteImage" />
<MenuFlyout x:Key="GameContextMenu" Opened="MenuBase_OnMenuOpened">
@@ -88,18 +91,23 @@
<Grid.RowDefinitions>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
- <ListBox Grid.Row="0"
- Padding="8"
- HorizontalAlignment="Stretch"
- DoubleTapped="GameList_DoubleTapped"
- SelectionChanged="GameList_SelectionChanged"
- ContextFlyout="{StaticResource GameContextMenu}"
- VerticalAlignment="Stretch"
- Name="GameListBox"
- Items="{Binding AppsObservableList}">
+ <ListBox
+ Name="GameListBox"
+ Grid.Row="0"
+ Padding="8"
+ HorizontalAlignment="Stretch"
+ VerticalAlignment="Stretch"
+ ContextFlyout="{StaticResource GameContextMenu}"
+ DoubleTapped="GameList_DoubleTapped"
+ Items="{Binding AppsObservableList}"
+ SelectionChanged="GameList_SelectionChanged">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
- <StackPanel HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Orientation="Vertical" Spacing="2" />
+ <StackPanel
+ HorizontalAlignment="Stretch"
+ VerticalAlignment="Stretch"
+ Orientation="Vertical"
+ Spacing="2" />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.Styles>
@@ -112,16 +120,16 @@
<Style.Animations>
<Animation Duration="0:0:0.7">
<KeyFrame Cue="0%">
- <Setter Property="MaxHeight" Value="0"/>
- <Setter Property="Opacity" Value="0.0"/>
+ <Setter Property="MaxHeight" Value="0" />
+ <Setter Property="Opacity" Value="0.0" />
</KeyFrame>
<KeyFrame Cue="50%">
- <Setter Property="MaxHeight" Value="1000"/>
- <Setter Property="Opacity" Value="0.3"/>
+ <Setter Property="MaxHeight" Value="1000" />
+ <Setter Property="Opacity" Value="0.3" />
</KeyFrame>
<KeyFrame Cue="100%">
- <Setter Property="MaxHeight" Value="1000"/>
- <Setter Property="Opacity" Value="1.0"/>
+ <Setter Property="MaxHeight" Value="1000" />
+ <Setter Property="Opacity" Value="1.0" />
</KeyFrame>
</Animation>
</Style.Animations>
@@ -130,54 +138,96 @@
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
- <Border HorizontalAlignment="Stretch"
- Padding="10" CornerRadius="5"
- VerticalAlignment="Stretch" Margin="0" ClipToBounds="True">
- <Grid >
+ <Border
+ Margin="0"
+ Padding="10"
+ HorizontalAlignment="Stretch"
+ VerticalAlignment="Stretch"
+ ClipToBounds="True"
+ CornerRadius="5">
+ <Grid>
<Grid.ColumnDefinitions>
- <ColumnDefinition Width="Auto"/>
- <ColumnDefinition Width="10"/>
- <ColumnDefinition Width="*"/>
- <ColumnDefinition Width="Auto"/>
+ <ColumnDefinition Width="Auto" />
+ <ColumnDefinition Width="10" />
+ <ColumnDefinition Width="*" />
+ <ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
- <RowDefinition/>
+ <RowDefinition />
</Grid.RowDefinitions>
- <Image
- Classes.small="{Binding $parent[UserControl].DataContext.IsGridSmall}"
- Classes.normal="{Binding $parent[UserControl].DataContext.IsGridMedium}"
- Classes.large="{Binding $parent[UserControl].DataContext.IsGridLarge}"
+ <Image
+ Grid.RowSpan="3"
+ Grid.Column="0"
+ Margin="0"
Classes.huge="{Binding $parent[UserControl].DataContext.IsGridHuge}"
- Grid.RowSpan="3" Grid.Column="0" Margin="0"
- Source="{Binding Icon, Converter={StaticResource ByteImage}}" />
- <StackPanel Orientation="Vertical" Spacing="5" VerticalAlignment="Top" HorizontalAlignment="Left"
- Grid.Column="2">
- <TextBlock Text="{Binding TitleName}" TextAlignment="Left" TextWrapping="Wrap"
- HorizontalAlignment="Stretch" />
- <TextBlock Text="{Binding Developer}" TextAlignment="Left" TextWrapping="Wrap"
- HorizontalAlignment="Stretch" />
- <TextBlock Text="{Binding Version}" TextAlignment="Left" TextWrapping="Wrap"
- HorizontalAlignment="Stretch" />
- </StackPanel>
- <StackPanel Orientation="Vertical" Spacing="5" VerticalAlignment="Top" HorizontalAlignment="Right"
- Grid.Column="3">
- <TextBlock Text="{Binding TimePlayed}" TextAlignment="Right" TextWrapping="Wrap"
- HorizontalAlignment="Stretch" />
- <TextBlock Text="{Binding LastPlayed}" TextAlignment="Right" TextWrapping="Wrap"
- HorizontalAlignment="Stretch" />
- <TextBlock Text="{Binding FileSize}" TextAlignment="Right" TextWrapping="Wrap"
- HorizontalAlignment="Stretch" />
- </StackPanel>
- <ui:SymbolIcon Grid.Row="0" Grid.Column="0" FontSize="20"
- Foreground="Yellow"
- Symbol="StarFilled"
- IsVisible="{Binding Favorite}" Margin="-5, -5, 0, 0" VerticalAlignment="Top"
- HorizontalAlignment="Left" />
- <ui:SymbolIcon Grid.Row="0" Grid.Column="0" FontSize="20"
- Foreground="Black"
- Symbol="Star"
- IsVisible="{Binding Favorite}" Margin="-5, -5, 0, 0" VerticalAlignment="Top"
- HorizontalAlignment="Left" />
+ Classes.large="{Binding $parent[UserControl].DataContext.IsGridLarge}"
+ Classes.normal="{Binding $parent[UserControl].DataContext.IsGridMedium}"
+ Classes.small="{Binding $parent[UserControl].DataContext.IsGridSmall}"
+ Source="{Binding Icon, Converter={StaticResource ByteImage}}" />
+ <StackPanel
+ Grid.Column="2"
+ HorizontalAlignment="Left"
+ VerticalAlignment="Top"
+ Orientation="Vertical"
+ Spacing="5">
+ <TextBlock
+ HorizontalAlignment="Stretch"
+ Text="{Binding TitleName}"
+ TextAlignment="Left"
+ TextWrapping="Wrap" />
+ <TextBlock
+ HorizontalAlignment="Stretch"
+ Text="{Binding Developer}"
+ TextAlignment="Left"
+ TextWrapping="Wrap" />
+ <TextBlock
+ HorizontalAlignment="Stretch"
+ Text="{Binding Version}"
+ TextAlignment="Left"
+ TextWrapping="Wrap" />
+ </StackPanel>
+ <StackPanel
+ Grid.Column="3"
+ HorizontalAlignment="Right"
+ VerticalAlignment="Top"
+ Orientation="Vertical"
+ Spacing="5">
+ <TextBlock
+ HorizontalAlignment="Stretch"
+ Text="{Binding TimePlayed}"
+ TextAlignment="Right"
+ TextWrapping="Wrap" />
+ <TextBlock
+ HorizontalAlignment="Stretch"
+ Text="{Binding LastPlayed}"
+ TextAlignment="Right"
+ TextWrapping="Wrap" />
+ <TextBlock
+ HorizontalAlignment="Stretch"
+ Text="{Binding FileSize}"
+ TextAlignment="Right"
+ TextWrapping="Wrap" />
+ </StackPanel>
+ <ui:SymbolIcon
+ Grid.Row="0"
+ Grid.Column="0"
+ Margin="-5,-5,0,0"
+ HorizontalAlignment="Left"
+ VerticalAlignment="Top"
+ FontSize="20"
+ Foreground="Yellow"
+ IsVisible="{Binding Favorite}"
+ Symbol="StarFilled" />
+ <ui:SymbolIcon
+ Grid.Row="0"
+ Grid.Column="0"
+ Margin="-5,-5,0,0"
+ HorizontalAlignment="Left"
+ VerticalAlignment="Top"
+ FontSize="20"
+ Foreground="Black"
+ IsVisible="{Binding Favorite}"
+ Symbol="Star" />
</Grid>
</Border>
</Grid>
diff --git a/Ryujinx.Ava/Ui/Controls/InputDialog.axaml b/Ryujinx.Ava/Ui/Controls/InputDialog.axaml
index 6f320301..e665a812 100644
--- a/Ryujinx.Ava/Ui/Controls/InputDialog.axaml
+++ b/Ryujinx.Ava/Ui/Controls/InputDialog.axaml
@@ -1,18 +1,31 @@
-<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"
- mc:Ignorable="d"
- x:Class="Ryujinx.Ava.Ui.Controls.InputDialog">
- <Grid HorizontalAlignment="Stretch" VerticalAlignment="Center" Margin="5,10,5, 5">
+<UserControl
+ x:Class="Ryujinx.Ava.Ui.Controls.InputDialog"
+ 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"
+ mc:Ignorable="d">
+ <Grid
+ Margin="5,10,5,5"
+ HorizontalAlignment="Stretch"
+ VerticalAlignment="Center">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<TextBlock HorizontalAlignment="Center" Text="{Binding Message}" />
- <TextBox MaxLength="{Binding MaxLength}" Grid.Row="1" Margin="10" Width="300" HorizontalAlignment="Center"
- Text="{Binding Input, Mode=TwoWay}" />
- <TextBlock Grid.Row="2" Margin="5, 5, 5, 10" HorizontalAlignment="Center" Text="{Binding SubMessage}" />
+ <TextBox
+ Grid.Row="1"
+ Width="300"
+ Margin="10"
+ HorizontalAlignment="Center"
+ MaxLength="{Binding MaxLength}"
+ Text="{Binding Input, Mode=TwoWay}" />
+ <TextBlock
+ Grid.Row="2"
+ Margin="5,5,5,10"
+ HorizontalAlignment="Center"
+ Text="{Binding SubMessage}" />
</Grid>
</UserControl> \ No newline at end of file
diff --git a/Ryujinx.Ava/Ui/Controls/UpdateWaitWindow.axaml b/Ryujinx.Ava/Ui/Controls/UpdateWaitWindow.axaml
index 24aded24..247849ad 100644
--- a/Ryujinx.Ava/Ui/Controls/UpdateWaitWindow.axaml
+++ b/Ryujinx.Ava/Ui/Controls/UpdateWaitWindow.axaml
@@ -1,14 +1,18 @@
-<Window 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:window="clr-namespace:Ryujinx.Ava.Ui.Windows"
- mc:Ignorable="d"
- x:Class="Ryujinx.Ava.Ui.Controls.UpdateWaitWindow"
- WindowStartupLocation="CenterOwner"
- SizeToContent="WidthAndHeight"
- Title="Ryujinx - Waiting">
- <Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="20">
+<Window
+ x:Class="Ryujinx.Ava.Ui.Controls.UpdateWaitWindow"
+ 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:window="clr-namespace:Ryujinx.Ava.Ui.Windows"
+ Title="Ryujinx - Waiting"
+ SizeToContent="WidthAndHeight"
+ WindowStartupLocation="CenterOwner"
+ mc:Ignorable="d">
+ <Grid
+ Margin="20"
+ HorizontalAlignment="Stretch"
+ VerticalAlignment="Stretch">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
@@ -17,12 +21,22 @@
<ColumnDefinition Width="Auto" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
- <Image Grid.Row="1" Margin="5, 10, 20 , 10" Source="resm:Ryujinx.Ui.Common.Resources.Logo_Ryujinx.png?assembly=Ryujinx.Ui.Common"
- Height="70"
- MinWidth="50" />
- <StackPanel Grid.Row="1" Grid.Column="1" VerticalAlignment="Center" Orientation="Vertical">
- <TextBlock Margin="5" Name="PrimaryText" />
- <TextBlock VerticalAlignment="Center" Name="SecondaryText" Margin="5" />
+ <Image
+ Grid.Row="1"
+ Height="70"
+ MinWidth="50"
+ Margin="5,10,20,10"
+ Source="resm:Ryujinx.Ui.Common.Resources.Logo_Ryujinx.png?assembly=Ryujinx.Ui.Common" />
+ <StackPanel
+ Grid.Row="1"
+ Grid.Column="1"
+ VerticalAlignment="Center"
+ Orientation="Vertical">
+ <TextBlock Name="PrimaryText" Margin="5" />
+ <TextBlock
+ Name="SecondaryText"
+ Margin="5"
+ VerticalAlignment="Center" />
</StackPanel>
</Grid>
</Window> \ No newline at end of file
diff --git a/Ryujinx.Ava/Ui/Windows/AboutWindow.axaml b/Ryujinx.Ava/Ui/Windows/AboutWindow.axaml
index 20185fd2..aeaac5da 100644
--- a/Ryujinx.Ava/Ui/Windows/AboutWindow.axaml
+++ b/Ryujinx.Ava/Ui/Windows/AboutWindow.axaml
@@ -1,28 +1,41 @@
-<window:StyleableWindow 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"
- mc:Ignorable="d" d:DesignWidth="400" d:DesignHeight="350"
- x:Class="Ryujinx.Ava.Ui.Windows.AboutWindow"
- xmlns:window="clr-namespace:Ryujinx.Ava.Ui.Windows"
- xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale"
- CanResize="False"
- WindowStartupLocation="CenterOwner"
- Width="850" MinHeight="550" Height="550"
- SizeToContent="Width"
- MinWidth="500"
- Title="Ryujinx - About">
- <Grid Margin="15" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
+<window:StyleableWindow
+ x:Class="Ryujinx.Ava.Ui.Windows.AboutWindow"
+ xmlns="https://github.com/avaloniaui"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:window="clr-namespace:Ryujinx.Ava.Ui.Windows"
+ Title="Ryujinx - About"
+ Width="850"
+ Height="550"
+ MinWidth="500"
+ MinHeight="550"
+ d:DesignHeight="350"
+ d:DesignWidth="400"
+ CanResize="False"
+ SizeToContent="Width"
+ WindowStartupLocation="CenterOwner"
+ mc:Ignorable="d">
+ <Grid
+ Margin="15"
+ HorizontalAlignment="Stretch"
+ VerticalAlignment="Stretch">
<Grid.RowDefinitions>
- <RowDefinition Height="Auto"/>
- <RowDefinition Height="*"/>
+ <RowDefinition Height="Auto" />
+ <RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
- <Grid Grid.Row="1" Margin="20" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Grid.Column="0">
+ <Grid
+ Grid.Row="1"
+ Grid.Column="0"
+ Margin="20"
+ HorizontalAlignment="Stretch"
+ VerticalAlignment="Stretch">
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
@@ -40,93 +53,168 @@
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
- <Image Grid.Row="0" Grid.Column="0" Grid.RowSpan="3" Margin="5, 10, 20 , 10"
- Source="resm:Ryujinx.Ui.Common.Resources.Logo_Ryujinx.png?assembly=Ryujinx.Ui.Common" Height="110" MinWidth="50" />
- <TextBlock FontSize="35" TextAlignment="Center" Grid.Row="0" Grid.Column="1" Text="Ryujinx"
- Margin="0,20,0,0" />
- <TextBlock FontSize="16" TextAlignment="Center" Grid.Row="1" Grid.Column="1" Text="(REE-YOU-JINX)"
- Margin="0,0,0,0" />
- <Button Grid.Column="1" Background="Transparent" HorizontalAlignment="Center" Margin="0" Grid.Row="2"
- Tag="https://www.ryujinx.org/"
- Click="Button_OnClick">
- <TextBlock ToolTip.Tip="{locale:Locale AboutUrlTooltipMessage}"
- TextAlignment="Center" TextDecorations="Underline" Text="www.ryujinx.org" />
+ <Image
+ Grid.Row="0"
+ Grid.RowSpan="3"
+ Grid.Column="0"
+ Height="110"
+ MinWidth="50"
+ Margin="5,10,20,10"
+ Source="resm:Ryujinx.Ui.Common.Resources.Logo_Ryujinx.png?assembly=Ryujinx.Ui.Common" />
+ <TextBlock
+ Grid.Row="0"
+ Grid.Column="1"
+ Margin="0,20,0,0"
+ FontSize="35"
+ Text="Ryujinx"
+ TextAlignment="Center" />
+ <TextBlock
+ 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
+ Text="www.ryujinx.org"
+ TextAlignment="Center"
+ TextDecorations="Underline"
+ ToolTip.Tip="{locale:Locale AboutUrlTooltipMessage}" />
</Button>
</Grid>
- <TextBlock TextAlignment="Center" VerticalAlignment="Center" HorizontalAlignment="Center"
- Text="{Binding Version}" Grid.Row="1" />
- <TextBlock Grid.Row="2" TextAlignment="Center" HorizontalAlignment="Center" Margin="20"
- Text="{locale:Locale AboutDisclaimerMessage}"
- MaxLines="2" />
- <TextBlock Grid.Row="3" TextAlignment="Center" HorizontalAlignment="Center" Margin="20"
- Text="{locale:Locale AboutAmiiboDisclaimerMessage}"
- Name="AmiiboLabel"
- PointerPressed="AmiiboLabel_OnPointerPressed"
- MaxLines="2" />
- <StackPanel Spacing="10" Orientation="Horizontal" Grid.Row="4" HorizontalAlignment="Center">
- <StackPanel Orientation="Vertical"
- ToolTip.Tip="{locale:Locale AboutPatreonUrlTooltipMessage}">
- <Button Height="65" Background="Transparent" Tag="https://www.patreon.com/ryujinx"
- Click="Button_OnClick">
+ <TextBlock
+ Grid.Row="1"
+ HorizontalAlignment="Center"
+ VerticalAlignment="Center"
+ Text="{Binding Version}"
+ TextAlignment="Center" />
+ <TextBlock
+ Grid.Row="2"
+ Margin="20"
+ HorizontalAlignment="Center"
+ MaxLines="2"
+ Text="{locale:Locale AboutDisclaimerMessage}"
+ TextAlignment="Center" />
+ <TextBlock
+ Name="AmiiboLabel"
+ Grid.Row="3"
+ Margin="20"
+ HorizontalAlignment="Center"
+ MaxLines="2"
+ PointerPressed="AmiiboLabel_OnPointerPressed"
+ Text="{locale:Locale AboutAmiiboDisclaimerMessage}"
+ TextAlignment="Center" />
+ <StackPanel
+ Grid.Row="4"
+ HorizontalAlignment="Center"
+ Orientation="Horizontal"
+ Spacing="10">
+ <StackPanel Orientation="Vertical" ToolTip.Tip="{locale:Locale AboutPatreonUrlTooltipMessage}">
+ <Button
+ Height="65"
+ Background="Transparent"
+ Click="Button_OnClick"
+ Tag="https://www.patreon.com/ryujinx">
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Image Source="resm:Ryujinx.Ui.Common.Resources.Logo_Patreon.png?assembly=Ryujinx.Ui.Common" />
- <TextBlock Grid.Row="1" Margin="0,5,0,0" Text="Patreon" HorizontalAlignment="Center" />
+ <TextBlock
+ Grid.Row="1"
+ Margin="0,5,0,0"
+ HorizontalAlignment="Center"
+ Text="Patreon" />
</Grid>
</Button>
</StackPanel>
- <StackPanel Orientation="Vertical"
- ToolTip.Tip="{locale:Locale AboutGithubUrlTooltipMessage}">
- <Button Height="65" Background="Transparent" Tag="https://github.com/Ryujinx/Ryujinx"
- Click="Button_OnClick">
+ <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" Text="GitHub" HorizontalAlignment="Center" />
+ <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" Tag="https://discordapp.com/invite/N2FmfVc"
- Click="Button_OnClick">
+ <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" Text="Discord" HorizontalAlignment="Center" />
+ <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" Tag="https://twitter.com/RyujinxEmu"
- Click="Button_OnClick">
+ <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" Text="Twitter" HorizontalAlignment="Center" />
+ <TextBlock
+ Grid.Row="1"
+ Margin="0,5,0,0"
+ HorizontalAlignment="Center"
+ Text="Twitter" />
</Grid>
</Button>
</StackPanel>
</StackPanel>
</Grid>
- <Border Grid.Row="1" Grid.Column="1" VerticalAlignment="Stretch" Margin="5" Width="2" BorderBrush="White"
- BorderThickness="1,0,0,0">
+ <Border
+ Grid.Row="1"
+ Grid.Column="1"
+ Width="2"
+ Margin="5"
+ VerticalAlignment="Stretch"
+ BorderBrush="White"
+ BorderThickness="1,0,0,0">
<Separator Width="0" />
</Border>
- <Grid Grid.Row="1" Margin="20" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Grid.Column="2">
+ <Grid
+ Grid.Row="1"
+ Grid.Column="2"
+ Margin="20"
+ HorizontalAlignment="Stretch"
+ VerticalAlignment="Stretch">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
@@ -136,27 +224,58 @@
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
- <TextBlock Text="{locale:Locale AboutRyujinxAboutTitle}" FontWeight="Bold" TextDecorations="Underline" />
- <TextBlock LineHeight="20" Grid.Row="1" Margin="20,5,5,5"
- Text="{locale:Locale AboutRyujinxAboutContent}" />
- <TextBlock Grid.Row="2" Margin="0,10,0,0" Text="{locale:Locale AboutRyujinxMaintainersTitle}"
- FontWeight="Bold"
- TextDecorations="Underline" />
- <TextBlock LineHeight="20" Grid.Row="3" Margin="20,5,5,5"
- Text="{Binding Developers}" />
- <Button Background="Transparent" HorizontalAlignment="Right" Grid.Row="4"
- Tag="https://github.com/Ryujinx/Ryujinx/graphs/contributors?type=a" Click="Button_OnClick">
- <TextBlock ToolTip.Tip="{locale:Locale AboutRyujinxMaintainersContentTooltipMessage}"
- TextAlignment="Right" TextDecorations="Underline"
- Text="{locale:Locale AboutRyujinxContributorsButtonHeader}" />
+ <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
+ Text="{locale:Locale AboutRyujinxContributorsButtonHeader}"
+ TextAlignment="Right"
+ TextDecorations="Underline"
+ ToolTip.Tip="{locale:Locale AboutRyujinxMaintainersContentTooltipMessage}" />
</Button>
- <TextBlock Grid.Row="5" Margin="0,0,0,0" Text="{locale:Locale AboutRyujinxSupprtersTitle}"
- FontWeight="Bold"
- TextDecorations="Underline" />
- <Border Width="460" Grid.Row="6" VerticalAlignment="Stretch" Height="200" BorderThickness="1" Margin="20,5"
- BorderBrush="White" Padding="5">
- <TextBlock TextWrapping="Wrap" VerticalAlignment="Top" Name="SupportersTextBlock"
- Text="{Binding Supporters}" />
+ <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
+ Name="SupportersTextBlock"
+ VerticalAlignment="Top"
+ Text="{Binding Supporters}"
+ TextWrapping="Wrap" />
</Border>
</Grid>
</Grid>
diff --git a/Ryujinx.Ava/Ui/Windows/MainWindow.axaml b/Ryujinx.Ava/Ui/Windows/MainWindow.axaml
index 642f241c..532be219 100644
--- a/Ryujinx.Ava/Ui/Windows/MainWindow.axaml
+++ b/Ryujinx.Ava/Ui/Windows/MainWindow.axaml
@@ -1,25 +1,25 @@
<window:StyleableWindow
x:Class="Ryujinx.Ava.Ui.Windows.MainWindow"
xmlns="https://github.com/avaloniaui"
- xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale"
xmlns:controls="clr-namespace:Ryujinx.Ava.Ui.Controls"
- xmlns:models="clr-namespace:Ryujinx.Ava.Ui.Models"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:models="clr-namespace:Ryujinx.Ava.Ui.Models"
+ xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
xmlns:viewModels="clr-namespace:Ryujinx.Ava.Ui.ViewModels"
xmlns:window="clr-namespace:Ryujinx.Ava.Ui.Windows"
Title="Ryujinx"
- Height="785"
Width="1280"
- d:DesignHeight="720"
- d:DesignWidth="1280"
+ Height="785"
MinWidth="1024"
MinHeight="680"
- WindowStartupLocation="CenterScreen"
+ d:DesignHeight="720"
+ d:DesignWidth="1280"
x:CompileBindings="True"
x:DataType="viewModels:MainWindowViewModel"
+ WindowStartupLocation="CenterScreen"
mc:Ignorable="d">
<Window.Styles>
<Style Selector="TitleBar:fullscreen">
@@ -38,23 +38,28 @@
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<controls:OffscreenTextBox Name="HiddenTextBox" Grid.Row="0" />
- <ContentControl Grid.Row="1"
- Focusable="False"
- IsVisible="False"
- KeyboardNavigation.IsTabStop="False">
- <ui:ContentDialog Name="ContentDialog"
- KeyboardNavigation.IsTabStop="False"
- IsPrimaryButtonEnabled="True"
- IsSecondaryButtonEnabled="True"
- IsVisible="True" />
+ <ContentControl
+ Grid.Row="1"
+ Focusable="False"
+ IsVisible="False"
+ KeyboardNavigation.IsTabStop="False">
+ <ui:ContentDialog
+ Name="ContentDialog"
+ IsPrimaryButtonEnabled="True"
+ IsSecondaryButtonEnabled="True"
+ IsVisible="True"
+ KeyboardNavigation.IsTabStop="False" />
</ContentControl>
- <StackPanel IsVisible="False" Grid.Row="0">
+ <StackPanel Grid.Row="0" IsVisible="False">
<controls:HotKeyControl Name="FullscreenHotKey" Command="{ReflectionBinding ToggleFullscreen}" />
<controls:HotKeyControl Name="FullscreenHotKey2" Command="{ReflectionBinding ToggleFullscreen}" />
<controls:HotKeyControl Name="DockToggleHotKey" Command="{ReflectionBinding ToggleDockMode}" />
<controls:HotKeyControl Name="ExitHotKey" Command="{ReflectionBinding ExitCurrentState}" />
</StackPanel>
- <Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Grid.Row="1">
+ <Grid
+ Grid.Row="1"
+ HorizontalAlignment="Stretch"
+ VerticalAlignment="Stretch">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
@@ -73,47 +78,51 @@
<DockPanel HorizontalAlignment="Stretch">
<Menu
Name="Menu"
- Margin="0"
Height="35"
+ Margin="0"
HorizontalAlignment="Left">
<Menu.ItemsPanel>
<ItemsPanelTemplate>
- <DockPanel HorizontalAlignment="Stretch" Margin="0" />
+ <DockPanel Margin="0" HorizontalAlignment="Stretch" />
</ItemsPanelTemplate>
</Menu.ItemsPanel>
- <MenuItem
- VerticalAlignment="Center"
- Header="{locale:Locale MenuBarFile}">
- <MenuItem IsEnabled="{Binding EnableNonGameRunningControls}"
- Command="{ReflectionBinding OpenFile}"
- Header="{locale:Locale MenuBarFileOpenFromFile}"
- ToolTip.Tip="{locale:Locale LoadApplicationFileTooltip}" />
- <MenuItem IsEnabled="{Binding EnableNonGameRunningControls}"
- Command="{ReflectionBinding OpenFolder}"
- Header="{locale:Locale MenuBarFileOpenUnpacked}"
- ToolTip.Tip="{locale:Locale LoadApplicationFolderTooltip}" />
- <MenuItem Header="{locale:Locale MenuBarFileOpenApplet}"
- IsEnabled="{Binding IsAppletMenuActive}">
- <MenuItem Command="{ReflectionBinding OpenMiiApplet}" Header="Mii Edit Applet"
- ToolTip.Tip="{locale:Locale MenuBarFileOpenAppletOpenMiiAppletToolTip}" />
+ <MenuItem VerticalAlignment="Center" Header="{locale:Locale MenuBarFile}">
+ <MenuItem
+ Command="{ReflectionBinding OpenFile}"
+ Header="{locale:Locale MenuBarFileOpenFromFile}"
+ IsEnabled="{Binding EnableNonGameRunningControls}"
+ ToolTip.Tip="{locale:Locale LoadApplicationFileTooltip}" />
+ <MenuItem
+ Command="{ReflectionBinding OpenFolder}"
+ Header="{locale:Locale MenuBarFileOpenUnpacked}"
+ IsEnabled="{Binding EnableNonGameRunningControls}"
+ ToolTip.Tip="{locale:Locale LoadApplicationFolderTooltip}" />
+ <MenuItem Header="{locale:Locale MenuBarFileOpenApplet}" IsEnabled="{Binding IsAppletMenuActive}">
+ <MenuItem
+ Command="{ReflectionBinding OpenMiiApplet}"
+ Header="Mii Edit Applet"
+ ToolTip.Tip="{locale:Locale MenuBarFileOpenAppletOpenMiiAppletToolTip}" />
</MenuItem>
<Separator />
- <MenuItem Command="{ReflectionBinding OpenRyujinxFolder}"
- Header="{locale:Locale MenuBarFileOpenEmuFolder}"
- ToolTip.Tip="{locale:Locale OpenRyujinxFolderTooltip}" />
- <MenuItem Command="{ReflectionBinding OpenLogsFolder}"
- Header="{locale:Locale MenuBarFileOpenLogsFolder}"
- ToolTip.Tip="{locale:Locale OpenRyujinxLogsTooltip}" />
+ <MenuItem
+ Command="{ReflectionBinding OpenRyujinxFolder}"
+ Header="{locale:Locale MenuBarFileOpenEmuFolder}"
+ ToolTip.Tip="{locale:Locale OpenRyujinxFolderTooltip}" />
+ <MenuItem
+ Command="{ReflectionBinding OpenLogsFolder}"
+ Header="{locale:Locale MenuBarFileOpenLogsFolder}"
+ ToolTip.Tip="{locale:Locale OpenRyujinxLogsTooltip}" />
<Separator />
- <MenuItem Command="{ReflectionBinding CloseWindow}"
- Header="{locale:Locale MenuBarFileExit}"
- ToolTip.Tip="{locale:Locale ExitTooltip}" />
+ <MenuItem
+ Command="{ReflectionBinding CloseWindow}"
+ Header="{locale:Locale MenuBarFileExit}"
+ ToolTip.Tip="{locale:Locale ExitTooltip}" />
</MenuItem>
- <MenuItem
- VerticalAlignment="Center"
- Header="{locale:Locale MenuBarOptions}">
- <MenuItem Command="{ReflectionBinding ToggleFullscreen}"
- Header="{locale:Locale MenuBarOptionsToggleFullscreen}" InputGesture="F11" />
+ <MenuItem VerticalAlignment="Center" Header="{locale:Locale MenuBarOptions}">
+ <MenuItem
+ Command="{ReflectionBinding ToggleFullscreen}"
+ Header="{locale:Locale MenuBarOptionsToggleFullscreen}"
+ InputGesture="F11" />
<MenuItem Header="{locale:Locale MenuBarOptionsStartGamesInFullscreen}">
<MenuItem.Icon>
<CheckBox IsChecked="{Binding StartGamesInFullscreen, Mode=TwoWay}" />
@@ -126,60 +135,82 @@
</MenuItem>
<Separator />
<MenuItem Header="{locale:Locale MenuBarOptionsChangeLanguage}">
- <MenuItem Command="{ReflectionBinding ChangeLanguage}" CommandParameter="en_US"
- Header="American English" />
- <MenuItem Command="{ReflectionBinding ChangeLanguage}" CommandParameter="pt_BR"
- Header="Brazilian Portuguese" />
- <MenuItem Command="{ReflectionBinding ChangeLanguage}" CommandParameter="es_ES"
- Header="Castilian Spanish" />
- <MenuItem Command="{ReflectionBinding ChangeLanguage}" CommandParameter="fr_FR"
- Header="French" />
- <MenuItem Command="{ReflectionBinding ChangeLanguage}" CommandParameter="de_DE"
- Header="German" />
- <MenuItem Command="{ReflectionBinding ChangeLanguage}" CommandParameter="el_GR"
- Header="Greek" />
- <MenuItem Command="{ReflectionBinding ChangeLanguage}" CommandParameter="it_IT"
- Header="Italian" />
- <MenuItem Command="{ReflectionBinding ChangeLanguage}" CommandParameter="ko_KR"
- Header="Korean" />
- <MenuItem Command="{ReflectionBinding ChangeLanguage}" CommandParameter="ru_RU"
- Header="Russian" />
- <MenuItem Command="{ReflectionBinding ChangeLanguage}" CommandParameter="tr_TR"
- Header="Turkish" />
+ <MenuItem
+ Command="{ReflectionBinding ChangeLanguage}"
+ CommandParameter="en_US"
+ Header="American English" />
+ <MenuItem
+ Command="{ReflectionBinding ChangeLanguage}"
+ CommandParameter="pt_BR"
+ Header="Brazilian Portuguese" />
+ <MenuItem
+ Command="{ReflectionBinding ChangeLanguage}"
+ CommandParameter="es_ES"
+ Header="Castilian Spanish" />
+ <MenuItem
+ Command="{ReflectionBinding ChangeLanguage}"
+ CommandParameter="fr_FR"
+ Header="French" />
+ <MenuItem
+ Command="{ReflectionBinding ChangeLanguage}"
+ CommandParameter="de_DE"
+ Header="German" />
+ <MenuItem
+ Command="{ReflectionBinding ChangeLanguage}"
+ CommandParameter="el_GR"
+ Header="Greek" />
+ <MenuItem
+ Command="{ReflectionBinding ChangeLanguage}"
+ CommandParameter="it_IT"
+ Header="Italian" />
+ <MenuItem
+ Command="{ReflectionBinding ChangeLanguage}"
+ CommandParameter="ko_KR"
+ Header="Korean" />
+ <MenuItem
+ Command="{ReflectionBinding ChangeLanguage}"
+ CommandParameter="ru_RU"
+ Header="Russian" />
+ <MenuItem
+ Command="{ReflectionBinding ChangeLanguage}"
+ CommandParameter="tr_TR"
+ Header="Turkish" />
</MenuItem>
<Separator />
- <MenuItem Command="{ReflectionBinding OpenSettings}"
- Header="{locale:Locale MenuBarOptionsSettings}"
- ToolTip.Tip="{locale:Locale OpenSettingsTooltip}" />
- <MenuItem Command="{ReflectionBinding ManageProfiles}"
- IsEnabled="{Binding EnableNonGameRunningControls}"
- Header="{locale:Locale MenuBarOptionsManageUserProfiles}"
- ToolTip.Tip="{locale:Locale OpenProfileManagerTooltip}" />
+ <MenuItem
+ Command="{ReflectionBinding OpenSettings}"
+ Header="{locale:Locale MenuBarOptionsSettings}"
+ ToolTip.Tip="{locale:Locale OpenSettingsTooltip}" />
+ <MenuItem
+ Command="{ReflectionBinding ManageProfiles}"
+ Header="{locale:Locale MenuBarOptionsManageUserProfiles}"
+ IsEnabled="{Binding EnableNonGameRunningControls}"
+ ToolTip.Tip="{locale:Locale OpenProfileManagerTooltip}" />
</MenuItem>
<MenuItem
+ Name="ActionsMenuItem"
VerticalAlignment="Center"
Header="{locale:Locale MenuBarActions}"
- Name="ActionsMenuItem"
IsEnabled="{Binding IsGameRunning}">
<MenuItem
Click="PauseEmulation_Click"
Header="{locale:Locale MenuBarOptionsPauseEmulation}"
+ InputGesture="{Binding PauseKey}"
IsEnabled="{Binding !IsPaused}"
- IsVisible="{Binding !IsPaused}"
- InputGesture="{Binding PauseKey}" />
+ IsVisible="{Binding !IsPaused}" />
<MenuItem
Click="ResumeEmulation_Click"
Header="{locale:Locale MenuBarOptionsResumeEmulation}"
+ InputGesture="{Binding PauseKey}"
IsEnabled="{Binding IsPaused}"
- IsVisible="{Binding IsPaused}"
- InputGesture="{Binding PauseKey}" />
+ IsVisible="{Binding IsPaused}" />
<MenuItem
Click="StopEmulation_Click"
Header="{locale:Locale MenuBarOptionsStopEmulation}"
- ToolTip.Tip="{locale:Locale StopEmulationTooltip}"
- IsEnabled="{Binding IsGameRunning}" InputGesture="Escape" />
- <MenuItem Command="{ReflectionBinding SimulateWakeUpMessage}"
- Header="{locale:Locale MenuBarOptionsSimulateWakeUpMessage}" />
+ InputGesture="Escape"
+ IsEnabled="{Binding IsGameRunning}"
+ ToolTip.Tip="{locale:Locale StopEmulationTooltip}" />
+ <MenuItem Command="{ReflectionBinding SimulateWakeUpMessage}" Header="{locale:Locale MenuBarOptionsSimulateWakeUpMessage}" />
<Separator />
<MenuItem
Name="ScanAmiiboMenuItem"
@@ -187,41 +218,38 @@
Command="{ReflectionBinding OpenAmiiboWindow}"
Header="{locale:Locale MenuBarActionsScanAmiibo}"
IsEnabled="{Binding IsAmiiboRequested}" />
- <MenuItem Command="{ReflectionBinding TakeScreenshot}"
- IsEnabled="{Binding IsGameRunning}"
- Header="{locale:Locale MenuBarFileToolsTakeScreenshot}"
- InputGesture="{Binding ScreenshotKey}" />
- <MenuItem Command="{ReflectionBinding HideUi}"
- IsEnabled="{Binding IsGameRunning}"
- Header="{locale:Locale MenuBarFileToolsHideUi}"
- InputGesture="{Binding ShowUiKey}" />
- <MenuItem Command="{ReflectionBinding OpenCheatManagerForCurrentApp}"
- IsEnabled="{Binding IsGameRunning}"
- Header="{locale:Locale GameListContextMenuManageCheat}" />
+ <MenuItem
+ Command="{ReflectionBinding TakeScreenshot}"
+ Header="{locale:Locale MenuBarFileToolsTakeScreenshot}"
+ InputGesture="{Binding ScreenshotKey}"
+ IsEnabled="{Binding IsGameRunning}" />
+ <MenuItem
+ Command="{ReflectionBinding HideUi}"
+ Header="{locale:Locale MenuBarFileToolsHideUi}"
+ InputGesture="{Binding ShowUiKey}"
+ IsEnabled="{Binding IsGameRunning}" />
+ <MenuItem
+ Command="{ReflectionBinding OpenCheatManagerForCurrentApp}"
+ Header="{locale:Locale GameListContextMenuManageCheat}"
+ IsEnabled="{Binding IsGameRunning}" />
</MenuItem>
- <MenuItem
- VerticalAlignment="Center"
- Header="{locale:Locale MenuBarTools}">
- <MenuItem Header="{locale:Locale MenuBarToolsInstallFirmware}"
- IsEnabled="{Binding EnableNonGameRunningControls}">
- <MenuItem Command="{ReflectionBinding InstallFirmwareFromFile}"
- Header="{locale:Locale MenuBarFileToolsInstallFirmwareFromFile}" />
- <MenuItem Command="{ReflectionBinding InstallFirmwareFromFolder}"
- Header="{locale:Locale MenuBarFileToolsInstallFirmwareFromDirectory}" />
+ <MenuItem VerticalAlignment="Center" Header="{locale:Locale MenuBarTools}">
+ <MenuItem Header="{locale:Locale MenuBarToolsInstallFirmware}" IsEnabled="{Binding EnableNonGameRunningControls}">
+ <MenuItem Command="{ReflectionBinding InstallFirmwareFromFile}" Header="{locale:Locale MenuBarFileToolsInstallFirmwareFromFile}" />
+ <MenuItem Command="{ReflectionBinding InstallFirmwareFromFolder}" Header="{locale:Locale MenuBarFileToolsInstallFirmwareFromDirectory}" />
</MenuItem>
</MenuItem>
- <MenuItem
- VerticalAlignment="Center"
- Header="{locale:Locale MenuBarHelp}">
+ <MenuItem VerticalAlignment="Center" Header="{locale:Locale MenuBarHelp}">
<MenuItem
Name="UpdateMenuItem"
Command="{ReflectionBinding CheckForUpdates}"
Header="{locale:Locale MenuBarHelpCheckForUpdates}"
ToolTip.Tip="{locale:Locale CheckUpdatesTooltip}" />
<Separator />
- <MenuItem Command="{ReflectionBinding OpenAboutWindow}"
- Header="{locale:Locale MenuBarHelpAbout}"
- ToolTip.Tip="{locale:Locale OpenAboutTooltip}" />
+ <MenuItem
+ Command="{ReflectionBinding OpenAboutWindow}"
+ Header="{locale:Locale MenuBarHelpAbout}"
+ ToolTip.Tip="{locale:Locale OpenAboutTooltip}" />
</MenuItem>
</Menu>
</DockPanel>
@@ -230,152 +258,213 @@
Name="Content"
Grid.Row="1"
Padding="0"
- IsVisible="{Binding ShowContent}"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
BorderBrush="{DynamicResource ThemeControlBorderColor}"
BorderThickness="0,0,0,0"
- DockPanel.Dock="Top">
+ DockPanel.Dock="Top"
+ IsVisible="{Binding ShowContent}">
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
- <DockPanel Grid.Row="0" HorizontalAlignment="Stretch" Margin="0,0,0,5">
+ <DockPanel
+ Grid.Row="0"
+ Margin="0,0,0,5"
+ HorizontalAlignment="Stretch">
<Button
- IsEnabled="{Binding IsGrid}" VerticalAlignment="Stretch" MinWidth="40" Width="40"
- Margin="5,2,0,2" Command="{ReflectionBinding SetListMode}">
- <ui:FontIcon FontFamily="avares://FluentAvalonia/Fonts#Symbols"
- VerticalAlignment="Center"
- Margin="0"
- Glyph="{controls:GlyphValueConverter List}"
- HorizontalAlignment="Stretch" />
+ Width="40"
+ MinWidth="40"
+ Margin="5,2,0,2"
+ VerticalAlignment="Stretch"
+ Command="{ReflectionBinding SetListMode}"
+ IsEnabled="{Binding IsGrid}">
+ <ui:FontIcon
+ Margin="0"
+ HorizontalAlignment="Stretch"
+ VerticalAlignment="Center"
+ FontFamily="avares://FluentAvalonia/Fonts#Symbols"
+ Glyph="{controls:GlyphValueConverter List}" />
</Button>
<Button
- IsEnabled="{Binding IsList}" VerticalAlignment="Stretch" MinWidth="40" Width="40"
- Margin="5,2,5,2" Command="{ReflectionBinding SetGridMode}">
- <ui:FontIcon FontFamily="avares://FluentAvalonia/Fonts#Symbols"
- VerticalAlignment="Center"
- Margin="0"
- Glyph="{controls:GlyphValueConverter Grid}"
- HorizontalAlignment="Stretch" />
+ Width="40"
+ MinWidth="40"
+ Margin="5,2,5,2"
+ VerticalAlignment="Stretch"
+ Command="{ReflectionBinding SetGridMode}"
+ IsEnabled="{Binding IsList}">
+ <ui:FontIcon
+ Margin="0"
+ HorizontalAlignment="Stretch"
+ VerticalAlignment="Center"
+ FontFamily="avares://FluentAvalonia/Fonts#Symbols"
+ Glyph="{controls:GlyphValueConverter Grid}" />
</Button>
- <TextBlock Text="{locale:Locale IconSize}"
- VerticalAlignment="Center" Margin="10,0"
- ToolTip.Tip="{locale:Locale IconSizeTooltip}" />
- <Slider Width="150" Margin="5,-10,5 ,0" Height="35"
- ToolTip.Tip="{locale:Locale IconSizeTooltip}"
- VerticalAlignment="Center" Minimum="1" Maximum="4" IsSnapToTickEnabled="True"
- TickFrequency="1" Value="{Binding GridSizeScale}" />
- <CheckBox Margin="0" IsChecked="{Binding ShowNames, Mode=TwoWay}" VerticalAlignment="Center"
- IsVisible="{Binding IsGrid}">
- <TextBlock Text="{locale:Locale CommonShowNames}" Margin="5,3,0,0" />
+ <TextBlock
+ Margin="10,0"
+ VerticalAlignment="Center"
+ Text="{locale:Locale IconSize}"
+ ToolTip.Tip="{locale:Locale IconSizeTooltip}" />
+ <Slider
+ Width="150"
+ Height="35"
+ Margin="5,-10,5,0"
+ VerticalAlignment="Center"
+ IsSnapToTickEnabled="True"
+ Maximum="4"
+ Minimum="1"
+ TickFrequency="1"
+ ToolTip.Tip="{locale:Locale IconSizeTooltip}"
+ Value="{Binding GridSizeScale}" />
+ <CheckBox
+ Margin="0"
+ VerticalAlignment="Center"
+ IsChecked="{Binding ShowNames, Mode=TwoWay}"
+ IsVisible="{Binding IsGrid}">
+ <TextBlock Margin="5,3,0,0" Text="{locale:Locale CommonShowNames}" />
</CheckBox>
<TextBox
Name="SearchBox"
- DockPanel.Dock="Right"
- VerticalAlignment="Center"
MinWidth="200"
Margin="5,0,5,0"
HorizontalAlignment="Right"
+ VerticalAlignment="Center"
+ DockPanel.Dock="Right"
KeyUp="SearchBox_OnKeyUp"
Text="{Binding SearchText}"
Watermark="{locale:Locale MenuSearch}" />
- <ui:DropDownButton DockPanel.Dock="Right"
- HorizontalAlignment="Right" Width="150" VerticalAlignment="Center"
- Content="{Binding SortName}">
+ <ui:DropDownButton
+ Width="150"
+ HorizontalAlignment="Right"
+ VerticalAlignment="Center"
+ Content="{Binding SortName}"
+ DockPanel.Dock="Right">
<ui:DropDownButton.Flyout>
<Flyout Placement="Bottom">
- <StackPanel Orientation="Vertical" HorizontalAlignment="Stretch" Margin="0">
+ <StackPanel
+ Margin="0"
+ HorizontalAlignment="Stretch"
+ Orientation="Vertical">
<StackPanel>
- <RadioButton Tag="Favorite"
- IsChecked="{Binding IsSortedByFavorite, Mode=OneTime}"
- GroupName="Sort"
- Content="{locale:Locale CommonFavorite}"
- Checked="Sort_Checked" />
- <RadioButton Tag="Title" GroupName="Sort"
- IsChecked="{Binding IsSortedByTitle, Mode=OneTime}"
- Content="{locale:Locale GameListHeaderApplication}"
- Checked="Sort_Checked" />
- <RadioButton Tag="Developer" GroupName="Sort"
- IsChecked="{Binding IsSortedByDeveloper, Mode=OneTime}"
- Content="{locale:Locale GameListHeaderDeveloper}"
- Checked="Sort_Checked" />
- <RadioButton Tag="TotalTimePlayed" GroupName="Sort"
- IsChecked="{Binding IsSortedByTimePlayed, Mode=OneTime}"
- Content="{locale:Locale GameListHeaderTimePlayed}"
- Checked="Sort_Checked" />
- <RadioButton Tag="LastPlayed" GroupName="Sort"
- IsChecked="{Binding IsSortedByLastPlayed, Mode=OneTime}"
- Content="{locale:Locale GameListHeaderLastPlayed}"
- Checked="Sort_Checked" />
- <RadioButton Tag="FileType" GroupName="Sort"
- IsChecked="{Binding IsSortedByType, Mode=OneTime}"
- Content="{locale:Locale GameListHeaderFileExtension}"
- Checked="Sort_Checked" />
- <RadioButton Tag="FileSize" GroupName="Sort"
- IsChecked="{Binding IsSortedBySize, Mode=OneTime}"
- Content="{locale:Locale GameListHeaderFileSize}"
- Checked="Sort_Checked" />
- <RadioButton Tag="Path" GroupName="Sort"
- IsChecked="{Binding IsSortedByPath, Mode=OneTime}"
- Content="{locale:Locale GameListHeaderPath}"
- Checked="Sort_Checked" />
+ <RadioButton
+ Checked="Sort_Checked"
+ Content="{locale:Locale CommonFavorite}"
+ GroupName="Sort"
+ IsChecked="{Binding IsSortedByFavorite, Mode=OneTime}"
+ Tag="Favorite" />
+ <RadioButton
+ Checked="Sort_Checked"
+ Content="{locale:Locale GameListHeaderApplication}"
+ GroupName="Sort"
+ IsChecked="{Binding IsSortedByTitle, Mode=OneTime}"
+ Tag="Title" />
+ <RadioButton
+ Checked="Sort_Checked"
+ Content="{locale:Locale GameListHeaderDeveloper}"
+ GroupName="Sort"
+ IsChecked="{Binding IsSortedByDeveloper, Mode=OneTime}"
+ Tag="Developer" />
+ <RadioButton
+ Checked="Sort_Checked"
+ Content="{locale:Locale GameListHeaderTimePlayed}"
+ GroupName="Sort"
+ IsChecked="{Binding IsSortedByTimePlayed, Mode=OneTime}"
+ Tag="TotalTimePlayed" />
+ <RadioButton
+ Checked="Sort_Checked"
+ Content="{locale:Locale GameListHeaderLastPlayed}"
+ GroupName="Sort"
+ IsChecked="{Binding IsSortedByLastPlayed, Mode=OneTime}"
+ Tag="LastPlayed" />
+ <RadioButton
+ Checked="Sort_Checked"
+ Content="{locale:Locale GameListHeaderFileExtension}"
+ GroupName="Sort"
+ IsChecked="{Binding IsSortedByType, Mode=OneTime}"
+ Tag="FileType" />
+ <RadioButton
+ Checked="Sort_Checked"
+ Content="{locale:Locale GameListHeaderFileSize}"
+ GroupName="Sort"
+ IsChecked="{Binding IsSortedBySize, Mode=OneTime}"
+ Tag="FileSize" />
+ <RadioButton
+ Checked="Sort_Checked"
+ Content="{locale:Locale GameListHeaderPath}"
+ GroupName="Sort"
+ IsChecked="{Binding IsSortedByPath, Mode=OneTime}"
+ Tag="Path" />
</StackPanel>
- <Border HorizontalAlignment="Stretch" Margin="5" Height="2" BorderBrush="White"
- Width="60" BorderThickness="0,1,0,0">
- <Separator HorizontalAlignment="Stretch" Height="0" />
+ <Border
+ Width="60"
+ Height="2"
+ Margin="5"
+ HorizontalAlignment="Stretch"
+ BorderBrush="White"
+ BorderThickness="0,1,0,0">
+ <Separator Height="0" HorizontalAlignment="Stretch" />
</Border>
- <RadioButton Tag="Ascending" IsChecked="{Binding IsAscending, Mode=OneTime}"
- GroupName="Order"
- Content="{locale:Locale OrderAscending}" Checked="Order_Checked" />
- <RadioButton Tag="Descending" GroupName="Order"
- IsChecked="{Binding !IsAscending, Mode=OneTime}"
- Content="{locale:Locale OrderDescending}" Checked="Order_Checked" />
+ <RadioButton
+ Checked="Order_Checked"
+ Content="{locale:Locale OrderAscending}"
+ GroupName="Order"
+ IsChecked="{Binding IsAscending, Mode=OneTime}"
+ Tag="Ascending" />
+ <RadioButton
+ Checked="Order_Checked"
+ Content="{locale:Locale OrderDescending}"
+ GroupName="Order"
+ IsChecked="{Binding !IsAscending, Mode=OneTime}"
+ Tag="Descending" />
</StackPanel>
</Flyout>
</ui:DropDownButton.Flyout>
</ui:DropDownButton>
- <TextBlock DockPanel.Dock="Right" HorizontalAlignment="Right"
- Text="{locale:Locale CommonSort}" VerticalAlignment="Center" Margin="10,0" />
+ <TextBlock
+ Margin="10,0"
+ HorizontalAlignment="Right"
+ VerticalAlignment="Center"
+ DockPanel.Dock="Right"
+ Text="{locale:Locale CommonSort}" />
</DockPanel>
<controls:GameListView
x:Name="GameList"
Grid.Row="1"
- HorizontalContentAlignment="Stretch"
HorizontalAlignment="Stretch"
- VerticalContentAlignment="Stretch"
VerticalAlignment="Stretch"
+ HorizontalContentAlignment="Stretch"
+ VerticalContentAlignment="Stretch"
IsVisible="{Binding IsList}" />
<controls:GameGridView
x:Name="GameGrid"
Grid.Row="1"
- HorizontalContentAlignment="Stretch"
HorizontalAlignment="Stretch"
- VerticalContentAlignment="Stretch"
VerticalAlignment="Stretch"
+ HorizontalContentAlignment="Stretch"
+ VerticalContentAlignment="Stretch"
IsVisible="{Binding IsGrid}" />
</Grid>
</ContentControl>
- <Grid Grid.Row="1"
- VerticalAlignment="Stretch"
- Background="{DynamicResource ThemeContentBackgroundColor}"
- IsVisible="{Binding ShowLoadProgress}"
- ZIndex="1000"
- HorizontalAlignment="Stretch">
+ <Grid
+ Grid.Row="1"
+ HorizontalAlignment="Stretch"
+ VerticalAlignment="Stretch"
+ Background="{DynamicResource ThemeContentBackgroundColor}"
+ IsVisible="{Binding ShowLoadProgress}"
+ ZIndex="1000">
<Grid
- HorizontalAlignment="Center"
- IsVisible="{Binding ShowLoadProgress}"
Margin="40"
- VerticalAlignment="Center">
+ HorizontalAlignment="Center"
+ VerticalAlignment="Center"
+ IsVisible="{Binding ShowLoadProgress}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Border
- Grid.Column="0"
Grid.RowSpan="2"
- IsVisible="{Binding ShowLoadProgress}"
+ Grid.Column="0"
Width="256"
Height="256"
Margin="10"
@@ -383,62 +472,64 @@
BorderBrush="Black"
BorderThickness="2"
BoxShadow="4 4 32 8 #40000000"
- CornerRadius="3">
+ CornerRadius="3"
+ IsVisible="{Binding ShowLoadProgress}">
<Image
- IsVisible="{Binding ShowLoadProgress}"
Width="256"
Height="256"
+ IsVisible="{Binding ShowLoadProgress}"
Source="{Binding SelectedIcon, Converter={StaticResource ByteImage}}" />
</Border>
- <Grid Grid.Column="1"
- IsVisible="{Binding ShowLoadProgress}"
- HorizontalAlignment="Stretch"
- VerticalAlignment="Center">
+ <Grid
+ Grid.Column="1"
+ HorizontalAlignment="Stretch"
+ VerticalAlignment="Center"
+ IsVisible="{Binding ShowLoadProgress}">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<TextBlock
- IsVisible="{Binding ShowLoadProgress}"
Grid.Row="0"
Margin="10"
FontSize="30"
FontWeight="Bold"
- TextWrapping="Wrap"
+ IsVisible="{Binding ShowLoadProgress}"
Text="{Binding LoadHeading}"
- TextAlignment="Left" />
+ TextAlignment="Left"
+ TextWrapping="Wrap" />
<Border
- IsVisible="{Binding ShowLoadProgress}"
Grid.Row="1"
- CornerRadius="5"
- ClipToBounds="True"
- BorderBrush="{Binding ProgressBarBackgroundColor}"
+ Margin="10"
Padding="0"
HorizontalAlignment="Stretch"
- Margin="10"
- BorderThickness="1">
+ BorderBrush="{Binding ProgressBarBackgroundColor}"
+ BorderThickness="1"
+ ClipToBounds="True"
+ CornerRadius="5"
+ IsVisible="{Binding ShowLoadProgress}">
<ProgressBar
- IsVisible="{Binding ShowLoadProgress}"
Height="10"
+ MinWidth="500"
Margin="0"
Padding="0"
- CornerRadius="5"
- ClipToBounds="True"
- MinWidth="500"
HorizontalAlignment="Stretch"
Background="{Binding ProgressBarBackgroundColor}"
+ ClipToBounds="True"
+ CornerRadius="5"
Foreground="{Binding ProgressBarForegroundColor}"
+ IsIndeterminate="{Binding IsLoadingIndeterminate}"
+ IsVisible="{Binding ShowLoadProgress}"
Maximum="{Binding ProgressMaximum}"
Minimum="0"
- IsIndeterminate="{Binding IsLoadingIndeterminate}"
Value="{Binding ProgressValue}" />
</Border>
<TextBlock
- IsVisible="{Binding ShowLoadProgress}"
Grid.Row="2"
Margin="10"
FontSize="18"
+ IsVisible="{Binding ShowLoadProgress}"
Text="{Binding CacheLoadStatus}"
TextAlignment="Left" />
</Grid>
@@ -450,8 +541,8 @@
Height="30"
Margin="0,0"
HorizontalAlignment="Stretch"
- Background="{DynamicResource ThemeContentBackgroundColor}"
VerticalAlignment="Bottom"
+ Background="{DynamicResource ThemeContentBackgroundColor}"
DockPanel.Dock="Bottom"
IsVisible="{Binding ShowMenuAndStatusBar}">
<Grid.ColumnDefinitions>
@@ -460,8 +551,11 @@
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
- <StackPanel Grid.Column="0" IsVisible="{Binding EnableNonGameRunningControls}"
- VerticalAlignment="Center" Margin="10,0">
+ <StackPanel
+ Grid.Column="0"
+ Margin="10,0"
+ VerticalAlignment="Center"
+ IsVisible="{Binding EnableNonGameRunningControls}">
<Grid Margin="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
@@ -476,7 +570,10 @@
VerticalAlignment="Center"
Background="Transparent"
Command="{ReflectionBinding LoadApplications}">
- <ui:SymbolIcon Symbol="Refresh" Height="100" Width="50" />
+ <ui:SymbolIcon
+ Width="50"
+ Height="100"
+ Symbol="Refresh" />
</Button>
<TextBlock
Name="LoadStatus"
@@ -489,11 +586,11 @@
Name="LoadProgressBar"
Grid.Column="2"
Height="6"
- Maximum="{Binding StatusBarProgressMaximum}"
- Value="{Binding StatusBarProgressValue}"
VerticalAlignment="Center"
Foreground="{DynamicResource HighlightColor}"
- IsVisible="{Binding EnableNonGameRunningControls}" />
+ IsVisible="{Binding EnableNonGameRunningControls}"
+ Maximum="{Binding StatusBarProgressMaximum}"
+ Value="{Binding StatusBarProgressValue}" />
</Grid>
</StackPanel>
<StackPanel
@@ -505,132 +602,137 @@
Orientation="Horizontal">
<TextBlock
Name="VsyncStatus"
+ Margin="0,0,5,0"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Foreground="{Binding VsyncColor}"
- PointerReleased="VsyncStatus_PointerReleased"
IsVisible="{Binding !ShowLoadProgress}"
- Margin="0,0,5,0"
+ PointerReleased="VsyncStatus_PointerReleased"
Text="VSync"
TextAlignment="Left" />
<Border
Width="2"
+ Height="12"
Margin="2,0"
- IsVisible="{Binding !ShowLoadProgress}"
+ BorderBrush="Gray"
BorderThickness="1"
- Height="12"
- BorderBrush="Gray" />
+ IsVisible="{Binding !ShowLoadProgress}" />
<TextBlock
- Margin="5,0,5,0"
Name="DockedStatus"
- IsVisible="{Binding !ShowLoadProgress}"
+ Margin="5,0,5,0"
HorizontalAlignment="Left"
VerticalAlignment="Center"
+ IsVisible="{Binding !ShowLoadProgress}"
PointerReleased="DockedStatus_PointerReleased"
Text="{Binding DockedStatusText}"
TextAlignment="Left" />
<Border
Width="2"
+ Height="12"
Margin="2,0"
- IsVisible="{Binding !ShowLoadProgress}"
+ BorderBrush="Gray"
BorderThickness="1"
- Height="12"
- BorderBrush="Gray" />
+ IsVisible="{Binding !ShowLoadProgress}" />
<TextBlock
- Margin="5,0,5,0"
Name="AspectRatioStatus"
- IsVisible="{Binding !ShowLoadProgress}"
+ Margin="5,0,5,0"
HorizontalAlignment="Left"
VerticalAlignment="Center"
+ IsVisible="{Binding !ShowLoadProgress}"
PointerReleased="AspectRatioStatus_PointerReleased"
Text="{Binding AspectRatioStatusText}"
TextAlignment="Left" />
<Border
Width="2"
+ Height="12"
Margin="2,0"
- IsVisible="{Binding !ShowLoadProgress}"
+ BorderBrush="Gray"
BorderThickness="1"
- Height="12"
- BorderBrush="Gray" />
+ IsVisible="{Binding !ShowLoadProgress}" />
<ui:ToggleSplitButton
+ Name="VolumeStatus"
Margin="-2,0,-3,0"
Padding="5,0,0,5"
- Name="VolumeStatus"
HorizontalAlignment="Left"
VerticalAlignment="Center"
- IsVisible="{Binding !ShowLoadProgress}"
- BorderBrush="{DynamicResource ThemeContentBackgroundColor}"
Background="{DynamicResource ThemeContentBackgroundColor}"
+ BorderBrush="{DynamicResource ThemeContentBackgroundColor}"
+ Content="{Binding VolumeStatusText}"
IsChecked="{Binding VolumeMuted}"
- Content="{Binding VolumeStatusText}">
+ IsVisible="{Binding !ShowLoadProgress}">
<ui:ToggleSplitButton.Flyout>
<Flyout Placement="Bottom" ShowMode="TransientWithDismissOnPointerMoveAway">
<Grid Margin="0">
- <Slider Value="{Binding Volume}"
- ToolTip.Tip="{locale:Locale AudioVolumeTooltip}"
- Minimum="0"
- Maximum="1"
- TickFrequency="0.05"
- IsSnapToTickEnabled="True"
- Padding="0"
- Margin="0"
- SmallChange="0.01"
- LargeChange="0.05"
- Width="150" />
+ <Slider
+ Width="150"
+ Margin="0"
+ Padding="0"
+ IsSnapToTickEnabled="True"
+ LargeChange="0.05"
+ Maximum="1"
+ Minimum="0"
+ SmallChange="0.01"
+ TickFrequency="0.05"
+ ToolTip.Tip="{locale:Locale AudioVolumeTooltip}"
+ Value="{Binding Volume}" />
</Grid>
</Flyout>
</ui:ToggleSplitButton.Flyout>
</ui:ToggleSplitButton>
<Border
Width="2"
+ Height="12"
Margin="2,0"
- IsVisible="{Binding !ShowLoadProgress}"
+ BorderBrush="Gray"
BorderThickness="1"
- Height="12"
- BorderBrush="Gray" />
+ IsVisible="{Binding !ShowLoadProgress}" />
<TextBlock
Margin="5,0,5,0"
- IsVisible="{Binding !ShowLoadProgress}"
HorizontalAlignment="Left"
VerticalAlignment="Center"
+ IsVisible="{Binding !ShowLoadProgress}"
Text="{Binding GameStatusText}"
TextAlignment="Left" />
<Border
Width="2"
- IsVisible="{Binding !ShowLoadProgress}"
+ Height="12"
Margin="2,0"
+ BorderBrush="Gray"
BorderThickness="1"
- Height="12"
- BorderBrush="Gray" />
+ IsVisible="{Binding !ShowLoadProgress}" />
<TextBlock
Margin="5,0,5,0"
- IsVisible="{Binding !ShowLoadProgress}"
HorizontalAlignment="Left"
VerticalAlignment="Center"
+ IsVisible="{Binding !ShowLoadProgress}"
Text="{Binding FifoStatusText}"
TextAlignment="Left" />
<Border
Width="2"
+ Height="12"
Margin="2,0"
- IsVisible="{Binding !ShowLoadProgress}"
+ BorderBrush="Gray"
BorderThickness="1"
- Height="12"
- BorderBrush="Gray" />
+ IsVisible="{Binding !ShowLoadProgress}" />
<TextBlock
Margin="5,0,5,0"
- IsVisible="{Binding !ShowLoadProgress}"
HorizontalAlignment="Left"
VerticalAlignment="Center"
+ IsVisible="{Binding !ShowLoadProgress}"
Text="{Binding GpuStatusText}"
TextAlignment="Left" />
</StackPanel>
- <StackPanel VerticalAlignment="Center" IsVisible="{Binding ShowFirmwareStatus}" Grid.Column="3"
- Orientation="Horizontal" Margin="10, 0">
+ <StackPanel
+ Grid.Column="3"
+ Margin="10,0"
+ VerticalAlignment="Center"
+ IsVisible="{Binding ShowFirmwareStatus}"
+ Orientation="Horizontal">
<TextBlock
Name="FirmwareStatus"
+ Margin="0"
HorizontalAlignment="Right"
VerticalAlignment="Center"
- Margin="0"
Text="{locale:Locale StatusBarSystemVersion}" />
</StackPanel>
</Grid>
diff --git a/Ryujinx.Ava/Ui/Windows/UpdaterWindow.axaml b/Ryujinx.Ava/Ui/Windows/UpdaterWindow.axaml
index 31654a22..180ba52d 100644
--- a/Ryujinx.Ava/Ui/Windows/UpdaterWindow.axaml
+++ b/Ryujinx.Ava/Ui/Windows/UpdaterWindow.axaml
@@ -1,18 +1,26 @@
-<window:StyleableWindow 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"
- mc:Ignorable="d" d:DesignWidth="400" d:DesignHeight="350"
- xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale"
- x:Class="Ryujinx.Ava.Ui.Windows.UpdaterWindow"
- xmlns:window="clr-namespace:Ryujinx.Ava.Ui.Windows"
- CanResize="False"
- SizeToContent="Height"
- Width="500" MinHeight="500" Height="500"
- WindowStartupLocation="CenterOwner"
- MinWidth="500"
- Title="Ryujinx Updater">
- <Grid Margin="20" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
+<window:StyleableWindow
+ x:Class="Ryujinx.Ava.Ui.Windows.UpdaterWindow"
+ xmlns="https://github.com/avaloniaui"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:window="clr-namespace:Ryujinx.Ava.Ui.Windows"
+ Title="Ryujinx Updater"
+ Width="500"
+ Height="500"
+ MinWidth="500"
+ MinHeight="500"
+ d:DesignHeight="350"
+ d:DesignWidth="400"
+ CanResize="False"
+ SizeToContent="Height"
+ WindowStartupLocation="CenterOwner"
+ mc:Ignorable="d">
+ <Grid
+ Margin="20"
+ HorizontalAlignment="Stretch"
+ VerticalAlignment="Stretch">
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
@@ -20,17 +28,38 @@
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
- <TextBlock Grid.Row="1" HorizontalAlignment="Stretch" TextAlignment="Center" Height="20" Name="MainText" />
- <TextBlock Height="20" HorizontalAlignment="Stretch" TextAlignment="Center" Name="SecondaryText" Grid.Row="2" />
- <ProgressBar IsVisible="False" HorizontalAlignment="Stretch" Name="ProgressBar" Maximum="100" Minimum="0"
- Margin="20" Grid.Row="3" />
- <StackPanel IsVisible="False" Name="ButtonBox" Orientation="Horizontal" Spacing="20" Grid.Row="4"
- HorizontalAlignment="Right">
- <Button Command="{Binding YesPressed}" MinWidth="50">
- <TextBlock TextAlignment="Center" Text="{locale:Locale InputDialogYes}" />
+ <TextBlock
+ Name="MainText"
+ Grid.Row="1"
+ Height="20"
+ HorizontalAlignment="Stretch"
+ TextAlignment="Center" />
+ <TextBlock
+ Name="SecondaryText"
+ Grid.Row="2"
+ Height="20"
+ HorizontalAlignment="Stretch"
+ TextAlignment="Center" />
+ <ProgressBar
+ Name="ProgressBar"
+ Grid.Row="3"
+ Margin="20"
+ HorizontalAlignment="Stretch"
+ IsVisible="False"
+ Maximum="100"
+ Minimum="0" />
+ <StackPanel
+ Name="ButtonBox"
+ Grid.Row="4"
+ HorizontalAlignment="Right"
+ IsVisible="False"
+ Orientation="Horizontal"
+ Spacing="20">
+ <Button MinWidth="50" Command="{Binding YesPressed}">
+ <TextBlock Text="{locale:Locale InputDialogYes}" TextAlignment="Center" />
</Button>
- <Button Command="{Binding NoPressed}" MinWidth="50">
- <TextBlock TextAlignment="Center" Text="{locale:Locale InputDialogNo}" />
+ <Button MinWidth="50" Command="{Binding NoPressed}">
+ <TextBlock Text="{locale:Locale InputDialogNo}" TextAlignment="Center" />
</Button>
</StackPanel>
</Grid>