mirror of
https://github.com/Ryujinx/Ryujinx.git
synced 2024-10-01 12:30:00 +02:00
eeb2af9953
* Fix redundancies * Add back elses * `MainWindow` Refactor * Switch commands to `ReflectionBinding` Not required in Ava 11 * Update Ryujinx.Ava/AppHost.cs Co-authored-by: Ac_K <Acoustik666@gmail.com> * Update Ryujinx.Ava/AppHost.cs Co-authored-by: Ac_K <Acoustik666@gmail.com> * Update Ryujinx.Ava/UI/Windows/MainWindow.axaml.cs Co-authored-by: Ac_K <Acoustik666@gmail.com> * Update Ryujinx.Ava/UI/Windows/MainWindow.axaml.cs Co-authored-by: Ac_K <Acoustik666@gmail.com> * Update Ryujinx.Ava/UI/Windows/MainWindow.axaml.cs Co-authored-by: Ac_K <Acoustik666@gmail.com> * Update Ryujinx.Ava/AppHost.cs Co-authored-by: Ac_K <Acoustik666@gmail.com> * Update Ryujinx.Ava/UI/Views/Main/MainViewControls.axaml.cs Co-authored-by: Ac_K <Acoustik666@gmail.com> * Update Ryujinx.Ava/AppHost.cs Co-authored-by: Ac_K <Acoustik666@gmail.com> * Update Ryujinx.Ava/AppHost.cs Co-authored-by: Ac_K <Acoustik666@gmail.com> * Update Ryujinx.Ava/AppHost.cs Co-authored-by: Ac_K <Acoustik666@gmail.com> * Update Ryujinx.Ava/UI/ViewModels/MainWindowViewModel.cs Co-authored-by: Ac_K <Acoustik666@gmail.com> * Update Ryujinx.Ava/UI/ViewModels/MainWindowViewModel.cs Co-authored-by: Ac_K <Acoustik666@gmail.com> * Update Ryujinx.Ava/UI/ViewModels/MainWindowViewModel.cs Co-authored-by: Ac_K <Acoustik666@gmail.com> * Update Ryujinx.Ava/UI/ViewModels/MainWindowViewModel.cs Co-authored-by: Ac_K <Acoustik666@gmail.com> * Update Ryujinx.Ava/UI/ViewModels/MainWindowViewModel.cs Co-authored-by: Ac_K <Acoustik666@gmail.com> * Update Ryujinx.Ava/UI/ViewModels/MainWindowViewModel.cs Co-authored-by: Ac_K <Acoustik666@gmail.com> * Update Ryujinx.Ava/UI/ViewModels/MainWindowViewModel.cs Co-authored-by: Ac_K <Acoustik666@gmail.com> * Update Ryujinx.Ava/UI/ViewModels/MainWindowViewModel.cs Co-authored-by: Ac_K <Acoustik666@gmail.com> * Update Ryujinx.Ava/UI/Views/Main/MainMenuBarView.axaml.cs Co-authored-by: Ac_K <Acoustik666@gmail.com> * Update Ryujinx.Ava/UI/ViewModels/MainWindowViewModel.cs Co-authored-by: Ac_K <Acoustik666@gmail.com> * Update Ryujinx.Ava/UI/ViewModels/MainWindowViewModel.cs Co-authored-by: Ac_K <Acoustik666@gmail.com> * Update Ryujinx.Ava/UI/ViewModels/MainWindowViewModel.cs Co-authored-by: Ac_K <Acoustik666@gmail.com> * Update Ryujinx.Ava/UI/Views/Main/MainViewControls.axaml.cs Co-authored-by: Ac_K <Acoustik666@gmail.com> * Resolve issues * Remove Ava 11 Fix * Update Ryujinx.Ava/UI/ViewModels/MainWindowViewModel.cs Co-authored-by: gdkchan <gab.dark.100@gmail.com> * Update Ryujinx.Ava/UI/Windows/MainWindow.axaml.cs Co-authored-by: gdkchan <gab.dark.100@gmail.com> * Fix whitespace + other suggestions * Move Vsync colours to `Styles.xaml` * Remove catch all * Use `switch` instead of `if` * Update locale keys * Use block-scoped namespaces * Fix improper Ava api usage then * Static PTC * Fix `GridItemSelectorSize` with `ShowNames` * Update for new About Window * Add back search fix Co-authored-by: Ac_K <Acoustik666@gmail.com> Co-authored-by: gdkchan <gab.dark.100@gmail.com>
146 lines
No EOL
4.4 KiB
C#
146 lines
No EOL
4.4 KiB
C#
using Avalonia;
|
|
using Avalonia.Controls;
|
|
using Avalonia.Interactivity;
|
|
using Ryujinx.Ava.UI.ViewModels;
|
|
using Ryujinx.Ava.UI.Windows;
|
|
using System.Threading.Tasks;
|
|
using LibHac.FsSystem;
|
|
using LibHac.Ncm;
|
|
using Ryujinx.HLE.HOS;
|
|
using Ryujinx.Modules;
|
|
|
|
namespace Ryujinx.Ava.UI.Views.Main
|
|
{
|
|
public partial class MainMenuBarView : UserControl
|
|
{
|
|
public MainWindow Window { get; private set; }
|
|
public MainWindowViewModel ViewModel { get; private set; }
|
|
|
|
public MainMenuBarView()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
protected override void OnAttachedToVisualTree(VisualTreeAttachmentEventArgs e)
|
|
{
|
|
base.OnAttachedToVisualTree(e);
|
|
|
|
if (this.VisualRoot is MainWindow window)
|
|
{
|
|
Window = window;
|
|
}
|
|
|
|
ViewModel = Window.ViewModel;
|
|
DataContext = ViewModel;
|
|
}
|
|
|
|
private async void StopEmulation_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
await Task.Run(() =>
|
|
{
|
|
Window.ViewModel.AppHost?.ShowExitPrompt();
|
|
});
|
|
}
|
|
|
|
private async void PauseEmulation_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
await Task.Run(() =>
|
|
{
|
|
Window.ViewModel.AppHost?.Pause();
|
|
});
|
|
}
|
|
|
|
private async void ResumeEmulation_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
await Task.Run(() =>
|
|
{
|
|
Window.ViewModel.AppHost?.Resume();
|
|
});
|
|
}
|
|
|
|
public async void OpenSettings(object sender, RoutedEventArgs e)
|
|
{
|
|
Window.SettingsWindow = new(Window.VirtualFileSystem, Window.ContentManager);
|
|
|
|
await Window.SettingsWindow.ShowDialog(Window);
|
|
|
|
ViewModel.LoadConfigurableHotKeys();
|
|
}
|
|
|
|
public void OpenMiiApplet(object sender, RoutedEventArgs e)
|
|
{
|
|
string contentPath = ViewModel.ContentManager.GetInstalledContentPath(0x0100000000001009, StorageId.BuiltInSystem, NcaContentType.Program);
|
|
|
|
if (!string.IsNullOrEmpty(contentPath))
|
|
{
|
|
ViewModel.LoadApplication(contentPath, false, "Mii Applet");
|
|
}
|
|
}
|
|
|
|
public async void OpenAmiiboWindow(object sender, RoutedEventArgs e)
|
|
{
|
|
if (!ViewModel.IsAmiiboRequested)
|
|
{
|
|
return;
|
|
}
|
|
|
|
if (ViewModel.AppHost.Device.System.SearchingForAmiibo(out int deviceId))
|
|
{
|
|
string titleId = ViewModel.AppHost.Device.Application.TitleIdText.ToUpper();
|
|
AmiiboWindow window = new(ViewModel.ShowAll, ViewModel.LastScannedAmiiboId, titleId);
|
|
|
|
await window.ShowDialog(Window);
|
|
|
|
if (window.IsScanned)
|
|
{
|
|
ViewModel.ShowAll = window.ViewModel.ShowAllAmiibo;
|
|
ViewModel.LastScannedAmiiboId = window.ScannedAmiibo.GetId();
|
|
|
|
ViewModel.AppHost.Device.System.ScanAmiibo(deviceId, ViewModel.LastScannedAmiiboId, window.ViewModel.UseRandomUuid);
|
|
}
|
|
}
|
|
}
|
|
|
|
public async void OpenCheatManagerForCurrentApp(object sender, RoutedEventArgs e)
|
|
{
|
|
if (!ViewModel.IsGameRunning)
|
|
{
|
|
return;
|
|
}
|
|
|
|
ApplicationLoader application = ViewModel.AppHost.Device.Application;
|
|
if (application != null)
|
|
{
|
|
await new CheatWindow(Window.VirtualFileSystem, application.TitleIdText, application.TitleName).ShowDialog(Window);
|
|
|
|
ViewModel.AppHost.Device.EnableCheats();
|
|
}
|
|
}
|
|
|
|
private void ScanAmiiboMenuItem_AttachedToVisualTree(object sender, VisualTreeAttachmentEventArgs e)
|
|
{
|
|
if (sender is MenuItem)
|
|
{
|
|
ViewModel.IsAmiiboRequested = Window.ViewModel.AppHost.Device.System.SearchingForAmiibo(out _);
|
|
}
|
|
}
|
|
|
|
public async void CheckForUpdates(object sender, RoutedEventArgs e)
|
|
{
|
|
if (Updater.CanUpdate(true, Window))
|
|
{
|
|
await Updater.BeginParse(Window, true);
|
|
}
|
|
}
|
|
|
|
public async void OpenAboutWindow(object sender, RoutedEventArgs e)
|
|
{
|
|
await AboutWindow.Show();
|
|
}
|
|
|
|
public void CloseWindow(object sender, RoutedEventArgs e)
|
|
{
|
|
Window.Close();
|
|
}
|
|
}
|
|
} |