diff options
-rw-r--r-- | Ryujinx.Ava/App.axaml | 6 | ||||
-rw-r--r-- | Ryujinx.Ava/App.axaml.cs | 5 | ||||
-rw-r--r-- | Ryujinx.Ava/AppHost.cs | 23 | ||||
-rw-r--r-- | Ryujinx.Ava/Assets/Styles/BaseDark.xaml | 14 | ||||
-rw-r--r-- | Ryujinx.Ava/Assets/Styles/BaseLight.xaml | 14 | ||||
-rw-r--r-- | Ryujinx.Ava/Assets/Styles/Styles.xaml | 34 | ||||
-rw-r--r-- | Ryujinx.Ava/Ui/Applet/ErrorAppletWindow.axaml | 61 | ||||
-rw-r--r-- | Ryujinx.Ava/Ui/Applet/SwkbdAppletDialog.axaml | 70 | ||||
-rw-r--r-- | Ryujinx.Ava/Ui/Controls/GameGridView.axaml | 303 | ||||
-rw-r--r-- | Ryujinx.Ava/Ui/Controls/GameListView.axaml | 188 | ||||
-rw-r--r-- | Ryujinx.Ava/Ui/Controls/InputDialog.axaml | 33 | ||||
-rw-r--r-- | Ryujinx.Ava/Ui/Controls/UpdateWaitWindow.axaml | 48 | ||||
-rw-r--r-- | Ryujinx.Ava/Ui/Windows/AboutWindow.axaml | 285 | ||||
-rw-r--r-- | Ryujinx.Ava/Ui/Windows/MainWindow.axaml | 654 | ||||
-rw-r--r-- | Ryujinx.Ava/Ui/Windows/UpdaterWindow.axaml | 79 |
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 > Image"> <Setter Property="Margin" Value="10" /> </Style> - <Style Selector="#TitleBarHost > Label"> + <Style Selector="#TitleBarHost > 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> |