MainMenuBarView.axaml 17 KB

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