forked from Mirror/Ryujinx
deb99d2cae
* avalonia part 1 * remove vulkan ui backend * move ui common files to ui common project * get name for oading screen from device * rebase. * review 1 * review 1.1 * review * cleanup * addressed review * use cancellation token * review * review * rebased * cancel library loading when closing window * remove star image, use fonticon instead * delete render control frame buffer when game ends. change position of fav star * addressed @Thog review * ensure the right ui is downloaded in updates * fix crash when showing not supported dialog during controller request * add prefix to artifact names * Auto-format Avalonia project * Fix input * Fix build, simplify app disposal * remove nv stutter thread * addressed review * add missing change * maintain window size if new size is zero length * add game, handheld, docked to local * reverse scale main window * Update de_DE.json * Update de_DE.json * Update de_DE.json * Update italian json * Update it_IT.json * let render timer poll with no wait * remove unused code * more unused code * enabled tiered compilation and trimming * check if window event is not closed before signaling * fix atmospher case * locale fix * locale fix * remove explicit tiered compilation declarations * Remove ) it_IT.json * Remove ) de_DE.json * Update it_IT.json * Update pt_BR locale with latest strings * Remove ')' * add more strings to locale * update locale * remove extra slash * remove extra slash * set firmware version to 0 if key's not found * fix * revert timer changes * lock on object instead * Update it_IT.json * remove unused method * add load screen text to locale * drop swap event * Update de_DE.json * Update de_DE.json * do null check when stopping emulator * Update de_DE.json * Create tr_TR.json * Add tr_TR * Add tr_TR + Turkish * Update it_IT.json * Update Ryujinx.Ava/Input/AvaloniaMappingHelper.cs Co-authored-by: Ac_K <Acoustik666@gmail.com> * Apply suggestions from code review Co-authored-by: Ac_K <Acoustik666@gmail.com> * Apply suggestions from code review Co-authored-by: Ac_K <Acoustik666@gmail.com> * addressed review * Update Ryujinx.Ava/Ui/Backend/OpenGl/OpenGlRenderTarget.cs Co-authored-by: gdkchan <gab.dark.100@gmail.com> * use avalonia's inbuilt renderer on linux * removed whitespace * workaround for queue render crash with vsync off * drop custom backend * format files * fix not closing issue * remove warnings * rebase * update avalonia library * Reposition the Text and Button on About Page * Assign build version * Remove appveyor text Co-authored-by: gdk <gab.dark.100@gmail.com> Co-authored-by: Niwu34 <67392333+Niwu34@users.noreply.github.com> Co-authored-by: Antonio Brugnolo <36473846+AntoSkate@users.noreply.github.com> Co-authored-by: aegiff <99728970+aegiff@users.noreply.github.com> Co-authored-by: Ac_K <Acoustik666@gmail.com> Co-authored-by: MostlyWhat <78652091+MostlyWhat@users.noreply.github.com>
188 lines
No EOL
9.9 KiB
XML
188 lines
No EOL
9.9 KiB
XML
<UserControl xmlns="https://github.com/avaloniaui"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
|
xmlns:flex="clr-namespace:Avalonia.Flexbox;assembly=Avalonia.Flexbox"
|
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
|
xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale"
|
|
xmlns:controls="clr-namespace:Ryujinx.Ava.Ui.Controls"
|
|
xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
|
|
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
|
x:Class="Ryujinx.Ava.Ui.Controls.GameGridView">
|
|
<UserControl.Resources>
|
|
<controls:BitmapArrayValueConverter x:Key="ByteImage" />
|
|
<MenuFlyout x:Key="GameContextMenu" Opened="MenuBase_OnMenuOpened">
|
|
<MenuItem
|
|
Command="{Binding ToggleFavorite}"
|
|
Header="{locale:Locale GameListContextMenuToggleFavorite}"
|
|
ToolTip.Tip="{locale:Locale GameListContextMenuToggleFavoriteToolTip}" />
|
|
<Separator />
|
|
<MenuItem
|
|
Command="{Binding OpenUserSaveDirectory}"
|
|
Header="{locale:Locale GameListContextMenuOpenUserSaveDirectory}"
|
|
ToolTip.Tip="{locale:Locale GameListContextMenuOpenUserSaveDirectoryToolTip}" />
|
|
<MenuItem
|
|
Command="{Binding OpenDeviceSaveDirectory}"
|
|
Header="{locale:Locale GameListContextMenuOpenUserDeviceDirectory}"
|
|
ToolTip.Tip="{locale:Locale GameListContextMenuOpenUserDeviceDirectoryToolTip}" />
|
|
<MenuItem
|
|
Command="{Binding OpenBcatSaveDirectory}"
|
|
Header="{locale:Locale GameListContextMenuOpenUserBcatDirectory}"
|
|
ToolTip.Tip="{locale:Locale GameListContextMenuOpenUserBcatDirectoryToolTip}" />
|
|
<Separator />
|
|
<MenuItem
|
|
Command="{Binding OpenTitleUpdateManager}"
|
|
Header="{locale:Locale GameListContextMenuManageTitleUpdates}"
|
|
ToolTip.Tip="{locale:Locale GameListContextMenuManageTitleUpdatesToolTip}" />
|
|
<MenuItem
|
|
Command="{Binding OpenDlcManager}"
|
|
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 Grid.Row="0"
|
|
Padding="8"
|
|
HorizontalAlignment="Stretch"
|
|
DoubleTapped="GameList_DoubleTapped"
|
|
SelectionChanged="GameList_SelectionChanged"
|
|
ContextFlyout="{StaticResource GameContextMenu}"
|
|
VerticalAlignment="Stretch"
|
|
Items="{Binding AppsObservableList}">
|
|
<ListBox.ItemsPanel>
|
|
<ItemsPanelTemplate>
|
|
<flex:FlexPanel HorizontalAlignment="Stretch" VerticalAlignment="Stretch" JustifyContent="Center"
|
|
AlignContent="FlexStart" />
|
|
</ItemsPanelTemplate>
|
|
</ListBox.ItemsPanel>
|
|
<ListBox.Styles>
|
|
<Style Selector="ListBoxItem">
|
|
<Setter Property="Padding" Value="0" />
|
|
<Setter Property="Margin" Value="5" />
|
|
<Setter Property="CornerRadius" Value="5" />
|
|
<Setter Property="Background" Value="{DynamicResource SystemAccentColorDark3}" />
|
|
<Style.Animations>
|
|
<Animation Duration="0:0:0.7">
|
|
<KeyFrame Cue="0%">
|
|
<Setter Property="MaxWidth" Value="0"/>
|
|
<Setter Property="Opacity" Value="0.0"/>
|
|
</KeyFrame>
|
|
<KeyFrame Cue="50%">
|
|
<Setter Property="MaxWidth" Value="1000"/>
|
|
<Setter Property="Opacity" Value="0.3"/>
|
|
</KeyFrame>
|
|
<KeyFrame Cue="100%">
|
|
<Setter Property="MaxWidth" Value="1000"/>
|
|
<Setter Property="Opacity" Value="1.0"/>
|
|
</KeyFrame>
|
|
</Animation>
|
|
</Style.Animations>
|
|
</Style>
|
|
</ListBox.Styles>
|
|
<ListBox.ItemTemplate>
|
|
<DataTemplate>
|
|
<Grid>
|
|
<Grid.Styles>
|
|
<Style Selector="ui|SymbolIcon.small.icon">
|
|
<Setter Property="FontSize" Value="15" />
|
|
</Style>
|
|
<Style Selector="ui|SymbolIcon.normal.icon">
|
|
<Setter Property="FontSize" Value="19" />
|
|
</Style>
|
|
<Style Selector="ui|SymbolIcon.large.icon">
|
|
<Setter Property="FontSize" Value="23" />
|
|
</Style>
|
|
<Style Selector="ui|SymbolIcon.huge.icon">
|
|
<Setter Property="FontSize" Value="26" />
|
|
</Style>
|
|
</Grid.Styles>
|
|
<Border
|
|
Classes.small="{Binding $parent[UserControl].DataContext.IsGridSmall}"
|
|
Classes.normal="{Binding $parent[UserControl].DataContext.IsGridMedium}"
|
|
Classes.large="{Binding $parent[UserControl].DataContext.IsGridLarge}"
|
|
Classes.huge="{Binding $parent[UserControl].DataContext.IsGridHuge}"
|
|
HorizontalAlignment="Stretch"
|
|
Padding="{Binding $parent[UserControl].DataContext.GridItemPadding}" CornerRadius="5"
|
|
VerticalAlignment="Stretch" Margin="0" ClipToBounds="True">
|
|
<Grid Margin="0">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
</Grid.RowDefinitions>
|
|
<Image HorizontalAlignment="Stretch" VerticalAlignment="Top" Margin="0" Grid.Row="0"
|
|
Source="{Binding Icon, Converter={StaticResource ByteImage}}" />
|
|
<StackPanel IsVisible="{Binding $parent[UserControl].DataContext.ShowNames}"
|
|
Height="50" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
|
|
Margin="5" Grid.Row="1">
|
|
<TextBlock Text="{Binding TitleName}" TextAlignment="Center" TextWrapping="Wrap"
|
|
HorizontalAlignment="Stretch" />
|
|
</StackPanel>
|
|
</Grid>
|
|
</Border>
|
|
<ui:SymbolIcon Classes.icon="true" Classes.small="{Binding $parent[UserControl].DataContext.IsGridSmall}"
|
|
Classes.normal="{Binding $parent[UserControl].DataContext.IsGridMedium}"
|
|
Classes.large="{Binding $parent[UserControl].DataContext.IsGridLarge}"
|
|
Classes.huge="{Binding $parent[UserControl].DataContext.IsGridHuge}"
|
|
Foreground="Yellow" Symbol="StarFilled"
|
|
IsVisible="{Binding Favorite}" Margin="5" VerticalAlignment="Top"
|
|
HorizontalAlignment="Left" />
|
|
<ui:SymbolIcon Classes.icon="true" Classes.small="{Binding $parent[UserControl].DataContext.IsGridSmall}"
|
|
Classes.normal="{Binding $parent[UserControl].DataContext.IsGridMedium}"
|
|
Classes.large="{Binding $parent[UserControl].DataContext.IsGridLarge}"
|
|
Classes.huge="{Binding $parent[UserControl].DataContext.IsGridHuge}"
|
|
Foreground="Black" Symbol="Star"
|
|
IsVisible="{Binding Favorite}" Margin="5" VerticalAlignment="Top"
|
|
HorizontalAlignment="Left" />
|
|
</Grid>
|
|
</DataTemplate>
|
|
</ListBox.ItemTemplate>
|
|
</ListBox>
|
|
</Grid>
|
|
</UserControl> |