aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Ava/Ui/Windows/AvatarWindow.axaml.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Ryujinx.Ava/Ui/Windows/AvatarWindow.axaml.cs')
-rw-r--r--Ryujinx.Ava/Ui/Windows/AvatarWindow.axaml.cs66
1 files changed, 36 insertions, 30 deletions
diff --git a/Ryujinx.Ava/Ui/Windows/AvatarWindow.axaml.cs b/Ryujinx.Ava/Ui/Windows/AvatarWindow.axaml.cs
index 25e89846..2189f47d 100644
--- a/Ryujinx.Ava/Ui/Windows/AvatarWindow.axaml.cs
+++ b/Ryujinx.Ava/Ui/Windows/AvatarWindow.axaml.cs
@@ -1,70 +1,76 @@
-using Avalonia;
+using Avalonia.Controls;
using Avalonia.Interactivity;
-using Avalonia.Markup.Xaml;
-using Ryujinx.Ava.Common.Locale;
+using FluentAvalonia.UI.Controls;
+using FluentAvalonia.UI.Navigation;
+using Ryujinx.Ava.Ui.Controls;
+using Ryujinx.Ava.Ui.Models;
using Ryujinx.Ava.Ui.ViewModels;
using Ryujinx.HLE.FileSystem;
-using System;
namespace Ryujinx.Ava.Ui.Windows
{
- public class AvatarWindow : StyleableWindow
+ public partial class AvatarWindow : UserControl
{
+ private NavigationDialogHost _parent;
+ private TempProfile _profile;
+
public AvatarWindow(ContentManager contentManager)
{
ContentManager = contentManager;
- ViewModel = new AvatarProfileViewModel(() => ViewModel.ReloadImages());
DataContext = ViewModel;
InitializeComponent();
-#if DEBUG
- this.AttachDevTools();
-#endif
- Title = $"Ryujinx {Program.Version} - " + LocaleManager.Instance["AvatarWindowTitle"];
}
public AvatarWindow()
{
InitializeComponent();
-#if DEBUG
- this.AttachDevTools();
-#endif
+
+ AddHandler(Frame.NavigatedToEvent, (s, e) =>
+ {
+ NavigatedTo(e);
+ }, RoutingStrategies.Direct);
+ }
+
+ private void NavigatedTo(NavigationEventArgs arg)
+ {
if (Program.PreviewerDetached)
{
- Title = $"Ryujinx {Program.Version} - " + LocaleManager.Instance["AvatarWindowTitle"];
+ if (arg.NavigationMode == NavigationMode.New)
+ {
+ (_parent, _profile) = ((NavigationDialogHost, TempProfile))arg.Parameter;
+ ContentManager = _parent.ContentManager;
+ if (Program.PreviewerDetached)
+ {
+ ViewModel = new AvatarProfileViewModel(() => ViewModel.ReloadImages());
+ }
+
+ DataContext = ViewModel;
+ }
}
}
- public ContentManager ContentManager { get; }
-
- public byte[] SelectedImage { get; set; }
+ public ContentManager ContentManager { get; private set; }
internal AvatarProfileViewModel ViewModel { get; set; }
- private void InitializeComponent()
- {
- AvaloniaXamlLoader.Load(this);
- }
-
- protected override void OnClosed(EventArgs e)
+ private void CloseButton_OnClick(object sender, RoutedEventArgs e)
{
ViewModel.Dispose();
- base.OnClosed(e);
- }
- private void CloseButton_OnClick(object sender, RoutedEventArgs e)
- {
- Close();
+ _parent.GoBack();
}
private void ChooseButton_OnClick(object sender, RoutedEventArgs e)
{
if (ViewModel.SelectedIndex > -1)
{
- SelectedImage = ViewModel.SelectedImage;
+ _profile.Image = ViewModel.SelectedImage;
+
+ ViewModel.Dispose();
- Close();
+ _parent.GoBack();
}
}
}