ApplicationDataView.axaml 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  1. <UserControl xmlns="https://github.com/avaloniaui"
  2. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  3. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  4. xmlns:helpers="clr-namespace:Ryujinx.Ava.UI.Helpers"
  5. xmlns:ext="using:Ryujinx.Ava.Common.Markup"
  6. xmlns:viewModels="using:Ryujinx.Ava.UI.ViewModels"
  7. xmlns:ui="using:FluentAvalonia.UI.Controls"
  8. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  9. mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
  10. x:Class="Ryujinx.Ava.UI.Controls.ApplicationDataView"
  11. x:DataType="viewModels:ApplicationDataViewModel">
  12. <StackPanel Orientation="Horizontal">
  13. <Image Margin="0"
  14. MaxWidth="256"
  15. MinWidth="256"
  16. Source="{Binding AppData.Icon, Converter={x:Static helpers:BitmapArrayValueConverter.Instance}}" />
  17. <Border Margin="5, 0" Width="1" Height="256" BorderBrush="Gray" Background="Gray" />
  18. <StackPanel Orientation="Vertical">
  19. <Grid
  20. RowDefinitions="Auto,Auto,Auto"
  21. ColumnDefinitions="*">
  22. <StackPanel Grid.Row="0">
  23. <TextBlock HorizontalAlignment="Left"
  24. Text="{Binding FormattedVersion}"
  25. TextAlignment="Start"
  26. TextWrapping="Wrap" />
  27. <TextBlock HorizontalAlignment="Left"
  28. Text="{Binding FormattedDeveloper}"
  29. TextAlignment="Start"
  30. TextWrapping="Wrap" />
  31. <TextBlock HorizontalAlignment="Stretch"
  32. Text="{Binding FormattedFileExtension}"
  33. TextAlignment="Start"
  34. TextWrapping="Wrap" />
  35. <TextBlock HorizontalAlignment="Stretch"
  36. Text="{Binding FormattedFileSize}"
  37. TextAlignment="Start"
  38. TextWrapping="Wrap" />
  39. </StackPanel>
  40. <Separator Grid.Row="1" Margin="0, 10, 0, 10" Height="1" BorderBrush="Gray" Background="Gray" />
  41. <StackPanel Grid.Row="2"
  42. HorizontalAlignment="Left"
  43. Orientation="Vertical"
  44. Spacing="5">
  45. <StackPanel Orientation="Horizontal" IsVisible="{Binding AppData.HasPlayabilityInfo}">
  46. <TextBlock Padding="0, 0, 5, 0" Text="{ext:Locale GameListHeaderCompatibilityStatus}" />
  47. <Button
  48. Click="PlayabilityStatus_OnClick"
  49. HorizontalContentAlignment="Left"
  50. VerticalAlignment="Center"
  51. Background="{DynamicResource AppListBackgroundColor}"
  52. Padding="0">
  53. <TextBlock
  54. Margin="1.5"
  55. Tag="{Binding AppData.IdString}"
  56. Text="{Binding AppData.LocalizedStatus}"
  57. Foreground="{Binding AppData.PlayabilityStatus, Converter={x:Static helpers:PlayabilityStatusConverter.Shared}}"
  58. TextAlignment="Start"
  59. TextWrapping="Wrap">
  60. <ToolTip.Tip>
  61. <StackPanel Orientation="Vertical">
  62. <TextBlock
  63. Text="{Binding AppData.LocalizedStatusTooltip}" />
  64. <Separator
  65. Margin="0, 10, 0, 10"
  66. IsVisible="{Binding AppData.HasCompatibilityLabels}" />
  67. <TextBlock
  68. IsVisible="{Binding AppData.HasCompatibilityLabels}"
  69. Text="{Binding AppData.FormattedCompatibilityLabels}" />
  70. </StackPanel>
  71. </ToolTip.Tip>
  72. </TextBlock>
  73. <Button.Styles>
  74. <Style Selector="Button">
  75. <Setter Property="MinWidth"
  76. Value="0" />
  77. <!-- avoids very wide buttons from the overall project avalonia style -->
  78. </Style>
  79. </Button.Styles>
  80. </Button>
  81. </StackPanel>
  82. <StackPanel Orientation="Horizontal">
  83. <TextBlock Padding="0, 0, 5, 0" Text="{ext:Locale GameListHeaderTitleId}" />
  84. <Button
  85. Click="IdString_OnClick"
  86. HorizontalContentAlignment="Left"
  87. VerticalAlignment="Center"
  88. Background="{DynamicResource AppListBackgroundColor}"
  89. Padding="0">
  90. <TextBlock
  91. Margin="1.5"
  92. HorizontalAlignment="Stretch"
  93. Text="{Binding AppData.IdString}"
  94. TextAlignment="Start"
  95. TextWrapping="Wrap" />
  96. </Button>
  97. </StackPanel>
  98. </StackPanel>
  99. </Grid>
  100. <Separator Margin="0, 10, 0, 10" Height="1" BorderBrush="Gray" Background="Gray" />
  101. <StackPanel Orientation="Vertical" Spacing="5">
  102. <StackPanel Orientation="Horizontal" Spacing="5">
  103. <ui:SymbolIcon Foreground="ForestGreen" Symbol="Checkmark" IsVisible="{Binding AppData.HasRichPresenceAsset}"/>
  104. <TextBlock
  105. Foreground="ForestGreen"
  106. HorizontalAlignment="Stretch"
  107. IsVisible="{Binding AppData.HasRichPresenceAsset}"
  108. Text="{ext:Locale GameInfoRpcImage}"
  109. TextAlignment="Start"
  110. TextWrapping="Wrap" >
  111. </TextBlock>
  112. <ui:SymbolIcon Foreground="Red" Symbol="Cancel" IsVisible="{Binding !AppData.HasRichPresenceAsset}"/>
  113. <TextBlock
  114. Foreground="Red"
  115. HorizontalAlignment="Stretch"
  116. IsVisible="{Binding !AppData.HasRichPresenceAsset}"
  117. Text="{ext:Locale GameInfoRpcImage}"
  118. TextAlignment="Start"
  119. TextWrapping="Wrap" >
  120. </TextBlock>
  121. </StackPanel>
  122. <StackPanel Orientation="Horizontal" Spacing="5" ToolTip.Tip="{Binding DynamicRichPresenceDescription}">
  123. <ui:SymbolIcon
  124. Foreground="ForestGreen"
  125. Symbol="Checkmark"
  126. IsVisible="{Binding AppData.HasDynamicRichPresenceSupport}"/>
  127. <TextBlock
  128. Foreground="ForestGreen"
  129. HorizontalAlignment="Stretch"
  130. IsVisible="{Binding AppData.HasDynamicRichPresenceSupport}"
  131. Text="{ext:Locale GameInfoRpcDynamic}"
  132. TextAlignment="Start"
  133. TextWrapping="Wrap">
  134. </TextBlock>
  135. <ui:SymbolIcon
  136. Foreground="Red"
  137. Symbol="Cancel"
  138. IsVisible="{Binding !AppData.HasDynamicRichPresenceSupport}"/>
  139. <TextBlock
  140. Foreground="Red"
  141. HorizontalAlignment="Stretch"
  142. IsVisible="{Binding !AppData.HasDynamicRichPresenceSupport}"
  143. Text="{ext:Locale GameInfoRpcDynamic}"
  144. TextAlignment="Start"
  145. TextWrapping="Wrap" >
  146. </TextBlock>
  147. </StackPanel>
  148. </StackPanel>
  149. <Separator Margin="0, 10, 0, 10" Height="1" BorderBrush="Gray" Background="Gray" />
  150. <TextBlock
  151. HorizontalAlignment="Stretch"
  152. IsVisible="{Binding AppData.HasLdnGames}"
  153. Text="{Binding FormattedLdnInfo}"
  154. TextAlignment="Start"
  155. TextWrapping="Wrap" />
  156. <Separator IsVisible="{Binding AppData.HasLdnGames}" Margin="0, 10, 0, 10" Height="1" BorderBrush="Gray" Background="Gray" />
  157. <StackPanel Orientation="Vertical" Spacing="5">
  158. <Grid
  159. ColumnDefinitions="Auto,*,Auto">
  160. <TextBlock
  161. Grid.Column="0"
  162. Text="{ext:Locale GameListHeaderLastPlayed}"
  163. VerticalAlignment="Top"
  164. TextAlignment="Start"
  165. TextWrapping="NoWrap" />
  166. <TextBlock
  167. Grid.Column="2"
  168. Text="{Binding AppData.LastPlayedString}"
  169. TextAlignment="End"
  170. TextWrapping="Wrap" />
  171. </Grid>
  172. <Grid
  173. ColumnDefinitions="Auto,*,Auto"
  174. IsVisible="{Binding AppData.HasPlayedPreviously}">
  175. <TextBlock
  176. Grid.Column="0"
  177. Text="{ext:Locale GameListHeaderTimePlayed}"
  178. VerticalAlignment="Top"
  179. TextAlignment="Start"
  180. TextWrapping="NoWrap" />
  181. <TextBlock Grid.Column="2"
  182. Text="{Binding AppData.TimePlayedString}"
  183. TextAlignment="End"
  184. TextWrapping="Wrap" />
  185. </Grid>
  186. </StackPanel>
  187. </StackPanel>
  188. </StackPanel>
  189. </UserControl>