using Avalonia.Controls; using Avalonia.Input; using Avalonia.Interactivity; 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 ApplicationGridView : UserControl { public static readonly RoutedEvent ApplicationOpenedEvent = RoutedEvent.Register(nameof(ApplicationOpened), RoutingStrategies.Bubble); public event EventHandler ApplicationOpened { add => AddHandler(ApplicationOpenedEvent, value); remove => RemoveHandler(ApplicationOpenedEvent, value); } public ApplicationGridView() => InitializeComponent(); public void GameList_DoubleTapped(object sender, TappedEventArgs args) { if (sender is ListBox { SelectedItem: ApplicationData selected }) RaiseEvent(new ApplicationOpenedEventArgs(selected, ApplicationOpenedEvent)); } public void GameList_SelectionChanged(object sender, SelectionChangedEventArgs args) { if (DataContext is MainWindowViewModel viewModel && sender is ListBox { SelectedItem: ApplicationData selected }) viewModel.GridSelectedApplication = selected; } } }