MainMenuBarView.axaml 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299
  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:ext="clr-namespace:Ryujinx.Ava.Common.Markup"
  7. xmlns:uih="clr-namespace:Ryujinx.UI.Common.Helper"
  8. mc:Ignorable="d"
  9. xmlns:viewModels="clr-namespace:Ryujinx.Ava.UI.ViewModels"
  10. xmlns:helper="clr-namespace:Ryujinx.UI.Common.Helper;assembly=Ryujinx.UI.Common"
  11. x:DataType="viewModels:MainWindowViewModel"
  12. x:Class="Ryujinx.Ava.UI.Views.Main.MainMenuBarView">
  13. <Design.DataContext>
  14. <viewModels:MainWindowViewModel />
  15. </Design.DataContext>
  16. <DockPanel HorizontalAlignment="Stretch">
  17. <Image
  18. Name="RyuLogo"
  19. Margin="7,0"
  20. Height="25"
  21. Width="25"
  22. ToolTip.Tip="{Binding Title}"
  23. Source="resm:Ryujinx.UI.Common.Resources.Logo_Ryujinx.png?assembly=Ryujinx.UI.Common" />
  24. <Menu
  25. Name="Menu"
  26. Height="35"
  27. Margin="0"
  28. HorizontalAlignment="Left"
  29. IsOpen="{Binding IsSubMenuOpen, Mode=OneWayToSource}">
  30. <Menu.ItemsPanel>
  31. <ItemsPanelTemplate>
  32. <DockPanel Margin="0" HorizontalAlignment="Stretch" />
  33. </ItemsPanelTemplate>
  34. </Menu.ItemsPanel>
  35. <MenuItem VerticalAlignment="Center" Header="{ext:Locale MenuBarFile}">
  36. <MenuItem
  37. Command="{Binding OpenFile}"
  38. Header="{ext:Locale MenuBarFileOpenFromFile}"
  39. Icon="{ext:Icon fa-solid fa-file}"
  40. IsEnabled="{Binding EnableNonGameRunningControls}"
  41. ToolTip.Tip="{ext:Locale LoadApplicationFileTooltip}" />
  42. <MenuItem
  43. Command="{Binding OpenFolder}"
  44. Header="{ext:Locale MenuBarFileOpenUnpacked}"
  45. Icon="{ext:Icon fa-solid fa-folder}"
  46. IsEnabled="{Binding EnableNonGameRunningControls}"
  47. ToolTip.Tip="{ext:Locale LoadApplicationFolderTooltip}" />
  48. <MenuItem
  49. Command="{Binding LoadDlcFromFolder}"
  50. Header="{ext:Locale MenuBarFileLoadDlcFromFolder}"
  51. Icon="{ext:Icon fa-solid fa-download}"
  52. IsEnabled="{Binding EnableNonGameRunningControls}"
  53. ToolTip.Tip="{ext:Locale LoadDlcFromFolderTooltip}" />
  54. <MenuItem
  55. Command="{Binding LoadTitleUpdatesFromFolder}"
  56. Header="{ext:Locale MenuBarFileLoadTitleUpdatesFromFolder}"
  57. Icon="{ext:Icon fa-solid fa-code-compare}"
  58. IsEnabled="{Binding EnableNonGameRunningControls}"
  59. ToolTip.Tip="{ext:Locale LoadTitleUpdatesFromFolderTooltip}" />
  60. <MenuItem Header="{ext:Locale MenuBarFileOpenApplet}" IsEnabled="{Binding IsAppletMenuActive}" Icon="{ext:Icon mdi-launch}">
  61. <MenuItem
  62. Click="OpenMiiApplet"
  63. Header="Mii Edit Applet"
  64. Icon="{ext:Icon fa-solid fa-person}"
  65. ToolTip.Tip="{ext:Locale MenuBarFileOpenAppletOpenMiiAppletToolTip}" />
  66. </MenuItem>
  67. <Separator />
  68. <MenuItem
  69. Command="{Binding OpenRyujinxFolder}"
  70. Header="{ext:Locale MenuBarFileOpenEmuFolder}"
  71. ToolTip.Tip="{ext:Locale OpenRyujinxFolderTooltip}" />
  72. <MenuItem
  73. Command="{Binding OpenLogsFolder}"
  74. Header="{ext:Locale MenuBarFileOpenLogsFolder}"
  75. ToolTip.Tip="{ext:Locale OpenRyujinxLogsTooltip}" />
  76. <Separator />
  77. <MenuItem
  78. Click="CloseWindow"
  79. Header="{ext:Locale MenuBarFileExit}"
  80. Icon="{ext:Icon fa-solid fa-xmark}"
  81. ToolTip.Tip="{ext:Locale ExitTooltip}" />
  82. </MenuItem>
  83. <MenuItem VerticalAlignment="Center" Header="{ext:Locale MenuBarOptions}">
  84. <MenuItem
  85. Command="{Binding ToggleFullscreen}"
  86. Header="{ext:Locale MenuBarOptionsToggleFullscreen}"
  87. Padding="0"
  88. Icon="{ext:Icon fa-solid fa-expand}"
  89. InputGesture="F11">
  90. <MenuItem.Styles>
  91. <Style Selector="Viewbox#PART_IconPresenter">
  92. <Setter Property="MaxHeight" Value="36" />
  93. <Setter Property="MinHeight" Value="36" />
  94. <Setter Property="MaxWidth" Value="36" />
  95. <Setter Property="MinWidth" Value="36" />
  96. </Style>
  97. <Style Selector="ContentPresenter#PART_HeaderPresenter">
  98. <Setter Property="Padding" Value="-10,0,0,0" />
  99. </Style>
  100. </MenuItem.Styles>
  101. </MenuItem>
  102. <MenuItem
  103. Padding="0"
  104. Command="{Binding ToggleStartGamesInFullscreen}"
  105. Header="{ext:Locale MenuBarOptionsStartGamesInFullscreen}">
  106. <MenuItem.Icon>
  107. <CheckBox
  108. MinWidth="{DynamicResource CheckBoxSize}"
  109. MinHeight="{DynamicResource CheckBoxSize}"
  110. IsChecked="{Binding StartGamesInFullscreen, Mode=TwoWay}"
  111. Padding="0" />
  112. </MenuItem.Icon>
  113. <MenuItem.Styles>
  114. <Style Selector="Viewbox#PART_IconPresenter">
  115. <Setter Property="MaxHeight" Value="36" />
  116. <Setter Property="MinHeight" Value="36" />
  117. <Setter Property="MaxWidth" Value="36" />
  118. <Setter Property="MinWidth" Value="36" />
  119. </Style>
  120. <Style Selector="ContentPresenter#PART_HeaderPresenter">
  121. <Setter Property="Padding" Value="-10,0,0,0" />
  122. </Style>
  123. </MenuItem.Styles>
  124. </MenuItem>
  125. <MenuItem
  126. Padding="0"
  127. IsVisible="{Binding ShowConsoleVisible}"
  128. Command="{Binding ToggleShowConsole}"
  129. Header="{ext:Locale MenuBarOptionsShowConsole}">
  130. <MenuItem.Icon>
  131. <CheckBox
  132. MinWidth="{DynamicResource CheckBoxSize}"
  133. MinHeight="{DynamicResource CheckBoxSize}"
  134. IsChecked="{Binding ShowConsole, Mode=TwoWay}"
  135. Padding="0" />
  136. </MenuItem.Icon>
  137. <MenuItem.Styles>
  138. <Style Selector="Viewbox#PART_IconPresenter">
  139. <Setter Property="MaxHeight" Value="36" />
  140. <Setter Property="MinHeight" Value="36" />
  141. <Setter Property="MaxWidth" Value="36" />
  142. <Setter Property="MinWidth" Value="36" />
  143. </Style>
  144. <Style Selector="ContentPresenter#PART_HeaderPresenter">
  145. <Setter Property="Padding" Value="-10,0,0,0" />
  146. </Style>
  147. </MenuItem.Styles>
  148. </MenuItem>
  149. <Separator/>
  150. <MenuItem
  151. Name="ChangeLanguageMenuItem"
  152. Padding="0"
  153. Header="{ext:Locale MenuBarOptionsChangeLanguage}"
  154. Icon="{ext:Icon fa-solid fa-language}">
  155. <MenuItem.Styles>
  156. <Style Selector="Viewbox#PART_IconPresenter">
  157. <Setter Property="MaxHeight" Value="36" />
  158. <Setter Property="MinHeight" Value="36" />
  159. <Setter Property="MaxWidth" Value="36" />
  160. <Setter Property="MinWidth" Value="36" />
  161. </Style>
  162. <Style Selector="ContentPresenter#PART_HeaderPresenter">
  163. <Setter Property="Padding" Value="-10,0,0,0" />
  164. </Style>
  165. </MenuItem.Styles>
  166. </MenuItem>
  167. <MenuItem
  168. Name="ToggleFileTypesMenuItem"
  169. Padding="-10,0,0,0"
  170. Header="{ext:Locale MenuBarShowFileTypes}" />
  171. <Separator />
  172. <MenuItem
  173. Click="OpenSettings"
  174. Padding="0"
  175. Header="{ext:Locale MenuBarOptionsSettings}"
  176. Icon="{ext:Icon fa-solid fa-gear}"
  177. ToolTip.Tip="{ext:Locale OpenSettingsTooltip}">
  178. <MenuItem.Styles>
  179. <Style Selector="Viewbox#PART_IconPresenter">
  180. <Setter Property="MaxHeight" Value="36" />
  181. <Setter Property="MinHeight" Value="36" />
  182. <Setter Property="MaxWidth" Value="36" />
  183. <Setter Property="MinWidth" Value="36" />
  184. </Style>
  185. <Style Selector="ContentPresenter#PART_HeaderPresenter">
  186. <Setter Property="Padding" Value="-10,0,0,0" />
  187. </Style>
  188. </MenuItem.Styles>
  189. </MenuItem>
  190. <MenuItem
  191. Command="{Binding ManageProfiles}"
  192. Padding="0"
  193. Header="{ext:Locale MenuBarOptionsManageUserProfiles}"
  194. Icon="{ext:Icon mdi-account}"
  195. IsEnabled="{Binding EnableNonGameRunningControls}"
  196. ToolTip.Tip="{ext:Locale OpenProfileManagerTooltip}">
  197. <MenuItem.Styles>
  198. <Style Selector="Viewbox#PART_IconPresenter">
  199. <Setter Property="MaxHeight" Value="36" />
  200. <Setter Property="MinHeight" Value="36" />
  201. <Setter Property="MaxWidth" Value="36" />
  202. <Setter Property="MinWidth" Value="36" />
  203. </Style>
  204. <Style Selector="ContentPresenter#PART_HeaderPresenter">
  205. <Setter Property="Padding" Value="-10,0,0,0" />
  206. </Style>
  207. </MenuItem.Styles>
  208. </MenuItem>
  209. </MenuItem>
  210. <MenuItem
  211. Name="ActionsMenuItem"
  212. VerticalAlignment="Center"
  213. Header="{ext:Locale MenuBarActions}"
  214. IsEnabled="{Binding IsGameRunning}">
  215. <MenuItem
  216. Click="PauseEmulation_Click"
  217. Header="{ext:Locale MenuBarOptionsPauseEmulation}"
  218. Icon="{ext:Icon fa-solid fa-pause}"
  219. InputGesture="{Binding PauseKey}"
  220. IsEnabled="{Binding !IsPaused}"
  221. IsVisible="{Binding !IsPaused}" />
  222. <MenuItem
  223. Click="ResumeEmulation_Click"
  224. Header="{ext:Locale MenuBarOptionsResumeEmulation}"
  225. Icon="{ext:Icon fa-solid fa-play}"
  226. InputGesture="{Binding PauseKey}"
  227. IsEnabled="{Binding IsPaused}"
  228. IsVisible="{Binding IsPaused}" />
  229. <MenuItem
  230. Click="StopEmulation_Click"
  231. Header="{ext:Locale MenuBarOptionsStopEmulation}"
  232. Icon="{ext:Icon fa-solid fa-stop}"
  233. InputGesture="Escape"
  234. IsEnabled="{Binding IsGameRunning}"
  235. ToolTip.Tip="{ext:Locale StopEmulationTooltip}" />
  236. <MenuItem Command="{Binding SimulateWakeUpMessage}" Header="{ext:Locale MenuBarOptionsSimulateWakeUpMessage}" />
  237. <Separator />
  238. <MenuItem
  239. Name="ScanAmiiboMenuItem"
  240. AttachedToVisualTree="ScanAmiiboMenuItem_AttachedToVisualTree"
  241. Click="OpenAmiiboWindow"
  242. Header="{ext:Locale MenuBarActionsScanAmiibo}"
  243. Icon="{ext:Icon mdi-cube-scan}"
  244. InputGesture="Ctrl + A"
  245. IsEnabled="{Binding IsAmiiboRequested}" />
  246. <MenuItem
  247. Command="{Binding TakeScreenshot}"
  248. Header="{ext:Locale MenuBarFileToolsTakeScreenshot}"
  249. Icon="{ext:Icon mdi-monitor-screenshot}"
  250. InputGesture="{Binding ScreenshotKey}"
  251. IsEnabled="{Binding IsGameRunning}" />
  252. <MenuItem
  253. Command="{Binding HideUi}"
  254. Header="{ext:Locale MenuBarFileToolsHideUi}"
  255. Icon="{ext:Icon mdi-eye-off}"
  256. InputGesture="{Binding ShowUiKey}"
  257. IsEnabled="{Binding IsGameRunning}" />
  258. <MenuItem
  259. Click="OpenCheatManagerForCurrentApp"
  260. Header="{ext:Locale GameListContextMenuManageCheat}"
  261. Icon="{ext:Icon fa-solid fa-code}"
  262. IsEnabled="{Binding IsGameRunning}" />
  263. </MenuItem>
  264. <MenuItem VerticalAlignment="Center" Header="{ext:Locale MenuBarTools}">
  265. <MenuItem Header="{ext:Locale MenuBarToolsInstallFirmware}" Icon="{ext:Icon fa-solid fa-download}" IsEnabled="{Binding EnableNonGameRunningControls}">
  266. <MenuItem Command="{Binding InstallFirmwareFromFile}" Header="{ext:Locale MenuBarFileToolsInstallFirmwareFromFile}" Icon="{ext:Icon mdi-file-cog}" />
  267. <MenuItem Command="{Binding InstallFirmwareFromFolder}" Header="{ext:Locale MenuBarFileToolsInstallFirmwareFromDirectory}" Icon="{ext:Icon mdi-folder-cog}" />
  268. </MenuItem>
  269. <MenuItem Header="{ext:Locale MenuBarToolsManageFileTypes}" IsVisible="{Binding ManageFileTypesVisible}">
  270. <MenuItem Header="{ext:Locale MenuBarToolsInstallFileTypes}" Click="InstallFileTypes_Click" IsEnabled="{Binding AreMimeTypesRegistered, Converter={x:Static BoolConverters.Not}}" />
  271. <MenuItem Header="{ext:Locale MenuBarToolsUninstallFileTypes}" Click="UninstallFileTypes_Click" IsEnabled="{Binding AreMimeTypesRegistered}" />
  272. </MenuItem>
  273. <Separator />
  274. <MenuItem Header="{ext:Locale MenuBarToolsXCITrimmer}" IsEnabled="{Binding EnableNonGameRunningControls}" Click="OpenXCITrimmerWindow" Icon="{ext:Icon fa-solid fa-scissors}" />
  275. </MenuItem>
  276. <MenuItem VerticalAlignment="Center" Header="{ext:Locale MenuBarView}">
  277. <MenuItem VerticalAlignment="Center" Header="{ext:Locale MenuBarViewWindow}">
  278. <MenuItem Header="{ext:Locale MenuBarViewWindow720}" Tag="1280 720" Click="ChangeWindowSize_Click" />
  279. <MenuItem Header="{ext:Locale MenuBarViewWindow1080}" Tag="1920 1080" Click="ChangeWindowSize_Click" />
  280. </MenuItem>
  281. </MenuItem>
  282. <MenuItem VerticalAlignment="Center" Header="{ext:Locale MenuBarHelp}">
  283. <MenuItem
  284. Name="UpdateMenuItem"
  285. IsEnabled="{Binding CanUpdate}"
  286. Click="CheckForUpdates"
  287. Header="{ext:Locale MenuBarHelpCheckForUpdates}"
  288. Icon="{ext:Icon mdi-update}"
  289. ToolTip.Tip="{ext:Locale CheckUpdatesTooltip}" />
  290. <Separator />
  291. <MenuItem
  292. Click="OpenAboutWindow"
  293. Header="{ext:Locale MenuBarHelpAbout}"
  294. Icon="{ext:Icon fa-solid fa-circle-info}"
  295. ToolTip.Tip="{ext:Locale OpenAboutTooltip}" />
  296. </MenuItem>
  297. </Menu>
  298. </DockPanel>
  299. </UserControl>