forked from Mirror/Ryujinx
6e02cac952
* remove content dialog placeholder from all windows * remove redundant window argument * redesign user profile window * wip * use avalonia auto name generator * add edit and new user options * move profile image selection to content dialog * remove usings * fix updater * address review * adjust avatar dialog size * add validation for user editor * fix typo * Shorten some labels
733 lines
39 KiB
XML
733 lines
39 KiB
XML
<window:StyleableWindow
|
|
x:Class="Ryujinx.Ava.Ui.Windows.MainWindow"
|
|
xmlns="https://github.com/avaloniaui"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:controls="clr-namespace:Ryujinx.Ava.Ui.Controls"
|
|
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"
|
|
Width="1280"
|
|
Height="785"
|
|
MinWidth="1024"
|
|
MinHeight="680"
|
|
d:DesignHeight="720"
|
|
d:DesignWidth="1280"
|
|
x:CompileBindings="True"
|
|
x:DataType="viewModels:MainWindowViewModel"
|
|
WindowStartupLocation="CenterScreen"
|
|
mc:Ignorable="d">
|
|
<Window.Styles>
|
|
<Style Selector="TitleBar:fullscreen">
|
|
<Setter Property="Background" Value="#000000" />
|
|
</Style>
|
|
</Window.Styles>
|
|
<Design.DataContext>
|
|
<viewModels:MainWindowViewModel />
|
|
</Design.DataContext>
|
|
<Window.Resources>
|
|
<controls:BitmapArrayValueConverter x:Key="ByteImage" />
|
|
</Window.Resources>
|
|
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="*" />
|
|
</Grid.RowDefinitions>
|
|
<controls:OffscreenTextBox Name="HiddenTextBox" 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
|
|
Grid.Row="1"
|
|
HorizontalAlignment="Stretch"
|
|
VerticalAlignment="Stretch">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="*" />
|
|
</Grid.ColumnDefinitions>
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="*" />
|
|
<RowDefinition Height="Auto" />
|
|
</Grid.RowDefinitions>
|
|
<StackPanel
|
|
Grid.Row="0"
|
|
Margin="0"
|
|
HorizontalAlignment="Stretch"
|
|
VerticalAlignment="Stretch"
|
|
IsVisible="{Binding ShowMenuAndStatusBar}"
|
|
Orientation="Vertical">
|
|
<DockPanel HorizontalAlignment="Stretch">
|
|
<Menu
|
|
Name="Menu"
|
|
Height="35"
|
|
Margin="0"
|
|
HorizontalAlignment="Left">
|
|
<Menu.ItemsPanel>
|
|
<ItemsPanelTemplate>
|
|
<DockPanel Margin="0" HorizontalAlignment="Stretch" />
|
|
</ItemsPanelTemplate>
|
|
</Menu.ItemsPanel>
|
|
<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}" />
|
|
<Separator />
|
|
<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 Header="{locale:Locale MenuBarOptionsStartGamesInFullscreen}">
|
|
<MenuItem.Icon>
|
|
<CheckBox IsChecked="{Binding StartGamesInFullscreen, Mode=TwoWay}" />
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
<MenuItem Header="{locale:Locale MenuBarOptionsShowConsole}" IsVisible="{Binding ShowConsoleVisible}">
|
|
<MenuItem.Icon>
|
|
<CheckBox IsChecked="{Binding ShowConsole, Mode=TwoWay}" />
|
|
</MenuItem.Icon>
|
|
</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="zh_CN"
|
|
Header="Simplified Chinese" />
|
|
</MenuItem>
|
|
<Separator />
|
|
<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}"
|
|
IsEnabled="{Binding IsGameRunning}">
|
|
<MenuItem
|
|
Click="PauseEmulation_Click"
|
|
Header="{locale:Locale MenuBarOptionsPauseEmulation}"
|
|
InputGesture="{Binding PauseKey}"
|
|
IsEnabled="{Binding !IsPaused}"
|
|
IsVisible="{Binding !IsPaused}" />
|
|
<MenuItem
|
|
Click="ResumeEmulation_Click"
|
|
Header="{locale:Locale MenuBarOptionsResumeEmulation}"
|
|
InputGesture="{Binding PauseKey}"
|
|
IsEnabled="{Binding IsPaused}"
|
|
IsVisible="{Binding IsPaused}" />
|
|
<MenuItem
|
|
Click="StopEmulation_Click"
|
|
Header="{locale:Locale MenuBarOptionsStopEmulation}"
|
|
InputGesture="Escape"
|
|
IsEnabled="{Binding IsGameRunning}"
|
|
ToolTip.Tip="{locale:Locale StopEmulationTooltip}" />
|
|
<MenuItem Command="{ReflectionBinding SimulateWakeUpMessage}" Header="{locale:Locale MenuBarOptionsSimulateWakeUpMessage}" />
|
|
<Separator />
|
|
<MenuItem
|
|
Name="ScanAmiiboMenuItem"
|
|
AttachedToVisualTree="ScanAmiiboMenuItem_AttachedToVisualTree"
|
|
Command="{ReflectionBinding OpenAmiiboWindow}"
|
|
Header="{locale:Locale MenuBarActionsScanAmiibo}"
|
|
IsEnabled="{Binding IsAmiiboRequested}" />
|
|
<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>
|
|
</MenuItem>
|
|
<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>
|
|
</Menu>
|
|
</DockPanel>
|
|
</StackPanel>
|
|
<ContentControl
|
|
Name="Content"
|
|
Grid.Row="1"
|
|
Padding="0"
|
|
HorizontalAlignment="Stretch"
|
|
VerticalAlignment="Stretch"
|
|
BorderBrush="{DynamicResource ThemeControlBorderColor}"
|
|
BorderThickness="0,0,0,0"
|
|
DockPanel.Dock="Top"
|
|
IsVisible="{Binding ShowContent}">
|
|
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="*" />
|
|
</Grid.RowDefinitions>
|
|
<DockPanel
|
|
Grid.Row="0"
|
|
Margin="0,0,0,5"
|
|
HorizontalAlignment="Stretch">
|
|
<Button
|
|
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
|
|
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
|
|
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"
|
|
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
|
|
Width="150"
|
|
HorizontalAlignment="Right"
|
|
VerticalAlignment="Center"
|
|
Content="{Binding SortName}"
|
|
DockPanel.Dock="Right">
|
|
<ui:DropDownButton.Flyout>
|
|
<Flyout Placement="Bottom">
|
|
<StackPanel
|
|
Margin="0"
|
|
HorizontalAlignment="Stretch"
|
|
Orientation="Vertical">
|
|
<StackPanel>
|
|
<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
|
|
Width="60"
|
|
Height="2"
|
|
Margin="5"
|
|
HorizontalAlignment="Stretch"
|
|
BorderBrush="White"
|
|
BorderThickness="0,1,0,0">
|
|
<Separator Height="0" HorizontalAlignment="Stretch" />
|
|
</Border>
|
|
<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
|
|
Margin="10,0"
|
|
HorizontalAlignment="Right"
|
|
VerticalAlignment="Center"
|
|
DockPanel.Dock="Right"
|
|
Text="{locale:Locale CommonSort}" />
|
|
</DockPanel>
|
|
<controls:GameListView
|
|
x:Name="GameList"
|
|
Grid.Row="1"
|
|
HorizontalAlignment="Stretch"
|
|
VerticalAlignment="Stretch"
|
|
HorizontalContentAlignment="Stretch"
|
|
VerticalContentAlignment="Stretch"
|
|
IsVisible="{Binding IsList}" />
|
|
<controls:GameGridView
|
|
x:Name="GameGrid"
|
|
Grid.Row="1"
|
|
HorizontalAlignment="Stretch"
|
|
VerticalAlignment="Stretch"
|
|
HorizontalContentAlignment="Stretch"
|
|
VerticalContentAlignment="Stretch"
|
|
IsVisible="{Binding IsGrid}" />
|
|
</Grid>
|
|
</ContentControl>
|
|
<Grid
|
|
Grid.Row="1"
|
|
HorizontalAlignment="Stretch"
|
|
VerticalAlignment="Stretch"
|
|
Background="{DynamicResource ThemeContentBackgroundColor}"
|
|
IsVisible="{Binding ShowLoadProgress}"
|
|
ZIndex="1000">
|
|
<Grid
|
|
Margin="40"
|
|
HorizontalAlignment="Center"
|
|
VerticalAlignment="Center"
|
|
IsVisible="{Binding ShowLoadProgress}">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition Width="*" />
|
|
</Grid.ColumnDefinitions>
|
|
<Border
|
|
Grid.RowSpan="2"
|
|
Grid.Column="0"
|
|
Width="256"
|
|
Height="256"
|
|
Margin="10"
|
|
Padding="4"
|
|
BorderBrush="Black"
|
|
BorderThickness="2"
|
|
BoxShadow="4 4 32 8 #40000000"
|
|
CornerRadius="3"
|
|
IsVisible="{Binding ShowLoadProgress}">
|
|
<Image
|
|
Width="256"
|
|
Height="256"
|
|
IsVisible="{Binding ShowLoadProgress}"
|
|
Source="{Binding SelectedIcon, Converter={StaticResource ByteImage}}" />
|
|
</Border>
|
|
<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
|
|
Grid.Row="0"
|
|
Margin="10"
|
|
FontSize="30"
|
|
FontWeight="Bold"
|
|
IsVisible="{Binding ShowLoadProgress}"
|
|
Text="{Binding LoadHeading}"
|
|
TextAlignment="Left"
|
|
TextWrapping="Wrap" />
|
|
<Border
|
|
Grid.Row="1"
|
|
Margin="10"
|
|
Padding="0"
|
|
HorizontalAlignment="Stretch"
|
|
BorderBrush="{Binding ProgressBarBackgroundColor}"
|
|
BorderThickness="1"
|
|
ClipToBounds="True"
|
|
CornerRadius="5"
|
|
IsVisible="{Binding ShowLoadProgress}">
|
|
<ProgressBar
|
|
Height="10"
|
|
MinWidth="500"
|
|
Margin="0"
|
|
Padding="0"
|
|
HorizontalAlignment="Stretch"
|
|
Background="{Binding ProgressBarBackgroundColor}"
|
|
ClipToBounds="True"
|
|
CornerRadius="5"
|
|
Foreground="{Binding ProgressBarForegroundColor}"
|
|
IsIndeterminate="{Binding IsLoadingIndeterminate}"
|
|
IsVisible="{Binding ShowLoadProgress}"
|
|
Maximum="{Binding ProgressMaximum}"
|
|
Minimum="0"
|
|
Value="{Binding ProgressValue}" />
|
|
</Border>
|
|
<TextBlock
|
|
Grid.Row="2"
|
|
Margin="10"
|
|
FontSize="18"
|
|
IsVisible="{Binding ShowLoadProgress}"
|
|
Text="{Binding CacheLoadStatus}"
|
|
TextAlignment="Left" />
|
|
</Grid>
|
|
</Grid>
|
|
</Grid>
|
|
<Grid
|
|
Name="StatusBar"
|
|
Grid.Row="2"
|
|
Height="30"
|
|
Margin="0,0"
|
|
HorizontalAlignment="Stretch"
|
|
VerticalAlignment="Bottom"
|
|
Background="{DynamicResource ThemeContentBackgroundColor}"
|
|
DockPanel.Dock="Bottom"
|
|
IsVisible="{Binding ShowMenuAndStatusBar}">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition Width="*" />
|
|
<ColumnDefinition Width="Auto" />
|
|
</Grid.ColumnDefinitions>
|
|
<StackPanel
|
|
Grid.Column="0"
|
|
Margin="10,0"
|
|
VerticalAlignment="Center"
|
|
IsVisible="{Binding EnableNonGameRunningControls}">
|
|
<Grid Margin="0">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition />
|
|
</Grid.ColumnDefinitions>
|
|
<Button
|
|
Width="25"
|
|
Height="25"
|
|
MinWidth="0"
|
|
Margin="0,0,5,0"
|
|
VerticalAlignment="Center"
|
|
Background="Transparent"
|
|
Command="{ReflectionBinding LoadApplications}">
|
|
<ui:SymbolIcon
|
|
Width="50"
|
|
Height="100"
|
|
Symbol="Refresh" />
|
|
</Button>
|
|
<TextBlock
|
|
Name="LoadStatus"
|
|
Grid.Column="1"
|
|
Margin="0,0,5,0"
|
|
VerticalAlignment="Center"
|
|
IsVisible="{Binding EnableNonGameRunningControls}"
|
|
Text="{locale:Locale StatusBarGamesLoaded}" />
|
|
<ProgressBar
|
|
Name="LoadProgressBar"
|
|
Grid.Column="2"
|
|
Height="6"
|
|
VerticalAlignment="Center"
|
|
Foreground="{DynamicResource HighlightColor}"
|
|
IsVisible="{Binding EnableNonGameRunningControls}"
|
|
Maximum="{Binding StatusBarProgressMaximum}"
|
|
Value="{Binding StatusBarProgressValue}" />
|
|
</Grid>
|
|
</StackPanel>
|
|
<StackPanel
|
|
Grid.Column="1"
|
|
Margin="10,0"
|
|
HorizontalAlignment="Left"
|
|
VerticalAlignment="Center"
|
|
IsVisible="{Binding IsGameRunning}"
|
|
Orientation="Horizontal">
|
|
<TextBlock
|
|
Name="VsyncStatus"
|
|
Margin="0,0,5,0"
|
|
HorizontalAlignment="Left"
|
|
VerticalAlignment="Center"
|
|
Foreground="{Binding VsyncColor}"
|
|
IsVisible="{Binding !ShowLoadProgress}"
|
|
PointerReleased="VsyncStatus_PointerReleased"
|
|
Text="VSync"
|
|
TextAlignment="Left" />
|
|
<Border
|
|
Width="2"
|
|
Height="12"
|
|
Margin="2,0"
|
|
BorderBrush="Gray"
|
|
BorderThickness="1"
|
|
IsVisible="{Binding !ShowLoadProgress}" />
|
|
<TextBlock
|
|
Name="DockedStatus"
|
|
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"
|
|
BorderBrush="Gray"
|
|
BorderThickness="1"
|
|
IsVisible="{Binding !ShowLoadProgress}" />
|
|
<TextBlock
|
|
Name="AspectRatioStatus"
|
|
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"
|
|
BorderBrush="Gray"
|
|
BorderThickness="1"
|
|
IsVisible="{Binding !ShowLoadProgress}" />
|
|
<ui:ToggleSplitButton
|
|
Name="VolumeStatus"
|
|
Margin="-2,0,-3,0"
|
|
Padding="5,0,0,5"
|
|
HorizontalAlignment="Left"
|
|
VerticalAlignment="Center"
|
|
Background="{DynamicResource ThemeContentBackgroundColor}"
|
|
BorderBrush="{DynamicResource ThemeContentBackgroundColor}"
|
|
Content="{Binding VolumeStatusText}"
|
|
IsChecked="{Binding VolumeMuted}"
|
|
IsVisible="{Binding !ShowLoadProgress}">
|
|
<ui:ToggleSplitButton.Flyout>
|
|
<Flyout Placement="Bottom" ShowMode="TransientWithDismissOnPointerMoveAway">
|
|
<Grid Margin="0">
|
|
<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"
|
|
BorderBrush="Gray"
|
|
BorderThickness="1"
|
|
IsVisible="{Binding !ShowLoadProgress}" />
|
|
<TextBlock
|
|
Margin="5,0,5,0"
|
|
HorizontalAlignment="Left"
|
|
VerticalAlignment="Center"
|
|
IsVisible="{Binding !ShowLoadProgress}"
|
|
Text="{Binding GameStatusText}"
|
|
TextAlignment="Left" />
|
|
<Border
|
|
Width="2"
|
|
Height="12"
|
|
Margin="2,0"
|
|
BorderBrush="Gray"
|
|
BorderThickness="1"
|
|
IsVisible="{Binding !ShowLoadProgress}" />
|
|
<TextBlock
|
|
Margin="5,0,5,0"
|
|
HorizontalAlignment="Left"
|
|
VerticalAlignment="Center"
|
|
IsVisible="{Binding !ShowLoadProgress}"
|
|
Text="{Binding FifoStatusText}"
|
|
TextAlignment="Left" />
|
|
<Border
|
|
Width="2"
|
|
Height="12"
|
|
Margin="2,0"
|
|
BorderBrush="Gray"
|
|
BorderThickness="1"
|
|
IsVisible="{Binding !ShowLoadProgress}" />
|
|
<TextBlock
|
|
Margin="5,0,5,0"
|
|
HorizontalAlignment="Left"
|
|
VerticalAlignment="Center"
|
|
IsVisible="{Binding !ShowLoadProgress}"
|
|
Text="{Binding GpuStatusText}"
|
|
TextAlignment="Left" />
|
|
</StackPanel>
|
|
<StackPanel
|
|
Grid.Column="3"
|
|
Margin="10,0"
|
|
VerticalAlignment="Center"
|
|
IsVisible="{Binding ShowFirmwareStatus}"
|
|
Orientation="Horizontal">
|
|
<TextBlock
|
|
Name="FirmwareStatus"
|
|
Margin="0"
|
|
HorizontalAlignment="Right"
|
|
VerticalAlignment="Center"
|
|
Text="{locale:Locale StatusBarSystemVersion}" />
|
|
</StackPanel>
|
|
</Grid>
|
|
</Grid>
|
|
</Grid>
|
|
</window:StyleableWindow>
|