AvatarWindow.axaml.cs 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. using Avalonia;
  2. using Avalonia.Interactivity;
  3. using Avalonia.Markup.Xaml;
  4. using Ryujinx.Ava.Common.Locale;
  5. using Ryujinx.Ava.Ui.ViewModels;
  6. using Ryujinx.HLE.FileSystem;
  7. using System;
  8. namespace Ryujinx.Ava.Ui.Windows
  9. {
  10. public class AvatarWindow : StyleableWindow
  11. {
  12. public AvatarWindow(ContentManager contentManager)
  13. {
  14. ContentManager = contentManager;
  15. ViewModel = new AvatarProfileViewModel(() => ViewModel.ReloadImages());
  16. DataContext = ViewModel;
  17. InitializeComponent();
  18. #if DEBUG
  19. this.AttachDevTools();
  20. #endif
  21. Title = $"Ryujinx {Program.Version} - " + LocaleManager.Instance["AvatarWindowTitle"];
  22. }
  23. public AvatarWindow()
  24. {
  25. InitializeComponent();
  26. #if DEBUG
  27. this.AttachDevTools();
  28. #endif
  29. if (Program.PreviewerDetached)
  30. {
  31. Title = $"Ryujinx {Program.Version} - " + LocaleManager.Instance["AvatarWindowTitle"];
  32. }
  33. }
  34. public ContentManager ContentManager { get; }
  35. public byte[] SelectedImage { get; set; }
  36. internal AvatarProfileViewModel ViewModel { get; set; }
  37. private void InitializeComponent()
  38. {
  39. AvaloniaXamlLoader.Load(this);
  40. }
  41. protected override void OnClosed(EventArgs e)
  42. {
  43. ViewModel.Dispose();
  44. base.OnClosed(e);
  45. }
  46. private void CloseButton_OnClick(object sender, RoutedEventArgs e)
  47. {
  48. Close();
  49. }
  50. private void ChooseButton_OnClick(object sender, RoutedEventArgs e)
  51. {
  52. if (ViewModel.SelectedIndex > -1)
  53. {
  54. SelectedImage = ViewModel.SelectedImage;
  55. Close();
  56. }
  57. }
  58. }
  59. }