MainStatusBarView.axaml 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232
  1. <UserControl
  2. xmlns="https://github.com/avaloniaui"
  3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  5. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  6. xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale"
  7. xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
  8. xmlns:viewModels="clr-namespace:Ryujinx.Ava.UI.ViewModels"
  9. mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
  10. x:Class="Ryujinx.Ava.UI.Views.Main.MainStatusBarView"
  11. x:CompileBindings="True"
  12. x:DataType="viewModels:MainWindowViewModel">
  13. <Design.DataContext>
  14. <viewModels:MainWindowViewModel />
  15. </Design.DataContext>
  16. <Grid
  17. Name="StatusBar"
  18. Margin="0"
  19. MinHeight="22"
  20. HorizontalAlignment="Stretch"
  21. VerticalAlignment="Bottom"
  22. Background="{DynamicResource ThemeContentBackgroundColor}"
  23. DockPanel.Dock="Bottom"
  24. IsVisible="{Binding ShowMenuAndStatusBar}">
  25. <Grid.ColumnDefinitions>
  26. <ColumnDefinition Width="Auto" />
  27. <ColumnDefinition Width="Auto" />
  28. <ColumnDefinition Width="*" />
  29. <ColumnDefinition Width="Auto" />
  30. </Grid.ColumnDefinitions>
  31. <StackPanel
  32. Grid.Column="0"
  33. Margin="5"
  34. VerticalAlignment="Center"
  35. IsVisible="{Binding EnableNonGameRunningControls}">
  36. <Grid Margin="0">
  37. <Grid.ColumnDefinitions>
  38. <ColumnDefinition Width="Auto" />
  39. <ColumnDefinition Width="Auto" />
  40. <ColumnDefinition />
  41. </Grid.ColumnDefinitions>
  42. <Button
  43. Width="25"
  44. Height="25"
  45. MinWidth="0"
  46. Margin="0,0,5,0"
  47. VerticalAlignment="Center"
  48. Background="Transparent"
  49. Command="{ReflectionBinding LoadApplications}">
  50. <ui:SymbolIcon
  51. Width="50"
  52. Height="100"
  53. Symbol="Refresh" />
  54. </Button>
  55. <TextBlock
  56. Name="LoadStatus"
  57. Grid.Column="1"
  58. Margin="0,0,5,0"
  59. VerticalAlignment="Center"
  60. IsVisible="{Binding EnableNonGameRunningControls}"
  61. Text="{locale:Locale StatusBarGamesLoaded}" />
  62. <ProgressBar
  63. Name="LoadProgressBar"
  64. Grid.Column="2"
  65. Height="6"
  66. VerticalAlignment="Center"
  67. Foreground="{DynamicResource HighlightColor}"
  68. IsVisible="{Binding StatusBarVisible}"
  69. Maximum="{Binding StatusBarProgressMaximum}"
  70. Value="{Binding StatusBarProgressValue}" />
  71. </Grid>
  72. </StackPanel>
  73. <StackPanel
  74. Grid.Column="1"
  75. Margin="0,2"
  76. HorizontalAlignment="Left"
  77. VerticalAlignment="Center"
  78. IsVisible="{Binding IsGameRunning}"
  79. MaxHeight="18"
  80. Orientation="Horizontal">
  81. <TextBlock
  82. Name="VsyncStatus"
  83. Margin="5,0,5,0"
  84. HorizontalAlignment="Left"
  85. VerticalAlignment="Center"
  86. Foreground="{Binding VsyncColor}"
  87. IsVisible="{Binding !ShowLoadProgress}"
  88. PointerReleased="VsyncStatus_PointerReleased"
  89. Text="VSync"
  90. TextAlignment="Left" />
  91. <Border
  92. Width="2"
  93. Height="12"
  94. Margin="0"
  95. BorderBrush="Gray"
  96. BorderThickness="1"
  97. IsVisible="{Binding !ShowLoadProgress}" />
  98. <TextBlock
  99. Name="DockedStatus"
  100. Margin="5,0,5,0"
  101. HorizontalAlignment="Left"
  102. VerticalAlignment="Center"
  103. IsVisible="{Binding !ShowLoadProgress}"
  104. PointerReleased="DockedStatus_PointerReleased"
  105. Text="{Binding DockedStatusText}"
  106. TextAlignment="Left" />
  107. <Border
  108. Width="2"
  109. Height="12"
  110. Margin="0"
  111. BorderBrush="Gray"
  112. BorderThickness="1"
  113. IsVisible="{Binding !ShowLoadProgress}" />
  114. <TextBlock
  115. Name="AspectRatioStatus"
  116. Margin="5,0,5,0"
  117. HorizontalAlignment="Left"
  118. VerticalAlignment="Center"
  119. IsVisible="{Binding !ShowLoadProgress}"
  120. PointerReleased="AspectRatioStatus_PointerReleased"
  121. Text="{Binding AspectRatioStatusText}"
  122. TextAlignment="Left" />
  123. <Border
  124. Width="2"
  125. Height="12"
  126. Margin="0"
  127. BorderBrush="Gray"
  128. BorderThickness="1"
  129. IsVisible="{Binding !ShowLoadProgress}" />
  130. <ui:ToggleSplitButton
  131. Name="VolumeStatus"
  132. Padding="5,0,5,0"
  133. HorizontalAlignment="Left"
  134. VerticalAlignment="Center"
  135. VerticalContentAlignment="Center"
  136. Background="{DynamicResource ThemeContentBackgroundColor}"
  137. BorderThickness="0"
  138. Content="{Binding VolumeStatusText}"
  139. IsChecked="{Binding VolumeMuted}"
  140. IsVisible="{Binding !ShowLoadProgress}">
  141. <ui:ToggleSplitButton.Flyout>
  142. <Flyout Placement="Bottom" ShowMode="TransientWithDismissOnPointerMoveAway">
  143. <Grid Margin="0">
  144. <Slider
  145. MaxHeight="40"
  146. Width="150"
  147. Margin="0"
  148. Padding="0"
  149. IsSnapToTickEnabled="True"
  150. LargeChange="0.05"
  151. Maximum="1"
  152. Minimum="0"
  153. SmallChange="0.01"
  154. TickFrequency="0.05"
  155. ToolTip.Tip="{locale:Locale AudioVolumeTooltip}"
  156. Value="{Binding Volume}" />
  157. </Grid>
  158. </Flyout>
  159. </ui:ToggleSplitButton.Flyout>
  160. </ui:ToggleSplitButton>
  161. <Border
  162. Width="2"
  163. Height="12"
  164. Margin="0"
  165. BorderBrush="Gray"
  166. BorderThickness="1"
  167. IsVisible="{Binding !ShowLoadProgress}" />
  168. <TextBlock
  169. Margin="5,0,5,0"
  170. HorizontalAlignment="Left"
  171. VerticalAlignment="Center"
  172. IsVisible="{Binding !ShowLoadProgress}"
  173. Text="{Binding GameStatusText}"
  174. TextAlignment="Left" />
  175. <Border
  176. Width="2"
  177. Height="12"
  178. Margin="0"
  179. BorderBrush="Gray"
  180. BorderThickness="1"
  181. IsVisible="{Binding !ShowLoadProgress}" />
  182. <TextBlock
  183. Margin="5,0,5,0"
  184. HorizontalAlignment="Left"
  185. VerticalAlignment="Center"
  186. IsVisible="{Binding !ShowLoadProgress}"
  187. Text="{Binding FifoStatusText}"
  188. TextAlignment="Left" />
  189. <Border
  190. Width="2"
  191. Height="12"
  192. Margin="0"
  193. BorderBrush="Gray"
  194. BorderThickness="1"
  195. IsVisible="{Binding !ShowLoadProgress}" />
  196. <TextBlock
  197. Margin="5,0,5,0"
  198. HorizontalAlignment="Left"
  199. VerticalAlignment="Center"
  200. IsVisible="{Binding !ShowLoadProgress}"
  201. Text="{Binding BackendText}"
  202. TextAlignment="Left" />
  203. <Border
  204. Width="2"
  205. Height="12"
  206. Margin="0"
  207. BorderBrush="Gray"
  208. BorderThickness="1"
  209. IsVisible="{Binding !ShowLoadProgress}" />
  210. <TextBlock
  211. Margin="5,0,5,0"
  212. HorizontalAlignment="Left"
  213. VerticalAlignment="Center"
  214. IsVisible="{Binding !ShowLoadProgress}"
  215. Text="{Binding GpuNameText}"
  216. TextAlignment="Left" />
  217. </StackPanel>
  218. <StackPanel
  219. Grid.Column="3"
  220. Margin="0,0,5,0"
  221. VerticalAlignment="Center"
  222. IsVisible="{Binding ShowFirmwareStatus}"
  223. Orientation="Horizontal">
  224. <TextBlock
  225. Name="FirmwareStatus"
  226. Margin="0"
  227. HorizontalAlignment="Right"
  228. VerticalAlignment="Center"
  229. Text="{locale:Locale StatusBarSystemVersion}" />
  230. </StackPanel>
  231. </Grid>
  232. </UserControl>