/ src / Ryujinx / UI / Controls / ApplicationGridView.axaml.cs
ApplicationGridView.axaml.cs
 1  using Avalonia.Controls;
 2  using Avalonia.Input;
 3  using Avalonia.Interactivity;
 4  using Ryujinx.Ava.UI.Helpers;
 5  using Ryujinx.Ava.UI.ViewModels;
 6  using Ryujinx.UI.App.Common;
 7  using System;
 8  
 9  namespace Ryujinx.Ava.UI.Controls
10  {
11      public partial class ApplicationGridView : UserControl
12      {
13          public static readonly RoutedEvent<ApplicationOpenedEventArgs> ApplicationOpenedEvent =
14              RoutedEvent.Register<ApplicationGridView, ApplicationOpenedEventArgs>(nameof(ApplicationOpened), RoutingStrategies.Bubble);
15  
16          public event EventHandler<ApplicationOpenedEventArgs> ApplicationOpened
17          {
18              add { AddHandler(ApplicationOpenedEvent, value); }
19              remove { RemoveHandler(ApplicationOpenedEvent, value); }
20          }
21  
22          public ApplicationGridView()
23          {
24              InitializeComponent();
25          }
26  
27          public void GameList_DoubleTapped(object sender, TappedEventArgs args)
28          {
29              if (sender is ListBox listBox)
30              {
31                  if (listBox.SelectedItem is ApplicationData selected)
32                  {
33                      RaiseEvent(new ApplicationOpenedEventArgs(selected, ApplicationOpenedEvent));
34                  }
35              }
36          }
37  
38          public void GameList_SelectionChanged(object sender, SelectionChangedEventArgs args)
39          {
40              if (sender is ListBox listBox)
41              {
42                  (DataContext as MainWindowViewModel).GridSelectedApplication = listBox.SelectedItem as ApplicationData;
43              }
44          }
45  
46          private void SearchBox_OnKeyUp(object sender, KeyEventArgs args)
47          {
48              (DataContext as MainWindowViewModel).SearchText = (sender as TextBox).Text;
49          }
50      }
51  }