| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233 |
- <UserControl
- x:Class="Ryujinx.Ava.UI.Controls.GameListView"
- xmlns="https://github.com/avaloniaui"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
- xmlns:helpers="clr-namespace:Ryujinx.Ava.UI.Helpers"
- xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale"
- xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
- d:DesignHeight="450"
- d:DesignWidth="800"
- Focusable="True"
- mc:Ignorable="d">
- <UserControl.Resources>
- <helpers:BitmapArrayValueConverter x:Key="ByteImage" />
- <MenuFlyout x:Key="GameContextMenu">
- <MenuItem
- Command="{Binding ToggleFavorite}"
- Header="{locale:Locale GameListContextMenuToggleFavorite}"
- ToolTip.Tip="{locale:Locale GameListContextMenuToggleFavoriteToolTip}" />
- <Separator />
- <MenuItem
- Command="{Binding OpenUserSaveDirectory}"
- IsEnabled="{Binding EnabledUserSaveDirectory}"
- Header="{locale:Locale GameListContextMenuOpenUserSaveDirectory}"
- ToolTip.Tip="{locale:Locale GameListContextMenuOpenUserSaveDirectoryToolTip}" />
- <MenuItem
- Command="{Binding OpenDeviceSaveDirectory}"
- IsEnabled="{Binding EnabledDeviceSaveDirectory}"
- Header="{locale:Locale GameListContextMenuOpenDeviceSaveDirectory}"
- ToolTip.Tip="{locale:Locale GameListContextMenuOpenDeviceSaveDirectoryToolTip}" />
- <MenuItem
- Command="{Binding OpenBcatSaveDirectory}"
- IsEnabled="{Binding EnabledBcatSaveDirectory}"
- Header="{locale:Locale GameListContextMenuOpenBcatSaveDirectory}"
- ToolTip.Tip="{locale:Locale GameListContextMenuOpenBcatSaveDirectoryToolTip}" />
- <Separator />
- <MenuItem
- Command="{Binding OpenTitleUpdateManager}"
- Header="{locale:Locale GameListContextMenuManageTitleUpdates}"
- ToolTip.Tip="{locale:Locale GameListContextMenuManageTitleUpdatesToolTip}" />
- <MenuItem
- Command="{Binding OpenDownloadableContentManager}"
- Header="{locale:Locale GameListContextMenuManageDlc}"
- ToolTip.Tip="{locale:Locale GameListContextMenuManageDlcToolTip}" />
- <MenuItem
- Command="{Binding OpenCheatManager}"
- Header="{locale:Locale GameListContextMenuManageCheat}"
- ToolTip.Tip="{locale:Locale GameListContextMenuManageCheatToolTip}" />
- <MenuItem
- Command="{Binding OpenModsDirectory}"
- Header="{locale:Locale GameListContextMenuOpenModsDirectory}"
- ToolTip.Tip="{locale:Locale GameListContextMenuOpenModsDirectoryToolTip}" />
- <MenuItem
- Command="{Binding OpenSdModsDirectory}"
- Header="{locale:Locale GameListContextMenuOpenSdModsDirectory}"
- ToolTip.Tip="{locale:Locale GameListContextMenuOpenSdModsDirectoryToolTip}" />
- <Separator />
- <MenuItem Header="{locale:Locale GameListContextMenuCacheManagement}">
- <MenuItem
- Command="{Binding PurgePtcCache}"
- Header="{locale:Locale GameListContextMenuCacheManagementPurgePptc}"
- ToolTip.Tip="{locale:Locale GameListContextMenuCacheManagementPurgePptcToolTip}" />
- <MenuItem
- Command="{Binding PurgeShaderCache}"
- Header="{locale:Locale GameListContextMenuCacheManagementPurgeShaderCache}"
- ToolTip.Tip="{locale:Locale GameListContextMenuCacheManagementPurgeShaderCacheToolTip}" />
- <MenuItem
- Command="{Binding OpenPtcDirectory}"
- Header="{locale:Locale GameListContextMenuCacheManagementOpenPptcDirectory}"
- ToolTip.Tip="{locale:Locale GameListContextMenuCacheManagementOpenPptcDirectoryToolTip}" />
- <MenuItem
- Command="{Binding OpenShaderCacheDirectory}"
- Header="{locale:Locale GameListContextMenuCacheManagementOpenShaderCacheDirectory}"
- ToolTip.Tip="{locale:Locale GameListContextMenuCacheManagementOpenShaderCacheDirectoryToolTip}" />
- </MenuItem>
- <MenuItem Header="{locale:Locale GameListContextMenuExtractData}">
- <MenuItem
- Command="{Binding ExtractExeFs}"
- Header="{locale:Locale GameListContextMenuExtractDataExeFS}"
- ToolTip.Tip="{locale:Locale GameListContextMenuExtractDataExeFSToolTip}" />
- <MenuItem
- Command="{Binding ExtractRomFs}"
- Header="{locale:Locale GameListContextMenuExtractDataRomFS}"
- ToolTip.Tip="{locale:Locale GameListContextMenuExtractDataRomFSToolTip}" />
- <MenuItem
- Command="{Binding ExtractLogo}"
- Header="{locale:Locale GameListContextMenuExtractDataLogo}"
- ToolTip.Tip="{locale:Locale GameListContextMenuExtractDataLogoToolTip}" />
- </MenuItem>
- </MenuFlyout>
- </UserControl.Resources>
- <Grid>
- <Grid.RowDefinitions>
- <RowDefinition Height="*" />
- </Grid.RowDefinitions>
- <ListBox
- Name="GameListBox"
- Grid.Row="0"
- Padding="8"
- HorizontalAlignment="Stretch"
- VerticalAlignment="Stretch"
- ContextFlyout="{StaticResource GameContextMenu}"
- DoubleTapped="GameList_DoubleTapped"
- Items="{Binding AppsObservableList}"
- SelectionChanged="GameList_SelectionChanged">
- <ListBox.ItemsPanel>
- <ItemsPanelTemplate>
- <StackPanel
- HorizontalAlignment="Stretch"
- VerticalAlignment="Stretch"
- Orientation="Vertical"
- Spacing="2" />
- </ItemsPanelTemplate>
- </ListBox.ItemsPanel>
- <ListBox.Styles>
- <Style Selector="ListBoxItem:selected /template/ Border#SelectionIndicator">
- <Setter Property="MinHeight" Value="{Binding $parent[UserControl].DataContext.ListItemSelectorSize}" />
- </Style>
- </ListBox.Styles>
- <ListBox.ItemTemplate>
- <DataTemplate>
- <Grid>
- <Border
- Margin="0"
- Padding="10"
- HorizontalAlignment="Stretch"
- VerticalAlignment="Stretch"
- ClipToBounds="True"
- CornerRadius="5">
- <Grid>
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="Auto" />
- <ColumnDefinition Width="10" />
- <ColumnDefinition Width="*" />
- <ColumnDefinition Width="150" />
- <ColumnDefinition Width="100" />
- </Grid.ColumnDefinitions>
- <Image
- Grid.RowSpan="3"
- Grid.Column="0"
- Margin="0"
- Classes.huge="{Binding $parent[UserControl].DataContext.IsGridHuge}"
- Classes.large="{Binding $parent[UserControl].DataContext.IsGridLarge}"
- Classes.normal="{Binding $parent[UserControl].DataContext.IsGridMedium}"
- Classes.small="{Binding $parent[UserControl].DataContext.IsGridSmall}"
- Source="{Binding Icon, Converter={StaticResource ByteImage}}" />
- <Border
- Grid.Column="2"
- Margin="0,0,5,0"
- BorderBrush="{DynamicResource ThemeControlBorderColor}"
- BorderThickness="0,0,1,0">
- <StackPanel
- HorizontalAlignment="Left"
- VerticalAlignment="Top"
- Orientation="Vertical"
- Spacing="5">
- <TextBlock
- HorizontalAlignment="Stretch"
- FontWeight="Bold"
- Text="{Binding TitleName}"
- TextAlignment="Left"
- TextWrapping="Wrap" />
- <TextBlock
- HorizontalAlignment="Stretch"
- Text="{Binding Developer}"
- TextAlignment="Left"
- TextWrapping="Wrap" />
- <TextBlock
- HorizontalAlignment="Stretch"
- Text="{Binding Version}"
- TextAlignment="Left"
- TextWrapping="Wrap" />
- </StackPanel>
- </Border>
- <StackPanel
- Grid.Column="3"
- Margin="10,0,0,0"
- HorizontalAlignment="Left"
- VerticalAlignment="Top"
- Orientation="Vertical"
- Spacing="5">
- <TextBlock
- HorizontalAlignment="Stretch"
- Text="{Binding TitleId}"
- TextAlignment="Left"
- TextWrapping="Wrap" />
- <TextBlock
- HorizontalAlignment="Stretch"
- Text="{Binding FileExtension}"
- TextAlignment="Left"
- TextWrapping="Wrap" />
- </StackPanel>
- <StackPanel
- Grid.Column="4"
- HorizontalAlignment="Right"
- VerticalAlignment="Top"
- Orientation="Vertical"
- Spacing="5">
- <TextBlock
- HorizontalAlignment="Stretch"
- Text="{Binding TimePlayed}"
- TextAlignment="Right"
- TextWrapping="Wrap" />
- <TextBlock
- HorizontalAlignment="Stretch"
- Text="{Binding LastPlayed}"
- TextAlignment="Right"
- TextWrapping="Wrap" />
- <TextBlock
- HorizontalAlignment="Stretch"
- Text="{Binding FileSize}"
- TextAlignment="Right"
- TextWrapping="Wrap" />
- </StackPanel>
- <ui:SymbolIcon
- Grid.Row="0"
- Grid.Column="0"
- Margin="-5,-5,0,0"
- HorizontalAlignment="Left"
- VerticalAlignment="Top"
- FontSize="16"
- Foreground="{DynamicResource SystemAccentColor}"
- IsVisible="{Binding Favorite}"
- Symbol="StarFilled" />
- </Grid>
- </Border>
- </Grid>
- </DataTemplate>
- </ListBox.ItemTemplate>
- </ListBox>
- </Grid>
- </UserControl>
|