/ src / Ryujinx / UI / Controls / ApplicationListView.axaml
ApplicationListView.axaml
  1  <UserControl
  2      x:Class="Ryujinx.Ava.UI.Controls.ApplicationListView"
  3      xmlns="https://github.com/avaloniaui"
  4      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  5      xmlns:controls="clr-namespace:Ryujinx.Ava.UI.Controls"
  6      xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  7      xmlns:helpers="clr-namespace:Ryujinx.Ava.UI.Helpers"
  8      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  9      xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
 10      d:DesignHeight="450"
 11      d:DesignWidth="800"
 12      Focusable="True"
 13      mc:Ignorable="d"
 14      xmlns:viewModels="clr-namespace:Ryujinx.Ava.UI.ViewModels"
 15      x:DataType="viewModels:MainWindowViewModel">
 16      <UserControl.Resources>
 17          <helpers:BitmapArrayValueConverter x:Key="ByteImage" />
 18          <controls:ApplicationContextMenu x:Key="ApplicationContextMenu" />
 19      </UserControl.Resources>
 20      <Grid>
 21          <Grid.RowDefinitions>
 22              <RowDefinition Height="*" />
 23          </Grid.RowDefinitions>
 24          <ListBox
 25              Name="GameListBox"
 26              Grid.Row="0"
 27              Padding="8"
 28              HorizontalAlignment="Stretch"
 29              VerticalAlignment="Stretch"
 30              ContextFlyout="{StaticResource ApplicationContextMenu}"
 31              DoubleTapped="GameList_DoubleTapped"
 32              ItemsSource="{Binding AppsObservableList}"
 33              SelectionChanged="GameList_SelectionChanged">
 34              <ListBox.ItemsPanel>
 35                  <ItemsPanelTemplate>
 36                      <StackPanel
 37                          HorizontalAlignment="Stretch"
 38                          VerticalAlignment="Stretch"
 39                          Orientation="Vertical"
 40                          Spacing="2" />
 41                  </ItemsPanelTemplate>
 42              </ListBox.ItemsPanel>
 43              <ListBox.Styles>
 44                  <Style Selector="ListBoxItem:selected /template/ Rectangle#SelectionIndicator">
 45                      <Setter Property="MinHeight" Value="{Binding $parent[UserControl].((viewModels:MainWindowViewModel)DataContext).ListItemSelectorSize}" />
 46                  </Style>
 47              </ListBox.Styles>
 48              <ListBox.ItemTemplate>
 49                  <DataTemplate>
 50                      <Grid>
 51                          <Border
 52                              Margin="0"
 53                              Padding="10"
 54                              HorizontalAlignment="Stretch"
 55                              VerticalAlignment="Stretch"
 56                              ClipToBounds="True"
 57                              CornerRadius="5">
 58                              <Grid>
 59                                  <Grid.ColumnDefinitions>
 60                                      <ColumnDefinition Width="Auto" />
 61                                      <ColumnDefinition Width="10" />
 62                                      <ColumnDefinition Width="*" />
 63                                      <ColumnDefinition Width="150" />
 64                                      <ColumnDefinition Width="100" />
 65                                  </Grid.ColumnDefinitions>
 66                                  <Image
 67                                      Grid.RowSpan="3"
 68                                      Grid.Column="0"
 69                                      Margin="0"
 70                                      Classes.huge="{Binding $parent[UserControl].((viewModels:MainWindowViewModel)DataContext).IsGridHuge}"
 71                                      Classes.large="{Binding $parent[UserControl].((viewModels:MainWindowViewModel)DataContext).IsGridLarge}"
 72                                      Classes.normal="{Binding $parent[UserControl].((viewModels:MainWindowViewModel)DataContext).IsGridMedium}"
 73                                      Classes.small="{Binding $parent[UserControl].((viewModels:MainWindowViewModel)DataContext).IsGridSmall}"
 74                                      Source="{Binding Icon, Converter={StaticResource ByteImage}}" />
 75                                  <Border
 76                                      Grid.Column="2"
 77                                      Margin="0,0,5,0"
 78                                      BorderBrush="{DynamicResource ThemeControlBorderColor}"
 79                                      BorderThickness="0,0,1,0">
 80                                      <StackPanel
 81                                          HorizontalAlignment="Left"
 82                                          VerticalAlignment="Top"
 83                                          Orientation="Vertical"
 84                                          Spacing="5">
 85                                          <TextBlock
 86                                              HorizontalAlignment="Stretch"
 87                                              FontWeight="Bold"
 88                                              Text="{Binding Name}"
 89                                              TextAlignment="Start"
 90                                              TextWrapping="Wrap" />
 91                                          <TextBlock
 92                                              HorizontalAlignment="Stretch"
 93                                              Text="{Binding Developer}"
 94                                              TextAlignment="Start"
 95                                              TextWrapping="Wrap" />
 96                                          <TextBlock
 97                                              HorizontalAlignment="Stretch"
 98                                              Text="{Binding Version}"
 99                                              TextAlignment="Start"
100                                              TextWrapping="Wrap" />
101                                      </StackPanel>
102                                  </Border>
103                                  <StackPanel
104                                      Grid.Column="3"
105                                      Margin="10,0,0,0"
106                                      HorizontalAlignment="Left"
107                                      VerticalAlignment="Top"
108                                      Orientation="Vertical"
109                                      Spacing="5">
110                                      <TextBlock
111                                          HorizontalAlignment="Stretch"
112                                          Text="{Binding Id, StringFormat=X16}"
113                                          TextAlignment="Start"
114                                          TextWrapping="Wrap" />
115                                      <TextBlock
116                                          HorizontalAlignment="Stretch"
117                                          Text="{Binding FileExtension}"
118                                          TextAlignment="Start"
119                                          TextWrapping="Wrap" />
120                                  </StackPanel>
121                                  <StackPanel
122                                      Grid.Column="4"
123                                      HorizontalAlignment="Right"
124                                      VerticalAlignment="Top"
125                                      Orientation="Vertical"
126                                      Spacing="5">
127                                      <TextBlock
128                                          HorizontalAlignment="Stretch"
129                                          Text="{Binding TimePlayedString}"
130                                          TextAlignment="End"
131                                          TextWrapping="Wrap" />
132                                      <TextBlock
133                                          HorizontalAlignment="Stretch"
134                                          Text="{Binding LastPlayedString, Converter={helpers:LocalizedNeverConverter}}"
135                                          TextAlignment="End"
136                                          TextWrapping="Wrap" />
137                                      <TextBlock
138                                          HorizontalAlignment="Stretch"
139                                          Text="{Binding FileSizeString}"
140                                          TextAlignment="End"
141                                          TextWrapping="Wrap" />
142                                  </StackPanel>
143                                  <ui:SymbolIcon
144                                      Grid.Row="0"
145                                      Grid.Column="0"
146                                      Margin="-5,-5,0,0"
147                                      HorizontalAlignment="Left"
148                                      VerticalAlignment="Top"
149                                      FontSize="16"
150                                      Foreground="{DynamicResource SystemAccentColor}"
151                                      IsVisible="{Binding Favorite}"
152                                      Symbol="StarFilled" />
153                              </Grid>
154                          </Border>
155                      </Grid>
156                  </DataTemplate>
157              </ListBox.ItemTemplate>
158          </ListBox>
159      </Grid>
160  </UserControl>