diff options
Diffstat (limited to 'Ryujinx.Ava/Ui/Windows/MainWindow.axaml')
| -rw-r--r-- | Ryujinx.Ava/Ui/Windows/MainWindow.axaml | 654 |
1 files changed, 378 insertions, 276 deletions
diff --git a/Ryujinx.Ava/Ui/Windows/MainWindow.axaml b/Ryujinx.Ava/Ui/Windows/MainWindow.axaml index 642f241c..532be219 100644 --- a/Ryujinx.Ava/Ui/Windows/MainWindow.axaml +++ b/Ryujinx.Ava/Ui/Windows/MainWindow.axaml @@ -1,25 +1,25 @@ <window:StyleableWindow x:Class="Ryujinx.Ava.Ui.Windows.MainWindow" xmlns="https://github.com/avaloniaui" - xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" - xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale" xmlns:controls="clr-namespace:Ryujinx.Ava.Ui.Controls" - xmlns:models="clr-namespace:Ryujinx.Ava.Ui.Models" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:models="clr-namespace:Ryujinx.Ava.Ui.Models" + xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia" xmlns:viewModels="clr-namespace:Ryujinx.Ava.Ui.ViewModels" xmlns:window="clr-namespace:Ryujinx.Ava.Ui.Windows" Title="Ryujinx" - Height="785" Width="1280" - d:DesignHeight="720" - d:DesignWidth="1280" + Height="785" MinWidth="1024" MinHeight="680" - WindowStartupLocation="CenterScreen" + d:DesignHeight="720" + d:DesignWidth="1280" x:CompileBindings="True" x:DataType="viewModels:MainWindowViewModel" + WindowStartupLocation="CenterScreen" mc:Ignorable="d"> <Window.Styles> <Style Selector="TitleBar:fullscreen"> @@ -38,23 +38,28 @@ <RowDefinition Height="*" /> </Grid.RowDefinitions> <controls:OffscreenTextBox Name="HiddenTextBox" Grid.Row="0" /> - <ContentControl Grid.Row="1" - Focusable="False" - IsVisible="False" - KeyboardNavigation.IsTabStop="False"> - <ui:ContentDialog Name="ContentDialog" - KeyboardNavigation.IsTabStop="False" - IsPrimaryButtonEnabled="True" - IsSecondaryButtonEnabled="True" - IsVisible="True" /> + <ContentControl + Grid.Row="1" + Focusable="False" + IsVisible="False" + KeyboardNavigation.IsTabStop="False"> + <ui:ContentDialog + Name="ContentDialog" + IsPrimaryButtonEnabled="True" + IsSecondaryButtonEnabled="True" + IsVisible="True" + KeyboardNavigation.IsTabStop="False" /> </ContentControl> - <StackPanel IsVisible="False" Grid.Row="0"> + <StackPanel Grid.Row="0" IsVisible="False"> <controls:HotKeyControl Name="FullscreenHotKey" Command="{ReflectionBinding ToggleFullscreen}" /> <controls:HotKeyControl Name="FullscreenHotKey2" Command="{ReflectionBinding ToggleFullscreen}" /> <controls:HotKeyControl Name="DockToggleHotKey" Command="{ReflectionBinding ToggleDockMode}" /> <controls:HotKeyControl Name="ExitHotKey" Command="{ReflectionBinding ExitCurrentState}" /> </StackPanel> - <Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Grid.Row="1"> + <Grid + Grid.Row="1" + HorizontalAlignment="Stretch" + VerticalAlignment="Stretch"> <Grid.ColumnDefinitions> <ColumnDefinition Width="*" /> </Grid.ColumnDefinitions> @@ -73,47 +78,51 @@ <DockPanel HorizontalAlignment="Stretch"> <Menu Name="Menu" - Margin="0" Height="35" + Margin="0" HorizontalAlignment="Left"> <Menu.ItemsPanel> <ItemsPanelTemplate> - <DockPanel HorizontalAlignment="Stretch" Margin="0" /> + <DockPanel Margin="0" HorizontalAlignment="Stretch" /> </ItemsPanelTemplate> </Menu.ItemsPanel> - <MenuItem - VerticalAlignment="Center" - Header="{locale:Locale MenuBarFile}"> - <MenuItem IsEnabled="{Binding EnableNonGameRunningControls}" - Command="{ReflectionBinding OpenFile}" - Header="{locale:Locale MenuBarFileOpenFromFile}" - ToolTip.Tip="{locale:Locale LoadApplicationFileTooltip}" /> - <MenuItem IsEnabled="{Binding EnableNonGameRunningControls}" - Command="{ReflectionBinding OpenFolder}" - Header="{locale:Locale MenuBarFileOpenUnpacked}" - ToolTip.Tip="{locale:Locale LoadApplicationFolderTooltip}" /> - <MenuItem Header="{locale:Locale MenuBarFileOpenApplet}" - IsEnabled="{Binding IsAppletMenuActive}"> - <MenuItem Command="{ReflectionBinding OpenMiiApplet}" Header="Mii Edit Applet" - ToolTip.Tip="{locale:Locale MenuBarFileOpenAppletOpenMiiAppletToolTip}" /> + <MenuItem VerticalAlignment="Center" Header="{locale:Locale MenuBarFile}"> + <MenuItem + Command="{ReflectionBinding OpenFile}" + Header="{locale:Locale MenuBarFileOpenFromFile}" + IsEnabled="{Binding EnableNonGameRunningControls}" + ToolTip.Tip="{locale:Locale LoadApplicationFileTooltip}" /> + <MenuItem + Command="{ReflectionBinding OpenFolder}" + Header="{locale:Locale MenuBarFileOpenUnpacked}" + IsEnabled="{Binding EnableNonGameRunningControls}" + ToolTip.Tip="{locale:Locale LoadApplicationFolderTooltip}" /> + <MenuItem Header="{locale:Locale MenuBarFileOpenApplet}" IsEnabled="{Binding IsAppletMenuActive}"> + <MenuItem + Command="{ReflectionBinding OpenMiiApplet}" + Header="Mii Edit Applet" + ToolTip.Tip="{locale:Locale MenuBarFileOpenAppletOpenMiiAppletToolTip}" /> </MenuItem> <Separator /> - <MenuItem Command="{ReflectionBinding OpenRyujinxFolder}" - Header="{locale:Locale MenuBarFileOpenEmuFolder}" - ToolTip.Tip="{locale:Locale OpenRyujinxFolderTooltip}" /> - <MenuItem Command="{ReflectionBinding OpenLogsFolder}" - Header="{locale:Locale MenuBarFileOpenLogsFolder}" - ToolTip.Tip="{locale:Locale OpenRyujinxLogsTooltip}" /> + <MenuItem + Command="{ReflectionBinding OpenRyujinxFolder}" + Header="{locale:Locale MenuBarFileOpenEmuFolder}" + ToolTip.Tip="{locale:Locale OpenRyujinxFolderTooltip}" /> + <MenuItem + Command="{ReflectionBinding OpenLogsFolder}" + Header="{locale:Locale MenuBarFileOpenLogsFolder}" + ToolTip.Tip="{locale:Locale OpenRyujinxLogsTooltip}" /> <Separator /> - <MenuItem Command="{ReflectionBinding CloseWindow}" - Header="{locale:Locale MenuBarFileExit}" - ToolTip.Tip="{locale:Locale ExitTooltip}" /> + <MenuItem + Command="{ReflectionBinding CloseWindow}" + Header="{locale:Locale MenuBarFileExit}" + ToolTip.Tip="{locale:Locale ExitTooltip}" /> </MenuItem> - <MenuItem - VerticalAlignment="Center" - Header="{locale:Locale MenuBarOptions}"> - <MenuItem Command="{ReflectionBinding ToggleFullscreen}" - Header="{locale:Locale MenuBarOptionsToggleFullscreen}" InputGesture="F11" /> + <MenuItem VerticalAlignment="Center" Header="{locale:Locale MenuBarOptions}"> + <MenuItem + Command="{ReflectionBinding ToggleFullscreen}" + Header="{locale:Locale MenuBarOptionsToggleFullscreen}" + InputGesture="F11" /> <MenuItem Header="{locale:Locale MenuBarOptionsStartGamesInFullscreen}"> <MenuItem.Icon> <CheckBox IsChecked="{Binding StartGamesInFullscreen, Mode=TwoWay}" /> @@ -126,60 +135,82 @@ </MenuItem> <Separator /> <MenuItem Header="{locale:Locale MenuBarOptionsChangeLanguage}"> - <MenuItem Command="{ReflectionBinding ChangeLanguage}" CommandParameter="en_US" - Header="American English" /> - <MenuItem Command="{ReflectionBinding ChangeLanguage}" CommandParameter="pt_BR" - Header="Brazilian Portuguese" /> - <MenuItem Command="{ReflectionBinding ChangeLanguage}" CommandParameter="es_ES" - Header="Castilian Spanish" /> - <MenuItem Command="{ReflectionBinding ChangeLanguage}" CommandParameter="fr_FR" - Header="French" /> - <MenuItem Command="{ReflectionBinding ChangeLanguage}" CommandParameter="de_DE" - Header="German" /> - <MenuItem Command="{ReflectionBinding ChangeLanguage}" CommandParameter="el_GR" - Header="Greek" /> - <MenuItem Command="{ReflectionBinding ChangeLanguage}" CommandParameter="it_IT" - Header="Italian" /> - <MenuItem Command="{ReflectionBinding ChangeLanguage}" CommandParameter="ko_KR" - Header="Korean" /> - <MenuItem Command="{ReflectionBinding ChangeLanguage}" CommandParameter="ru_RU" - Header="Russian" /> - <MenuItem Command="{ReflectionBinding ChangeLanguage}" CommandParameter="tr_TR" - Header="Turkish" /> + <MenuItem + Command="{ReflectionBinding ChangeLanguage}" + CommandParameter="en_US" + Header="American English" /> + <MenuItem + Command="{ReflectionBinding ChangeLanguage}" + CommandParameter="pt_BR" + Header="Brazilian Portuguese" /> + <MenuItem + Command="{ReflectionBinding ChangeLanguage}" + CommandParameter="es_ES" + Header="Castilian Spanish" /> + <MenuItem + Command="{ReflectionBinding ChangeLanguage}" + CommandParameter="fr_FR" + Header="French" /> + <MenuItem + Command="{ReflectionBinding ChangeLanguage}" + CommandParameter="de_DE" + Header="German" /> + <MenuItem + Command="{ReflectionBinding ChangeLanguage}" + CommandParameter="el_GR" + Header="Greek" /> + <MenuItem + Command="{ReflectionBinding ChangeLanguage}" + CommandParameter="it_IT" + Header="Italian" /> + <MenuItem + Command="{ReflectionBinding ChangeLanguage}" + CommandParameter="ko_KR" + Header="Korean" /> + <MenuItem + Command="{ReflectionBinding ChangeLanguage}" + CommandParameter="ru_RU" + Header="Russian" /> + <MenuItem + Command="{ReflectionBinding ChangeLanguage}" + CommandParameter="tr_TR" + Header="Turkish" /> </MenuItem> <Separator /> - <MenuItem Command="{ReflectionBinding OpenSettings}" - Header="{locale:Locale MenuBarOptionsSettings}" - ToolTip.Tip="{locale:Locale OpenSettingsTooltip}" /> - <MenuItem Command="{ReflectionBinding ManageProfiles}" - IsEnabled="{Binding EnableNonGameRunningControls}" - Header="{locale:Locale MenuBarOptionsManageUserProfiles}" - ToolTip.Tip="{locale:Locale OpenProfileManagerTooltip}" /> + <MenuItem + Command="{ReflectionBinding OpenSettings}" + Header="{locale:Locale MenuBarOptionsSettings}" + ToolTip.Tip="{locale:Locale OpenSettingsTooltip}" /> + <MenuItem + Command="{ReflectionBinding ManageProfiles}" + Header="{locale:Locale MenuBarOptionsManageUserProfiles}" + IsEnabled="{Binding EnableNonGameRunningControls}" + ToolTip.Tip="{locale:Locale OpenProfileManagerTooltip}" /> </MenuItem> <MenuItem + Name="ActionsMenuItem" VerticalAlignment="Center" Header="{locale:Locale MenuBarActions}" - Name="ActionsMenuItem" IsEnabled="{Binding IsGameRunning}"> <MenuItem Click="PauseEmulation_Click" Header="{locale:Locale MenuBarOptionsPauseEmulation}" + InputGesture="{Binding PauseKey}" IsEnabled="{Binding !IsPaused}" - IsVisible="{Binding !IsPaused}" - InputGesture="{Binding PauseKey}" /> + IsVisible="{Binding !IsPaused}" /> <MenuItem Click="ResumeEmulation_Click" Header="{locale:Locale MenuBarOptionsResumeEmulation}" + InputGesture="{Binding PauseKey}" IsEnabled="{Binding IsPaused}" - IsVisible="{Binding IsPaused}" - InputGesture="{Binding PauseKey}" /> + IsVisible="{Binding IsPaused}" /> <MenuItem Click="StopEmulation_Click" Header="{locale:Locale MenuBarOptionsStopEmulation}" - ToolTip.Tip="{locale:Locale StopEmulationTooltip}" - IsEnabled="{Binding IsGameRunning}" InputGesture="Escape" /> - <MenuItem Command="{ReflectionBinding SimulateWakeUpMessage}" - Header="{locale:Locale MenuBarOptionsSimulateWakeUpMessage}" /> + InputGesture="Escape" + IsEnabled="{Binding IsGameRunning}" + ToolTip.Tip="{locale:Locale StopEmulationTooltip}" /> + <MenuItem Command="{ReflectionBinding SimulateWakeUpMessage}" Header="{locale:Locale MenuBarOptionsSimulateWakeUpMessage}" /> <Separator /> <MenuItem Name="ScanAmiiboMenuItem" @@ -187,41 +218,38 @@ Command="{ReflectionBinding OpenAmiiboWindow}" Header="{locale:Locale MenuBarActionsScanAmiibo}" IsEnabled="{Binding IsAmiiboRequested}" /> - <MenuItem Command="{ReflectionBinding TakeScreenshot}" - IsEnabled="{Binding IsGameRunning}" - Header="{locale:Locale MenuBarFileToolsTakeScreenshot}" - InputGesture="{Binding ScreenshotKey}" /> - <MenuItem Command="{ReflectionBinding HideUi}" - IsEnabled="{Binding IsGameRunning}" - Header="{locale:Locale MenuBarFileToolsHideUi}" - InputGesture="{Binding ShowUiKey}" /> - <MenuItem Command="{ReflectionBinding OpenCheatManagerForCurrentApp}" - IsEnabled="{Binding IsGameRunning}" - Header="{locale:Locale GameListContextMenuManageCheat}" /> + <MenuItem + Command="{ReflectionBinding TakeScreenshot}" + Header="{locale:Locale MenuBarFileToolsTakeScreenshot}" + InputGesture="{Binding ScreenshotKey}" + IsEnabled="{Binding IsGameRunning}" /> + <MenuItem + Command="{ReflectionBinding HideUi}" + Header="{locale:Locale MenuBarFileToolsHideUi}" + InputGesture="{Binding ShowUiKey}" + IsEnabled="{Binding IsGameRunning}" /> + <MenuItem + Command="{ReflectionBinding OpenCheatManagerForCurrentApp}" + Header="{locale:Locale GameListContextMenuManageCheat}" + IsEnabled="{Binding IsGameRunning}" /> </MenuItem> - <MenuItem - VerticalAlignment="Center" - Header="{locale:Locale MenuBarTools}"> - <MenuItem Header="{locale:Locale MenuBarToolsInstallFirmware}" - IsEnabled="{Binding EnableNonGameRunningControls}"> - <MenuItem Command="{ReflectionBinding InstallFirmwareFromFile}" - Header="{locale:Locale MenuBarFileToolsInstallFirmwareFromFile}" /> - <MenuItem Command="{ReflectionBinding InstallFirmwareFromFolder}" - Header="{locale:Locale MenuBarFileToolsInstallFirmwareFromDirectory}" /> + <MenuItem VerticalAlignment="Center" Header="{locale:Locale MenuBarTools}"> + <MenuItem Header="{locale:Locale MenuBarToolsInstallFirmware}" IsEnabled="{Binding EnableNonGameRunningControls}"> + <MenuItem Command="{ReflectionBinding InstallFirmwareFromFile}" Header="{locale:Locale MenuBarFileToolsInstallFirmwareFromFile}" /> + <MenuItem Command="{ReflectionBinding InstallFirmwareFromFolder}" Header="{locale:Locale MenuBarFileToolsInstallFirmwareFromDirectory}" /> </MenuItem> </MenuItem> - <MenuItem - VerticalAlignment="Center" - Header="{locale:Locale MenuBarHelp}"> + <MenuItem VerticalAlignment="Center" Header="{locale:Locale MenuBarHelp}"> <MenuItem Name="UpdateMenuItem" Command="{ReflectionBinding CheckForUpdates}" Header="{locale:Locale MenuBarHelpCheckForUpdates}" ToolTip.Tip="{locale:Locale CheckUpdatesTooltip}" /> <Separator /> - <MenuItem Command="{ReflectionBinding OpenAboutWindow}" - Header="{locale:Locale MenuBarHelpAbout}" - ToolTip.Tip="{locale:Locale OpenAboutTooltip}" /> + <MenuItem + Command="{ReflectionBinding OpenAboutWindow}" + Header="{locale:Locale MenuBarHelpAbout}" + ToolTip.Tip="{locale:Locale OpenAboutTooltip}" /> </MenuItem> </Menu> </DockPanel> @@ -230,152 +258,213 @@ Name="Content" Grid.Row="1" Padding="0" - IsVisible="{Binding ShowContent}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" BorderBrush="{DynamicResource ThemeControlBorderColor}" BorderThickness="0,0,0,0" - DockPanel.Dock="Top"> + DockPanel.Dock="Top" + IsVisible="{Binding ShowContent}"> <Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch"> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="*" /> </Grid.RowDefinitions> - <DockPanel Grid.Row="0" HorizontalAlignment="Stretch" Margin="0,0,0,5"> + <DockPanel + Grid.Row="0" + Margin="0,0,0,5" + HorizontalAlignment="Stretch"> <Button - IsEnabled="{Binding IsGrid}" VerticalAlignment="Stretch" MinWidth="40" Width="40" - Margin="5,2,0,2" Command="{ReflectionBinding SetListMode}"> - <ui:FontIcon FontFamily="avares://FluentAvalonia/Fonts#Symbols" - VerticalAlignment="Center" - Margin="0" - Glyph="{controls:GlyphValueConverter List}" - HorizontalAlignment="Stretch" /> + Width="40" + MinWidth="40" + Margin="5,2,0,2" + VerticalAlignment="Stretch" + Command="{ReflectionBinding SetListMode}" + IsEnabled="{Binding IsGrid}"> + <ui:FontIcon + Margin="0" + HorizontalAlignment="Stretch" + VerticalAlignment="Center" + FontFamily="avares://FluentAvalonia/Fonts#Symbols" + Glyph="{controls:GlyphValueConverter List}" /> </Button> <Button - IsEnabled="{Binding IsList}" VerticalAlignment="Stretch" MinWidth="40" Width="40" - Margin="5,2,5,2" Command="{ReflectionBinding SetGridMode}"> - <ui:FontIcon FontFamily="avares://FluentAvalonia/Fonts#Symbols" - VerticalAlignment="Center" - Margin="0" - Glyph="{controls:GlyphValueConverter Grid}" - HorizontalAlignment="Stretch" /> + Width="40" + MinWidth="40" + Margin="5,2,5,2" + VerticalAlignment="Stretch" + Command="{ReflectionBinding SetGridMode}" + IsEnabled="{Binding IsList}"> + <ui:FontIcon + Margin="0" + HorizontalAlignment="Stretch" + VerticalAlignment="Center" + FontFamily="avares://FluentAvalonia/Fonts#Symbols" + Glyph="{controls:GlyphValueConverter Grid}" /> </Button> - <TextBlock Text="{locale:Locale IconSize}" - VerticalAlignment="Center" Margin="10,0" - ToolTip.Tip="{locale:Locale IconSizeTooltip}" /> - <Slider Width="150" Margin="5,-10,5 ,0" Height="35" - ToolTip.Tip="{locale:Locale IconSizeTooltip}" - VerticalAlignment="Center" Minimum="1" Maximum="4" IsSnapToTickEnabled="True" - TickFrequency="1" Value="{Binding GridSizeScale}" /> - <CheckBox Margin="0" IsChecked="{Binding ShowNames, Mode=TwoWay}" VerticalAlignment="Center" - IsVisible="{Binding IsGrid}"> - <TextBlock Text="{locale:Locale CommonShowNames}" Margin="5,3,0,0" /> + <TextBlock + Margin="10,0" + VerticalAlignment="Center" + Text="{locale:Locale IconSize}" + ToolTip.Tip="{locale:Locale IconSizeTooltip}" /> + <Slider + Width="150" + Height="35" + Margin="5,-10,5,0" + VerticalAlignment="Center" + IsSnapToTickEnabled="True" + Maximum="4" + Minimum="1" + TickFrequency="1" + ToolTip.Tip="{locale:Locale IconSizeTooltip}" + Value="{Binding GridSizeScale}" /> + <CheckBox + Margin="0" + VerticalAlignment="Center" + IsChecked="{Binding ShowNames, Mode=TwoWay}" + IsVisible="{Binding IsGrid}"> + <TextBlock Margin="5,3,0,0" Text="{locale:Locale CommonShowNames}" /> </CheckBox> <TextBox Name="SearchBox" - DockPanel.Dock="Right" - VerticalAlignment="Center" MinWidth="200" Margin="5,0,5,0" HorizontalAlignment="Right" + VerticalAlignment="Center" + DockPanel.Dock="Right" KeyUp="SearchBox_OnKeyUp" Text="{Binding SearchText}" Watermark="{locale:Locale MenuSearch}" /> - <ui:DropDownButton DockPanel.Dock="Right" - HorizontalAlignment="Right" Width="150" VerticalAlignment="Center" - Content="{Binding SortName}"> + <ui:DropDownButton + Width="150" + HorizontalAlignment="Right" + VerticalAlignment="Center" + Content="{Binding SortName}" + DockPanel.Dock="Right"> <ui:DropDownButton.Flyout> <Flyout Placement="Bottom"> - <StackPanel Orientation="Vertical" HorizontalAlignment="Stretch" Margin="0"> + <StackPanel + Margin="0" + HorizontalAlignment="Stretch" + Orientation="Vertical"> <StackPanel> - <RadioButton Tag="Favorite" - IsChecked="{Binding IsSortedByFavorite, Mode=OneTime}" - GroupName="Sort" - Content="{locale:Locale CommonFavorite}" - Checked="Sort_Checked" /> - <RadioButton Tag="Title" GroupName="Sort" - IsChecked="{Binding IsSortedByTitle, Mode=OneTime}" - Content="{locale:Locale GameListHeaderApplication}" - Checked="Sort_Checked" /> - <RadioButton Tag="Developer" GroupName="Sort" - IsChecked="{Binding IsSortedByDeveloper, Mode=OneTime}" - Content="{locale:Locale GameListHeaderDeveloper}" - Checked="Sort_Checked" /> - <RadioButton Tag="TotalTimePlayed" GroupName="Sort" - IsChecked="{Binding IsSortedByTimePlayed, Mode=OneTime}" - Content="{locale:Locale GameListHeaderTimePlayed}" - Checked="Sort_Checked" /> - <RadioButton Tag="LastPlayed" GroupName="Sort" - IsChecked="{Binding IsSortedByLastPlayed, Mode=OneTime}" - Content="{locale:Locale GameListHeaderLastPlayed}" - Checked="Sort_Checked" /> - <RadioButton Tag="FileType" GroupName="Sort" - IsChecked="{Binding IsSortedByType, Mode=OneTime}" - Content="{locale:Locale GameListHeaderFileExtension}" - Checked="Sort_Checked" /> - <RadioButton Tag="FileSize" GroupName="Sort" - IsChecked="{Binding IsSortedBySize, Mode=OneTime}" - Content="{locale:Locale GameListHeaderFileSize}" - Checked="Sort_Checked" /> - <RadioButton Tag="Path" GroupName="Sort" - IsChecked="{Binding IsSortedByPath, Mode=OneTime}" - Content="{locale:Locale GameListHeaderPath}" - Checked="Sort_Checked" /> + <RadioButton + Checked="Sort_Checked" + Content="{locale:Locale CommonFavorite}" + GroupName="Sort" + IsChecked="{Binding IsSortedByFavorite, Mode=OneTime}" + Tag="Favorite" /> + <RadioButton + Checked="Sort_Checked" + Content="{locale:Locale GameListHeaderApplication}" + GroupName="Sort" + IsChecked="{Binding IsSortedByTitle, Mode=OneTime}" + Tag="Title" /> + <RadioButton + Checked="Sort_Checked" + Content="{locale:Locale GameListHeaderDeveloper}" + GroupName="Sort" + IsChecked="{Binding IsSortedByDeveloper, Mode=OneTime}" + Tag="Developer" /> + <RadioButton + Checked="Sort_Checked" + Content="{locale:Locale GameListHeaderTimePlayed}" + GroupName="Sort" + IsChecked="{Binding IsSortedByTimePlayed, Mode=OneTime}" + Tag="TotalTimePlayed" /> + <RadioButton + Checked="Sort_Checked" + Content="{locale:Locale GameListHeaderLastPlayed}" + GroupName="Sort" + IsChecked="{Binding IsSortedByLastPlayed, Mode=OneTime}" + Tag="LastPlayed" /> + <RadioButton + Checked="Sort_Checked" + Content="{locale:Locale GameListHeaderFileExtension}" + GroupName="Sort" + IsChecked="{Binding IsSortedByType, Mode=OneTime}" + Tag="FileType" /> + <RadioButton + Checked="Sort_Checked" + Content="{locale:Locale GameListHeaderFileSize}" + GroupName="Sort" + IsChecked="{Binding IsSortedBySize, Mode=OneTime}" + Tag="FileSize" /> + <RadioButton + Checked="Sort_Checked" + Content="{locale:Locale GameListHeaderPath}" + GroupName="Sort" + IsChecked="{Binding IsSortedByPath, Mode=OneTime}" + Tag="Path" /> </StackPanel> - <Border HorizontalAlignment="Stretch" Margin="5" Height="2" BorderBrush="White" - Width="60" BorderThickness="0,1,0,0"> - <Separator HorizontalAlignment="Stretch" Height="0" /> + <Border + Width="60" + Height="2" + Margin="5" + HorizontalAlignment="Stretch" + BorderBrush="White" + BorderThickness="0,1,0,0"> + <Separator Height="0" HorizontalAlignment="Stretch" /> </Border> - <RadioButton Tag="Ascending" IsChecked="{Binding IsAscending, Mode=OneTime}" - GroupName="Order" - Content="{locale:Locale OrderAscending}" Checked="Order_Checked" /> - <RadioButton Tag="Descending" GroupName="Order" - IsChecked="{Binding !IsAscending, Mode=OneTime}" - Content="{locale:Locale OrderDescending}" Checked="Order_Checked" /> + <RadioButton + Checked="Order_Checked" + Content="{locale:Locale OrderAscending}" + GroupName="Order" + IsChecked="{Binding IsAscending, Mode=OneTime}" + Tag="Ascending" /> + <RadioButton + Checked="Order_Checked" + Content="{locale:Locale OrderDescending}" + GroupName="Order" + IsChecked="{Binding !IsAscending, Mode=OneTime}" + Tag="Descending" /> </StackPanel> </Flyout> </ui:DropDownButton.Flyout> </ui:DropDownButton> - <TextBlock DockPanel.Dock="Right" HorizontalAlignment="Right" - Text="{locale:Locale CommonSort}" VerticalAlignment="Center" Margin="10,0" /> + <TextBlock + Margin="10,0" + HorizontalAlignment="Right" + VerticalAlignment="Center" + DockPanel.Dock="Right" + Text="{locale:Locale CommonSort}" /> </DockPanel> <controls:GameListView x:Name="GameList" Grid.Row="1" - HorizontalContentAlignment="Stretch" HorizontalAlignment="Stretch" - VerticalContentAlignment="Stretch" VerticalAlignment="Stretch" + HorizontalContentAlignment="Stretch" + VerticalContentAlignment="Stretch" IsVisible="{Binding IsList}" /> <controls:GameGridView x:Name="GameGrid" Grid.Row="1" - HorizontalContentAlignment="Stretch" HorizontalAlignment="Stretch" - VerticalContentAlignment="Stretch" VerticalAlignment="Stretch" + HorizontalContentAlignment="Stretch" + VerticalContentAlignment="Stretch" IsVisible="{Binding IsGrid}" /> </Grid> </ContentControl> - <Grid Grid.Row="1" - VerticalAlignment="Stretch" - Background="{DynamicResource ThemeContentBackgroundColor}" - IsVisible="{Binding ShowLoadProgress}" - ZIndex="1000" - HorizontalAlignment="Stretch"> + <Grid + Grid.Row="1" + HorizontalAlignment="Stretch" + VerticalAlignment="Stretch" + Background="{DynamicResource ThemeContentBackgroundColor}" + IsVisible="{Binding ShowLoadProgress}" + ZIndex="1000"> <Grid - HorizontalAlignment="Center" - IsVisible="{Binding ShowLoadProgress}" Margin="40" - VerticalAlignment="Center"> + HorizontalAlignment="Center" + VerticalAlignment="Center" + IsVisible="{Binding ShowLoadProgress}"> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="*" /> </Grid.ColumnDefinitions> <Border - Grid.Column="0" Grid.RowSpan="2" - IsVisible="{Binding ShowLoadProgress}" + Grid.Column="0" Width="256" Height="256" Margin="10" @@ -383,62 +472,64 @@ BorderBrush="Black" BorderThickness="2" BoxShadow="4 4 32 8 #40000000" - CornerRadius="3"> + CornerRadius="3" + IsVisible="{Binding ShowLoadProgress}"> <Image - IsVisible="{Binding ShowLoadProgress}" Width="256" Height="256" + IsVisible="{Binding ShowLoadProgress}" Source="{Binding SelectedIcon, Converter={StaticResource ByteImage}}" /> </Border> - <Grid Grid.Column="1" - IsVisible="{Binding ShowLoadProgress}" - HorizontalAlignment="Stretch" - VerticalAlignment="Center"> + <Grid + Grid.Column="1" + HorizontalAlignment="Stretch" + VerticalAlignment="Center" + IsVisible="{Binding ShowLoadProgress}"> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> </Grid.RowDefinitions> <TextBlock - IsVisible="{Binding ShowLoadProgress}" Grid.Row="0" Margin="10" FontSize="30" FontWeight="Bold" - TextWrapping="Wrap" + IsVisible="{Binding ShowLoadProgress}" Text="{Binding LoadHeading}" - TextAlignment="Left" /> + TextAlignment="Left" + TextWrapping="Wrap" /> <Border - IsVisible="{Binding ShowLoadProgress}" Grid.Row="1" - CornerRadius="5" - ClipToBounds="True" - BorderBrush="{Binding ProgressBarBackgroundColor}" + Margin="10" Padding="0" HorizontalAlignment="Stretch" - Margin="10" - BorderThickness="1"> + BorderBrush="{Binding ProgressBarBackgroundColor}" + BorderThickness="1" + ClipToBounds="True" + CornerRadius="5" + IsVisible="{Binding ShowLoadProgress}"> <ProgressBar - IsVisible="{Binding ShowLoadProgress}" Height="10" + MinWidth="500" Margin="0" Padding="0" - CornerRadius="5" - ClipToBounds="True" - MinWidth="500" HorizontalAlignment="Stretch" Background="{Binding ProgressBarBackgroundColor}" + ClipToBounds="True" + CornerRadius="5" Foreground="{Binding ProgressBarForegroundColor}" + IsIndeterminate="{Binding IsLoadingIndeterminate}" + IsVisible="{Binding ShowLoadProgress}" Maximum="{Binding ProgressMaximum}" Minimum="0" - IsIndeterminate="{Binding IsLoadingIndeterminate}" Value="{Binding ProgressValue}" /> </Border> <TextBlock - IsVisible="{Binding ShowLoadProgress}" Grid.Row="2" Margin="10" FontSize="18" + IsVisible="{Binding ShowLoadProgress}" Text="{Binding CacheLoadStatus}" TextAlignment="Left" /> </Grid> @@ -450,8 +541,8 @@ Height="30" Margin="0,0" HorizontalAlignment="Stretch" - Background="{DynamicResource ThemeContentBackgroundColor}" VerticalAlignment="Bottom" + Background="{DynamicResource ThemeContentBackgroundColor}" DockPanel.Dock="Bottom" IsVisible="{Binding ShowMenuAndStatusBar}"> <Grid.ColumnDefinitions> @@ -460,8 +551,11 @@ <ColumnDefinition Width="*" /> <ColumnDefinition Width="Auto" /> </Grid.ColumnDefinitions> - <StackPanel Grid.Column="0" IsVisible="{Binding EnableNonGameRunningControls}" - VerticalAlignment="Center" Margin="10,0"> + <StackPanel + Grid.Column="0" + Margin="10,0" + VerticalAlignment="Center" + IsVisible="{Binding EnableNonGameRunningControls}"> <Grid Margin="0"> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" /> @@ -476,7 +570,10 @@ VerticalAlignment="Center" Background="Transparent" Command="{ReflectionBinding LoadApplications}"> - <ui:SymbolIcon Symbol="Refresh" Height="100" Width="50" /> + <ui:SymbolIcon + Width="50" + Height="100" + Symbol="Refresh" /> </Button> <TextBlock Name="LoadStatus" @@ -489,11 +586,11 @@ Name="LoadProgressBar" Grid.Column="2" Height="6" - Maximum="{Binding StatusBarProgressMaximum}" - Value="{Binding StatusBarProgressValue}" VerticalAlignment="Center" Foreground="{DynamicResource HighlightColor}" - IsVisible="{Binding EnableNonGameRunningControls}" /> + IsVisible="{Binding EnableNonGameRunningControls}" + Maximum="{Binding StatusBarProgressMaximum}" + Value="{Binding StatusBarProgressValue}" /> </Grid> </StackPanel> <StackPanel @@ -505,132 +602,137 @@ Orientation="Horizontal"> <TextBlock Name="VsyncStatus" + Margin="0,0,5,0" HorizontalAlignment="Left" VerticalAlignment="Center" Foreground="{Binding VsyncColor}" - PointerReleased="VsyncStatus_PointerReleased" IsVisible="{Binding !ShowLoadProgress}" - Margin="0,0,5,0" + PointerReleased="VsyncStatus_PointerReleased" Text="VSync" TextAlignment="Left" /> <Border Width="2" + Height="12" Margin="2,0" - IsVisible="{Binding !ShowLoadProgress}" + BorderBrush="Gray" BorderThickness="1" - Height="12" - BorderBrush="Gray" /> + IsVisible="{Binding !ShowLoadProgress}" /> <TextBlock - Margin="5,0,5,0" Name="DockedStatus" - IsVisible="{Binding !ShowLoadProgress}" + Margin="5,0,5,0" HorizontalAlignment="Left" VerticalAlignment="Center" + IsVisible="{Binding !ShowLoadProgress}" PointerReleased="DockedStatus_PointerReleased" Text="{Binding DockedStatusText}" TextAlignment="Left" /> <Border Width="2" + Height="12" Margin="2,0" - IsVisible="{Binding !ShowLoadProgress}" + BorderBrush="Gray" BorderThickness="1" - Height="12" - BorderBrush="Gray" /> + IsVisible="{Binding !ShowLoadProgress}" /> <TextBlock - Margin="5,0,5,0" Name="AspectRatioStatus" - IsVisible="{Binding !ShowLoadProgress}" + Margin="5,0,5,0" HorizontalAlignment="Left" VerticalAlignment="Center" + IsVisible="{Binding !ShowLoadProgress}" PointerReleased="AspectRatioStatus_PointerReleased" Text="{Binding AspectRatioStatusText}" TextAlignment="Left" /> <Border Width="2" + Height="12" Margin="2,0" - IsVisible="{Binding !ShowLoadProgress}" + BorderBrush="Gray" BorderThickness="1" - Height="12" - BorderBrush="Gray" /> + IsVisible="{Binding !ShowLoadProgress}" /> <ui:ToggleSplitButton + Name="VolumeStatus" Margin="-2,0,-3,0" Padding="5,0,0,5" - Name="VolumeStatus" HorizontalAlignment="Left" VerticalAlignment="Center" - IsVisible="{Binding !ShowLoadProgress}" - BorderBrush="{DynamicResource ThemeContentBackgroundColor}" Background="{DynamicResource ThemeContentBackgroundColor}" + BorderBrush="{DynamicResource ThemeContentBackgroundColor}" + Content="{Binding VolumeStatusText}" IsChecked="{Binding VolumeMuted}" - Content="{Binding VolumeStatusText}"> + IsVisible="{Binding !ShowLoadProgress}"> <ui:ToggleSplitButton.Flyout> <Flyout Placement="Bottom" ShowMode="TransientWithDismissOnPointerMoveAway"> <Grid Margin="0"> - <Slider Value="{Binding Volume}" - ToolTip.Tip="{locale:Locale AudioVolumeTooltip}" - Minimum="0" - Maximum="1" - TickFrequency="0.05" - IsSnapToTickEnabled="True" - Padding="0" - Margin="0" - SmallChange="0.01" - LargeChange="0.05" - Width="150" /> + <Slider + Width="150" + Margin="0" + Padding="0" + IsSnapToTickEnabled="True" + LargeChange="0.05" + Maximum="1" + Minimum="0" + SmallChange="0.01" + TickFrequency="0.05" + ToolTip.Tip="{locale:Locale AudioVolumeTooltip}" + Value="{Binding Volume}" /> </Grid> </Flyout> </ui:ToggleSplitButton.Flyout> </ui:ToggleSplitButton> <Border Width="2" + Height="12" Margin="2,0" - IsVisible="{Binding !ShowLoadProgress}" + BorderBrush="Gray" BorderThickness="1" - Height="12" - BorderBrush="Gray" /> + IsVisible="{Binding !ShowLoadProgress}" /> <TextBlock Margin="5,0,5,0" - IsVisible="{Binding !ShowLoadProgress}" HorizontalAlignment="Left" VerticalAlignment="Center" + IsVisible="{Binding !ShowLoadProgress}" Text="{Binding GameStatusText}" TextAlignment="Left" /> <Border Width="2" - IsVisible="{Binding !ShowLoadProgress}" + Height="12" Margin="2,0" + BorderBrush="Gray" BorderThickness="1" - Height="12" - BorderBrush="Gray" /> + IsVisible="{Binding !ShowLoadProgress}" /> <TextBlock Margin="5,0,5,0" - IsVisible="{Binding !ShowLoadProgress}" HorizontalAlignment="Left" VerticalAlignment="Center" + IsVisible="{Binding !ShowLoadProgress}" Text="{Binding FifoStatusText}" TextAlignment="Left" /> <Border Width="2" + Height="12" Margin="2,0" - IsVisible="{Binding !ShowLoadProgress}" + BorderBrush="Gray" BorderThickness="1" - Height="12" - BorderBrush="Gray" /> + IsVisible="{Binding !ShowLoadProgress}" /> <TextBlock Margin="5,0,5,0" - IsVisible="{Binding !ShowLoadProgress}" HorizontalAlignment="Left" VerticalAlignment="Center" + IsVisible="{Binding !ShowLoadProgress}" Text="{Binding GpuStatusText}" TextAlignment="Left" /> </StackPanel> - <StackPanel VerticalAlignment="Center" IsVisible="{Binding ShowFirmwareStatus}" Grid.Column="3" - Orientation="Horizontal" Margin="10, 0"> + <StackPanel + Grid.Column="3" + Margin="10,0" + VerticalAlignment="Center" + IsVisible="{Binding ShowFirmwareStatus}" + Orientation="Horizontal"> <TextBlock Name="FirmwareStatus" + Margin="0" HorizontalAlignment="Right" VerticalAlignment="Center" - Margin="0" Text="{locale:Locale StatusBarSystemVersion}" /> </StackPanel> </Grid> |
