aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Ava/UI/Controls
diff options
context:
space:
mode:
authorTSR Berry <20988865+TSRBerry@users.noreply.github.com>2023-04-08 01:22:00 +0200
committerMary <thog@protonmail.com>2023-04-27 23:51:14 +0200
commitcee712105850ac3385cd0091a923438167433f9f (patch)
tree4a5274b21d8b7f938c0d0ce18736d3f2993b11b1 /Ryujinx.Ava/UI/Controls
parentcd124bda587ef09668a971fa1cac1c3f0cfc9f21 (diff)
Move solution and projects to src
Diffstat (limited to 'Ryujinx.Ava/UI/Controls')
-rw-r--r--Ryujinx.Ava/UI/Controls/GameGridView.axaml177
-rw-r--r--Ryujinx.Ava/UI/Controls/GameGridView.axaml.cs57
-rw-r--r--Ryujinx.Ava/UI/Controls/GameListView.axaml233
-rw-r--r--Ryujinx.Ava/UI/Controls/GameListView.axaml.cs57
-rw-r--r--Ryujinx.Ava/UI/Controls/NavigationDialogHost.axaml17
-rw-r--r--Ryujinx.Ava/UI/Controls/NavigationDialogHost.axaml.cs218
-rw-r--r--Ryujinx.Ava/UI/Controls/UpdateWaitWindow.axaml42
-rw-r--r--Ryujinx.Ava/UI/Controls/UpdateWaitWindow.axaml.cs31
8 files changed, 0 insertions, 832 deletions
diff --git a/Ryujinx.Ava/UI/Controls/GameGridView.axaml b/Ryujinx.Ava/UI/Controls/GameGridView.axaml
deleted file mode 100644
index 32cabfaa..00000000
--- a/Ryujinx.Ava/UI/Controls/GameGridView.axaml
+++ /dev/null
@@ -1,177 +0,0 @@
-<UserControl
- x:Class="Ryujinx.Ava.UI.Controls.GameGridView"
- 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: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"
- xmlns:helpers="clr-namespace:Ryujinx.Ava.UI.Helpers"
- d:DesignHeight="450"
- d:DesignWidth="800"
- mc:Ignorable="d"
- Focusable="True">
- <UserControl.Resources>
- <helpers:BitmapArrayValueConverter x:Key="ByteImage" />
- <MenuFlyout x:Key="GameContextMenu">
- <MenuItem
- Command="{Binding ToggleFavorite}"
- Header="{locale:Locale GameListContextMenuToggleFavorite}"
- ToolTip.Tip="{locale:Locale GameListContextMenuToggleFavoriteToolTip}" />
- <Separator />
- <MenuItem
- Command="{Binding OpenUserSaveDirectory}"
- IsEnabled="{Binding EnabledUserSaveDirectory}"
- Header="{locale:Locale GameListContextMenuOpenUserSaveDirectory}"
- ToolTip.Tip="{locale:Locale GameListContextMenuOpenUserSaveDirectoryToolTip}" />
- <MenuItem
- Command="{Binding OpenDeviceSaveDirectory}"
- IsEnabled="{Binding EnabledDeviceSaveDirectory}"
- Header="{locale:Locale GameListContextMenuOpenDeviceSaveDirectory}"
- ToolTip.Tip="{locale:Locale GameListContextMenuOpenDeviceSaveDirectoryToolTip}" />
- <MenuItem
- Command="{Binding OpenBcatSaveDirectory}"
- IsEnabled="{Binding EnabledBcatSaveDirectory}"
- Header="{locale:Locale GameListContextMenuOpenBcatSaveDirectory}"
- ToolTip.Tip="{locale:Locale GameListContextMenuOpenBcatSaveDirectoryToolTip}" />
- <Separator />
- <MenuItem
- Command="{Binding OpenTitleUpdateManager}"
- Header="{locale:Locale GameListContextMenuManageTitleUpdates}"
- ToolTip.Tip="{locale:Locale GameListContextMenuManageTitleUpdatesToolTip}" />
- <MenuItem
- Command="{Binding OpenDownloadableContentManager}"
- Header="{locale:Locale GameListContextMenuManageDlc}"
- ToolTip.Tip="{locale:Locale GameListContextMenuManageDlcToolTip}" />
- <MenuItem
- Command="{Binding OpenCheatManager}"
- Header="{locale:Locale GameListContextMenuManageCheat}"
- ToolTip.Tip="{locale:Locale GameListContextMenuManageCheatToolTip}" />
- <MenuItem
- Command="{Binding OpenModsDirectory}"
- Header="{locale:Locale GameListContextMenuOpenModsDirectory}"
- ToolTip.Tip="{locale:Locale GameListContextMenuOpenModsDirectoryToolTip}" />
- <MenuItem
- Command="{Binding OpenSdModsDirectory}"
- Header="{locale:Locale GameListContextMenuOpenSdModsDirectory}"
- ToolTip.Tip="{locale:Locale GameListContextMenuOpenSdModsDirectoryToolTip}" />
- <Separator />
- <MenuItem Header="{locale:Locale GameListContextMenuCacheManagement}">
- <MenuItem
- Command="{Binding PurgePtcCache}"
- Header="{locale:Locale GameListContextMenuCacheManagementPurgePptc}"
- ToolTip.Tip="{locale:Locale GameListContextMenuCacheManagementPurgePptcToolTip}" />
- <MenuItem
- Command="{Binding PurgeShaderCache}"
- Header="{locale:Locale GameListContextMenuCacheManagementPurgeShaderCache}"
- ToolTip.Tip="{locale:Locale GameListContextMenuCacheManagementPurgeShaderCacheToolTip}" />
- <MenuItem
- Command="{Binding OpenPtcDirectory}"
- Header="{locale:Locale GameListContextMenuCacheManagementOpenPptcDirectory}"
- ToolTip.Tip="{locale:Locale GameListContextMenuCacheManagementOpenPptcDirectoryToolTip}" />
- <MenuItem
- Command="{Binding OpenShaderCacheDirectory}"
- Header="{locale:Locale GameListContextMenuCacheManagementOpenShaderCacheDirectory}"
- ToolTip.Tip="{locale:Locale GameListContextMenuCacheManagementOpenShaderCacheDirectoryToolTip}" />
- </MenuItem>
- <MenuItem Header="{locale:Locale GameListContextMenuExtractData}">
- <MenuItem
- Command="{Binding ExtractExeFs}"
- Header="{locale:Locale GameListContextMenuExtractDataExeFS}"
- ToolTip.Tip="{locale:Locale GameListContextMenuExtractDataExeFSToolTip}" />
- <MenuItem
- Command="{Binding ExtractRomFs}"
- Header="{locale:Locale GameListContextMenuExtractDataRomFS}"
- ToolTip.Tip="{locale:Locale GameListContextMenuExtractDataRomFSToolTip}" />
- <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"
- 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="Margin" Value="5" />
- <Setter Property="CornerRadius" Value="4" />
- </Style>
- <Style Selector="ListBoxItem:selected /template/ Border#SelectionIndicator">
- <Setter Property="MinHeight" Value="{Binding $parent[UserControl].DataContext.GridItemSelectorSize}" />
- </Style>
- </ListBox.Styles>
- <ListBox.ItemTemplate>
- <DataTemplate>
- <Grid>
- <Border
- Margin="10"
- 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="4">
- <Grid>
- <Grid.RowDefinitions>
- <RowDefinition Height="Auto" />
- <RowDefinition Height="Auto" />
- </Grid.RowDefinitions>
- <Image
- Grid.Row="0"
- HorizontalAlignment="Stretch"
- VerticalAlignment="Top"
- Source="{Binding Icon, Converter={StaticResource ByteImage}}" />
- <Panel
- Grid.Row="1"
- Height="50"
- Margin="0 10 0 0"
- HorizontalAlignment="Stretch"
- VerticalAlignment="Stretch"
- IsVisible="{Binding $parent[UserControl].DataContext.ShowNames}">
- <TextBlock
- HorizontalAlignment="Stretch"
- VerticalAlignment="Center"
- Text="{Binding TitleName}"
- TextAlignment="Center"
- TextWrapping="Wrap" />
- </Panel>
- </Grid>
- </Border>
- <ui:SymbolIcon
- Margin="5,5,0,0"
- HorizontalAlignment="Left"
- VerticalAlignment="Top"
- FontSize="16"
- Foreground="{DynamicResource SystemAccentColor}"
- IsVisible="{Binding Favorite}"
- Symbol="StarFilled" />
- </Grid>
- </DataTemplate>
- </ListBox.ItemTemplate>
- </ListBox>
- </Grid>
-</UserControl> \ No newline at end of file
diff --git a/Ryujinx.Ava/UI/Controls/GameGridView.axaml.cs b/Ryujinx.Ava/UI/Controls/GameGridView.axaml.cs
deleted file mode 100644
index aa76b7c9..00000000
--- a/Ryujinx.Ava/UI/Controls/GameGridView.axaml.cs
+++ /dev/null
@@ -1,57 +0,0 @@
-using Avalonia.Controls;
-using Avalonia.Input;
-using Avalonia.Interactivity;
-using Avalonia.Markup.Xaml;
-using Ryujinx.Ava.UI.Helpers;
-using Ryujinx.Ava.UI.ViewModels;
-using Ryujinx.Ui.App.Common;
-using System;
-
-namespace Ryujinx.Ava.UI.Controls
-{
- public partial class GameGridView : UserControl
- {
- public static readonly RoutedEvent<ApplicationOpenedEventArgs> ApplicationOpenedEvent =
- RoutedEvent.Register<GameGridView, ApplicationOpenedEventArgs>(nameof(ApplicationOpened), RoutingStrategies.Bubble);
-
- public event EventHandler<ApplicationOpenedEventArgs> ApplicationOpened
- {
- add { AddHandler(ApplicationOpenedEvent, value); }
- remove { RemoveHandler(ApplicationOpenedEvent, value); }
- }
-
- public GameGridView()
- {
- InitializeComponent();
- }
-
- private void InitializeComponent()
- {
- AvaloniaXamlLoader.Load(this);
- }
-
- public void GameList_DoubleTapped(object sender, RoutedEventArgs args)
- {
- if (sender is ListBox listBox)
- {
- if (listBox.SelectedItem is ApplicationData selected)
- {
- RaiseEvent(new ApplicationOpenedEventArgs(selected, ApplicationOpenedEvent));
- }
- }
- }
-
- public void GameList_SelectionChanged(object sender, SelectionChangedEventArgs args)
- {
- if (sender is ListBox listBox)
- {
- (DataContext as MainWindowViewModel).GridSelectedApplication = listBox.SelectedItem as ApplicationData;
- }
- }
-
- private void SearchBox_OnKeyUp(object sender, KeyEventArgs e)
- {
- (DataContext as MainWindowViewModel).SearchText = (sender as TextBox).Text;
- }
- }
-}
diff --git a/Ryujinx.Ava/UI/Controls/GameListView.axaml b/Ryujinx.Ava/UI/Controls/GameListView.axaml
deleted file mode 100644
index c13eaae8..00000000
--- a/Ryujinx.Ava/UI/Controls/GameListView.axaml
+++ /dev/null
@@ -1,233 +0,0 @@
-<UserControl
- x:Class="Ryujinx.Ava.UI.Controls.GameListView"
- xmlns="https://github.com/avaloniaui"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
- xmlns:helpers="clr-namespace:Ryujinx.Ava.UI.Helpers"
- 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"
- Focusable="True"
- mc:Ignorable="d">
- <UserControl.Resources>
- <helpers:BitmapArrayValueConverter x:Key="ByteImage" />
- <MenuFlyout x:Key="GameContextMenu">
- <MenuItem
- Command="{Binding ToggleFavorite}"
- Header="{locale:Locale GameListContextMenuToggleFavorite}"
- ToolTip.Tip="{locale:Locale GameListContextMenuToggleFavoriteToolTip}" />
- <Separator />
- <MenuItem
- Command="{Binding OpenUserSaveDirectory}"
- IsEnabled="{Binding EnabledUserSaveDirectory}"
- Header="{locale:Locale GameListContextMenuOpenUserSaveDirectory}"
- ToolTip.Tip="{locale:Locale GameListContextMenuOpenUserSaveDirectoryToolTip}" />
- <MenuItem
- Command="{Binding OpenDeviceSaveDirectory}"
- IsEnabled="{Binding EnabledDeviceSaveDirectory}"
- Header="{locale:Locale GameListContextMenuOpenDeviceSaveDirectory}"
- ToolTip.Tip="{locale:Locale GameListContextMenuOpenDeviceSaveDirectoryToolTip}" />
- <MenuItem
- Command="{Binding OpenBcatSaveDirectory}"
- IsEnabled="{Binding EnabledBcatSaveDirectory}"
- Header="{locale:Locale GameListContextMenuOpenBcatSaveDirectory}"
- ToolTip.Tip="{locale:Locale GameListContextMenuOpenBcatSaveDirectoryToolTip}" />
- <Separator />
- <MenuItem
- Command="{Binding OpenTitleUpdateManager}"
- Header="{locale:Locale GameListContextMenuManageTitleUpdates}"
- ToolTip.Tip="{locale:Locale GameListContextMenuManageTitleUpdatesToolTip}" />
- <MenuItem
- Command="{Binding OpenDownloadableContentManager}"
- Header="{locale:Locale GameListContextMenuManageDlc}"
- ToolTip.Tip="{locale:Locale GameListContextMenuManageDlcToolTip}" />
- <MenuItem
- Command="{Binding OpenCheatManager}"
- Header="{locale:Locale GameListContextMenuManageCheat}"
- ToolTip.Tip="{locale:Locale GameListContextMenuManageCheatToolTip}" />
- <MenuItem
- Command="{Binding OpenModsDirectory}"
- Header="{locale:Locale GameListContextMenuOpenModsDirectory}"
- ToolTip.Tip="{locale:Locale GameListContextMenuOpenModsDirectoryToolTip}" />
- <MenuItem
- Command="{Binding OpenSdModsDirectory}"
- Header="{locale:Locale GameListContextMenuOpenSdModsDirectory}"
- ToolTip.Tip="{locale:Locale GameListContextMenuOpenSdModsDirectoryToolTip}" />
- <Separator />
- <MenuItem Header="{locale:Locale GameListContextMenuCacheManagement}">
- <MenuItem
- Command="{Binding PurgePtcCache}"
- Header="{locale:Locale GameListContextMenuCacheManagementPurgePptc}"
- ToolTip.Tip="{locale:Locale GameListContextMenuCacheManagementPurgePptcToolTip}" />
- <MenuItem
- Command="{Binding PurgeShaderCache}"
- Header="{locale:Locale GameListContextMenuCacheManagementPurgeShaderCache}"
- ToolTip.Tip="{locale:Locale GameListContextMenuCacheManagementPurgeShaderCacheToolTip}" />
- <MenuItem
- Command="{Binding OpenPtcDirectory}"
- Header="{locale:Locale GameListContextMenuCacheManagementOpenPptcDirectory}"
- ToolTip.Tip="{locale:Locale GameListContextMenuCacheManagementOpenPptcDirectoryToolTip}" />
- <MenuItem
- Command="{Binding OpenShaderCacheDirectory}"
- Header="{locale:Locale GameListContextMenuCacheManagementOpenShaderCacheDirectory}"
- ToolTip.Tip="{locale:Locale GameListContextMenuCacheManagementOpenShaderCacheDirectoryToolTip}" />
- </MenuItem>
- <MenuItem Header="{locale:Locale GameListContextMenuExtractData}">
- <MenuItem
- Command="{Binding ExtractExeFs}"
- Header="{locale:Locale GameListContextMenuExtractDataExeFS}"
- ToolTip.Tip="{locale:Locale GameListContextMenuExtractDataExeFSToolTip}" />
- <MenuItem
- Command="{Binding ExtractRomFs}"
- Header="{locale:Locale GameListContextMenuExtractDataRomFS}"
- ToolTip.Tip="{locale:Locale GameListContextMenuExtractDataRomFSToolTip}" />
- <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
- 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" />
- </ItemsPanelTemplate>
- </ListBox.ItemsPanel>
- <ListBox.Styles>
- <Style Selector="ListBoxItem:selected /template/ Border#SelectionIndicator">
- <Setter Property="MinHeight" Value="{Binding $parent[UserControl].DataContext.ListItemSelectorSize}" />
- </Style>
- </ListBox.Styles>
- <ListBox.ItemTemplate>
- <DataTemplate>
- <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="150" />
- <ColumnDefinition Width="100" />
- </Grid.ColumnDefinitions>
- <Image
- Grid.RowSpan="3"
- Grid.Column="0"
- Margin="0"
- 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}"
- Source="{Binding Icon, Converter={StaticResource ByteImage}}" />
- <Border
- Grid.Column="2"
- Margin="0,0,5,0"
- BorderBrush="{DynamicResource ThemeControlBorderColor}"
- BorderThickness="0,0,1,0">
- <StackPanel
- HorizontalAlignment="Left"
- VerticalAlignment="Top"
- Orientation="Vertical"
- Spacing="5">
- <TextBlock
- HorizontalAlignment="Stretch"
- FontWeight="Bold"
- 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>
- </Border>
- <StackPanel
- Grid.Column="3"
- Margin="10,0,0,0"
- HorizontalAlignment="Left"
- VerticalAlignment="Top"
- Orientation="Vertical"
- Spacing="5">
- <TextBlock
- HorizontalAlignment="Stretch"
- Text="{Binding TitleId}"
- TextAlignment="Left"
- TextWrapping="Wrap" />
- <TextBlock
- HorizontalAlignment="Stretch"
- Text="{Binding FileExtension}"
- TextAlignment="Left"
- TextWrapping="Wrap" />
- </StackPanel>
- <StackPanel
- Grid.Column="4"
- 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="16"
- Foreground="{DynamicResource SystemAccentColor}"
- IsVisible="{Binding Favorite}"
- Symbol="StarFilled" />
- </Grid>
- </Border>
- </Grid>
- </DataTemplate>
- </ListBox.ItemTemplate>
- </ListBox>
- </Grid>
-</UserControl> \ No newline at end of file
diff --git a/Ryujinx.Ava/UI/Controls/GameListView.axaml.cs b/Ryujinx.Ava/UI/Controls/GameListView.axaml.cs
deleted file mode 100644
index a6449709..00000000
--- a/Ryujinx.Ava/UI/Controls/GameListView.axaml.cs
+++ /dev/null
@@ -1,57 +0,0 @@
-using Avalonia.Controls;
-using Avalonia.Input;
-using Avalonia.Interactivity;
-using Avalonia.Markup.Xaml;
-using Ryujinx.Ava.UI.Helpers;
-using Ryujinx.Ava.UI.ViewModels;
-using Ryujinx.Ui.App.Common;
-using System;
-
-namespace Ryujinx.Ava.UI.Controls
-{
- public partial class GameListView : UserControl
- {
- public static readonly RoutedEvent<ApplicationOpenedEventArgs> ApplicationOpenedEvent =
- RoutedEvent.Register<GameGridView, ApplicationOpenedEventArgs>(nameof(ApplicationOpened), RoutingStrategies.Bubble);
-
- public event EventHandler<ApplicationOpenedEventArgs> ApplicationOpened
- {
- add { AddHandler(ApplicationOpenedEvent, value); }
- remove { RemoveHandler(ApplicationOpenedEvent, value); }
- }
-
- public GameListView()
- {
- InitializeComponent();
- }
-
- private void InitializeComponent()
- {
- AvaloniaXamlLoader.Load(this);
- }
-
- public void GameList_DoubleTapped(object sender, RoutedEventArgs args)
- {
- if (sender is ListBox listBox)
- {
- if (listBox.SelectedItem is ApplicationData selected)
- {
- RaiseEvent(new ApplicationOpenedEventArgs(selected, ApplicationOpenedEvent));
- }
- }
- }
-
- public void GameList_SelectionChanged(object sender, SelectionChangedEventArgs args)
- {
- if (sender is ListBox listBox)
- {
- (DataContext as MainWindowViewModel).ListSelectedApplication = listBox.SelectedItem as ApplicationData;
- }
- }
-
- private void SearchBox_OnKeyUp(object sender, KeyEventArgs e)
- {
- (DataContext as MainWindowViewModel).SearchText = (sender as TextBox).Text;
- }
- }
-}
diff --git a/Ryujinx.Ava/UI/Controls/NavigationDialogHost.axaml b/Ryujinx.Ava/UI/Controls/NavigationDialogHost.axaml
deleted file mode 100644
index bf34b303..00000000
--- a/Ryujinx.Ava/UI/Controls/NavigationDialogHost.axaml
+++ /dev/null
@@ -1,17 +0,0 @@
-<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:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
- mc:Ignorable="d"
- d:DesignWidth="800"
- d:DesignHeight="450"
- x:Class="Ryujinx.Ava.UI.Controls.NavigationDialogHost"
- Focusable="True">
- <ui:Frame
- HorizontalAlignment="Stretch"
- VerticalAlignment="Stretch"
- x:Name="ContentFrame">
- </ui:Frame>
-</UserControl> \ No newline at end of file
diff --git a/Ryujinx.Ava/UI/Controls/NavigationDialogHost.axaml.cs b/Ryujinx.Ava/UI/Controls/NavigationDialogHost.axaml.cs
deleted file mode 100644
index 1b857fae..00000000
--- a/Ryujinx.Ava/UI/Controls/NavigationDialogHost.axaml.cs
+++ /dev/null
@@ -1,218 +0,0 @@
-using Avalonia;
-using Avalonia.Controls;
-using Avalonia.Styling;
-using Avalonia.Threading;
-using FluentAvalonia.Core;
-using FluentAvalonia.UI.Controls;
-using LibHac;
-using LibHac.Common;
-using LibHac.Fs;
-using LibHac.Fs.Shim;
-using Ryujinx.Ava.Common.Locale;
-using Ryujinx.Ava.UI.Helpers;
-using Ryujinx.Ava.UI.Models;
-using Ryujinx.Ava.UI.ViewModels;
-using Ryujinx.Ava.UI.Views.User;
-using Ryujinx.HLE.FileSystem;
-using Ryujinx.HLE.HOS.Services.Account.Acc;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Threading.Tasks;
-using UserProfile = Ryujinx.Ava.UI.Models.UserProfile;
-
-namespace Ryujinx.Ava.UI.Controls
-{
- public partial class NavigationDialogHost : UserControl
- {
- public AccountManager AccountManager { get; }
- public ContentManager ContentManager { get; }
- public VirtualFileSystem VirtualFileSystem { get; }
- public HorizonClient HorizonClient { get; }
- public UserProfileViewModel ViewModel { get; set; }
-
- public NavigationDialogHost()
- {
- InitializeComponent();
- }
-
- public NavigationDialogHost(AccountManager accountManager, ContentManager contentManager,
- VirtualFileSystem virtualFileSystem, HorizonClient horizonClient)
- {
- AccountManager = accountManager;
- ContentManager = contentManager;
- VirtualFileSystem = virtualFileSystem;
- HorizonClient = horizonClient;
- ViewModel = new UserProfileViewModel();
- LoadProfiles();
-
- if (contentManager.GetCurrentFirmwareVersion() != null)
- {
- Task.Run(() =>
- {
- UserFirmwareAvatarSelectorViewModel.PreloadAvatars(contentManager, virtualFileSystem);
- });
- }
- InitializeComponent();
- }
-
- public void GoBack(object parameter = null)
- {
- if (ContentFrame.BackStack.Count > 0)
- {
- ContentFrame.GoBack();
- }
-
- LoadProfiles();
- }
-
- public void Navigate(Type sourcePageType, object parameter)
- {
- ContentFrame.Navigate(sourcePageType, parameter);
- }
-
- public static async Task Show(AccountManager ownerAccountManager, ContentManager ownerContentManager,
- VirtualFileSystem ownerVirtualFileSystem, HorizonClient ownerHorizonClient)
- {
- var content = new NavigationDialogHost(ownerAccountManager, ownerContentManager, ownerVirtualFileSystem, ownerHorizonClient);
- ContentDialog contentDialog = new ContentDialog
- {
- Title = LocaleManager.Instance[LocaleKeys.UserProfileWindowTitle],
- PrimaryButtonText = "",
- SecondaryButtonText = "",
- CloseButtonText = "",
- Content = content,
- Padding = new Thickness(0)
- };
-
- contentDialog.Closed += (sender, args) =>
- {
- content.ViewModel.Dispose();
- };
-
- Style footer = new(x => x.Name("DialogSpace").Child().OfType<Border>());
- footer.Setters.Add(new Setter(IsVisibleProperty, false));
-
- contentDialog.Styles.Add(footer);
-
- await contentDialog.ShowAsync();
- }
-
- protected override void OnAttachedToVisualTree(VisualTreeAttachmentEventArgs e)
- {
- base.OnAttachedToVisualTree(e);
-
- Navigate(typeof(UserSelectorViews), this);
- }
-
- public void LoadProfiles()
- {
- ViewModel.Profiles.Clear();
- ViewModel.LostProfiles.Clear();
-
- var profiles = AccountManager.GetAllUsers().OrderBy(x => x.Name);
-
- foreach (var profile in profiles)
- {
- ViewModel.Profiles.Add(new UserProfile(profile, this));
- }
-
- var saveDataFilter = SaveDataFilter.Make(programId: default, saveType: SaveDataType.Account, default, saveDataId: default, index: default);
-
- using var saveDataIterator = new UniqueRef<SaveDataIterator>();
-
- HorizonClient.Fs.OpenSaveDataIterator(ref saveDataIterator.Ref, SaveDataSpaceId.User, in saveDataFilter).ThrowIfFailure();
-
- Span<SaveDataInfo> saveDataInfo = stackalloc SaveDataInfo[10];
-
- HashSet<HLE.HOS.Services.Account.Acc.UserId> lostAccounts = new();
-
- while (true)
- {
- saveDataIterator.Get.ReadSaveDataInfo(out long readCount, saveDataInfo).ThrowIfFailure();
-
- if (readCount == 0)
- {
- break;
- }
-
- for (int i = 0; i < readCount; i++)
- {
- var save = saveDataInfo[i];
- var id = new HLE.HOS.Services.Account.Acc.UserId((long)save.UserId.Id.Low, (long)save.UserId.Id.High);
- if (ViewModel.Profiles.Cast<UserProfile>().FirstOrDefault( x=> x.UserId == id) == null)
- {
- lostAccounts.Add(id);
- }
- }
- }
-
- foreach(var account in lostAccounts)
- {
- ViewModel.LostProfiles.Add(new UserProfile(new HLE.HOS.Services.Account.Acc.UserProfile(account, "", null), this));
- }
-
- ViewModel.Profiles.Add(new BaseModel());
- }
-
- public async void DeleteUser(UserProfile userProfile)
- {
- var lastUserId = AccountManager.LastOpenedUser.UserId;
-
- if (userProfile.UserId == lastUserId)
- {
- // If we are deleting the currently open profile, then we must open something else before deleting.
- var profile = ViewModel.Profiles.Cast<UserProfile>().FirstOrDefault(x => x.UserId != lastUserId);
-
- if (profile == null)
- {
- async void Action()
- {
- await ContentDialogHelper.CreateErrorDialog(LocaleManager.Instance[LocaleKeys.DialogUserProfileDeletionWarningMessage]);
- }
-
- Dispatcher.UIThread.Post(Action);
-
- return;
- }
-
- AccountManager.OpenUser(profile.UserId);
- }
-
- var result = await ContentDialogHelper.CreateConfirmationDialog(
- LocaleManager.Instance[LocaleKeys.DialogUserProfileDeletionConfirmMessage],
- "",
- LocaleManager.Instance[LocaleKeys.InputDialogYes],
- LocaleManager.Instance[LocaleKeys.InputDialogNo],
- "");
-
- if (result == UserResult.Yes)
- {
- GoBack();
- AccountManager.DeleteUser(userProfile.UserId);
- }
-
- LoadProfiles();
- }
-
- public void AddUser()
- {
- Navigate(typeof(UserEditorView), (this, (UserProfile)null, true));
- }
-
- public void EditUser(UserProfile userProfile)
- {
- Navigate(typeof(UserEditorView), (this, userProfile, false));
- }
-
- public void RecoverLostAccounts()
- {
- Navigate(typeof(UserRecovererView), this);
- }
-
- public void ManageSaves()
- {
- Navigate(typeof(UserSaveManagerView), (this, AccountManager, HorizonClient, VirtualFileSystem));
- }
- }
-} \ No newline at end of file
diff --git a/Ryujinx.Ava/UI/Controls/UpdateWaitWindow.axaml b/Ryujinx.Ava/UI/Controls/UpdateWaitWindow.axaml
deleted file mode 100644
index c5041230..00000000
--- a/Ryujinx.Ava/UI/Controls/UpdateWaitWindow.axaml
+++ /dev/null
@@ -1,42 +0,0 @@
-<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"
- Title="Ryujinx - Waiting"
- SizeToContent="WidthAndHeight"
- WindowStartupLocation="CenterOwner"
- mc:Ignorable="d"
- Focusable="True">
- <Grid
- Margin="20"
- HorizontalAlignment="Stretch"
- VerticalAlignment="Stretch">
- <Grid.RowDefinitions>
- <RowDefinition Height="Auto" />
- <RowDefinition Height="Auto" />
- </Grid.RowDefinitions>
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="Auto" />
- <ColumnDefinition />
- </Grid.ColumnDefinitions>
- <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/Controls/UpdateWaitWindow.axaml.cs b/Ryujinx.Ava/UI/Controls/UpdateWaitWindow.axaml.cs
deleted file mode 100644
index 80a437e3..00000000
--- a/Ryujinx.Ava/UI/Controls/UpdateWaitWindow.axaml.cs
+++ /dev/null
@@ -1,31 +0,0 @@
-using Avalonia.Controls;
-using Ryujinx.Ava.UI.Windows;
-using System.Threading;
-
-namespace Ryujinx.Ava.UI.Controls
-{
- public partial class UpdateWaitWindow : StyleableWindow
- {
- public UpdateWaitWindow(string primaryText, string secondaryText, CancellationTokenSource cancellationToken) : this(primaryText, secondaryText)
- {
- SystemDecorations = SystemDecorations.Full;
- ShowInTaskbar = true;
-
- Closing += (_, _) => cancellationToken.Cancel();
- }
-
- public UpdateWaitWindow(string primaryText, string secondaryText) : this()
- {
- PrimaryText.Text = primaryText;
- SecondaryText.Text = secondaryText;
- WindowStartupLocation = WindowStartupLocation.CenterOwner;
- SystemDecorations = SystemDecorations.BorderOnly;
- ShowInTaskbar = false;
- }
-
- public UpdateWaitWindow()
- {
- InitializeComponent();
- }
- }
-} \ No newline at end of file