deb99d2cae
* avalonia part 1 * remove vulkan ui backend * move ui common files to ui common project * get name for oading screen from device * rebase. * review 1 * review 1.1 * review * cleanup * addressed review * use cancellation token * review * review * rebased * cancel library loading when closing window * remove star image, use fonticon instead * delete render control frame buffer when game ends. change position of fav star * addressed @Thog review * ensure the right ui is downloaded in updates * fix crash when showing not supported dialog during controller request * add prefix to artifact names * Auto-format Avalonia project * Fix input * Fix build, simplify app disposal * remove nv stutter thread * addressed review * add missing change * maintain window size if new size is zero length * add game, handheld, docked to local * reverse scale main window * Update de_DE.json * Update de_DE.json * Update de_DE.json * Update italian json * Update it_IT.json * let render timer poll with no wait * remove unused code * more unused code * enabled tiered compilation and trimming * check if window event is not closed before signaling * fix atmospher case * locale fix * locale fix * remove explicit tiered compilation declarations * Remove ) it_IT.json * Remove ) de_DE.json * Update it_IT.json * Update pt_BR locale with latest strings * Remove ')' * add more strings to locale * update locale * remove extra slash * remove extra slash * set firmware version to 0 if key's not found * fix * revert timer changes * lock on object instead * Update it_IT.json * remove unused method * add load screen text to locale * drop swap event * Update de_DE.json * Update de_DE.json * do null check when stopping emulator * Update de_DE.json * Create tr_TR.json * Add tr_TR * Add tr_TR + Turkish * Update it_IT.json * Update Ryujinx.Ava/Input/AvaloniaMappingHelper.cs Co-authored-by: Ac_K <Acoustik666@gmail.com> * Apply suggestions from code review Co-authored-by: Ac_K <Acoustik666@gmail.com> * Apply suggestions from code review Co-authored-by: Ac_K <Acoustik666@gmail.com> * addressed review * Update Ryujinx.Ava/Ui/Backend/OpenGl/OpenGlRenderTarget.cs Co-authored-by: gdkchan <gab.dark.100@gmail.com> * use avalonia's inbuilt renderer on linux * removed whitespace * workaround for queue render crash with vsync off * drop custom backend * format files * fix not closing issue * remove warnings * rebase * update avalonia library * Reposition the Text and Button on About Page * Assign build version * Remove appveyor text Co-authored-by: gdk <gab.dark.100@gmail.com> Co-authored-by: Niwu34 <67392333+Niwu34@users.noreply.github.com> Co-authored-by: Antonio Brugnolo <36473846+AntoSkate@users.noreply.github.com> Co-authored-by: aegiff <99728970+aegiff@users.noreply.github.com> Co-authored-by: Ac_K <Acoustik666@gmail.com> Co-authored-by: MostlyWhat <78652091+MostlyWhat@users.noreply.github.com>
639 lines
37 KiB
XML
639 lines
37 KiB
XML
<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:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
|
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"
|
|
MinWidth="1024"
|
|
MinHeight="680"
|
|
WindowStartupLocation="CenterScreen"
|
|
x:CompileBindings="True"
|
|
x:DataType="viewModels:MainWindowViewModel"
|
|
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" />
|
|
<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>
|
|
<StackPanel IsVisible="False" Grid.Row="0">
|
|
<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.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"
|
|
Margin="0"
|
|
Height="35"
|
|
HorizontalAlignment="Left">
|
|
<Menu.ItemsPanel>
|
|
<ItemsPanelTemplate>
|
|
<DockPanel HorizontalAlignment="Stretch" Margin="0" />
|
|
</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>
|
|
<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}">
|
|
<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>
|
|
<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>
|
|
<MenuItem
|
|
VerticalAlignment="Center"
|
|
Header="{locale:Locale MenuBarActions}"
|
|
Name="ActionsMenuItem"
|
|
IsEnabled="{Binding IsGameRunning}">
|
|
<MenuItem
|
|
Click="PauseEmulation_Click"
|
|
Header="{locale:Locale MenuBarOptionsPauseEmulation}"
|
|
IsEnabled="{Binding !IsPaused}"
|
|
IsVisible="{Binding !IsPaused}"
|
|
InputGesture="{Binding PauseKey}" />
|
|
<MenuItem
|
|
Click="ResumeEmulation_Click"
|
|
Header="{locale:Locale MenuBarOptionsResumeEmulation}"
|
|
IsEnabled="{Binding IsPaused}"
|
|
IsVisible="{Binding IsPaused}"
|
|
InputGesture="{Binding PauseKey}" />
|
|
<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}" />
|
|
<Separator />
|
|
<MenuItem
|
|
Name="ScanAmiiboMenuItem"
|
|
AttachedToVisualTree="ScanAmiiboMenuItem_AttachedToVisualTree"
|
|
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>
|
|
<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"
|
|
IsVisible="{Binding ShowContent}"
|
|
HorizontalAlignment="Stretch"
|
|
VerticalAlignment="Stretch"
|
|
BorderBrush="{DynamicResource ThemeControlBorderColor}"
|
|
BorderThickness="0,0,0,0"
|
|
DockPanel.Dock="Top">
|
|
<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">
|
|
<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" />
|
|
</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" />
|
|
</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" />
|
|
</CheckBox>
|
|
<TextBox
|
|
Name="SearchBox"
|
|
DockPanel.Dock="Right"
|
|
VerticalAlignment="Center"
|
|
MinWidth="200"
|
|
Margin="5,0,5,0"
|
|
HorizontalAlignment="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.Flyout>
|
|
<Flyout Placement="Bottom">
|
|
<StackPanel Orientation="Vertical" HorizontalAlignment="Stretch" Margin="0">
|
|
<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" />
|
|
</StackPanel>
|
|
<Border HorizontalAlignment="Stretch" Margin="5" Height="2" BorderBrush="White"
|
|
Width="60" BorderThickness="0,1,0,0">
|
|
<Separator HorizontalAlignment="Stretch" Height="0" />
|
|
</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" />
|
|
</StackPanel>
|
|
</Flyout>
|
|
</ui:DropDownButton.Flyout>
|
|
</ui:DropDownButton>
|
|
<TextBlock DockPanel.Dock="Right" HorizontalAlignment="Right"
|
|
Text="{locale:Locale CommonSort}" VerticalAlignment="Center" Margin="10,0" />
|
|
</DockPanel>
|
|
<controls:GameListView
|
|
x:Name="GameList"
|
|
Grid.Row="1"
|
|
HorizontalContentAlignment="Stretch"
|
|
HorizontalAlignment="Stretch"
|
|
VerticalContentAlignment="Stretch"
|
|
VerticalAlignment="Stretch"
|
|
IsVisible="{Binding IsList}" />
|
|
<controls:GameGridView
|
|
x:Name="GameGrid"
|
|
Grid.Row="1"
|
|
HorizontalContentAlignment="Stretch"
|
|
HorizontalAlignment="Stretch"
|
|
VerticalContentAlignment="Stretch"
|
|
VerticalAlignment="Stretch"
|
|
IsVisible="{Binding IsGrid}" />
|
|
</Grid>
|
|
</ContentControl>
|
|
<Grid Grid.Row="1"
|
|
VerticalAlignment="Stretch"
|
|
Background="{DynamicResource ThemeContentBackgroundColor}"
|
|
IsVisible="{Binding ShowLoadProgress}"
|
|
ZIndex="1000"
|
|
HorizontalAlignment="Stretch">
|
|
<Grid
|
|
HorizontalAlignment="Center"
|
|
IsVisible="{Binding ShowLoadProgress}"
|
|
Margin="40"
|
|
VerticalAlignment="Center">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition Width="*" />
|
|
</Grid.ColumnDefinitions>
|
|
<Border
|
|
Grid.Column="0"
|
|
Grid.RowSpan="2"
|
|
IsVisible="{Binding ShowLoadProgress}"
|
|
Width="256"
|
|
Height="256"
|
|
Margin="10"
|
|
Padding="4"
|
|
BorderBrush="Black"
|
|
BorderThickness="2"
|
|
BoxShadow="4 4 32 8 #40000000"
|
|
CornerRadius="3">
|
|
<Image
|
|
IsVisible="{Binding ShowLoadProgress}"
|
|
Width="256"
|
|
Height="256"
|
|
Source="{Binding SelectedIcon, Converter={StaticResource ByteImage}}" />
|
|
</Border>
|
|
<Grid Grid.Column="1"
|
|
IsVisible="{Binding ShowLoadProgress}"
|
|
HorizontalAlignment="Stretch"
|
|
VerticalAlignment="Center">
|
|
<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"
|
|
Text="{Binding LoadHeading}"
|
|
TextAlignment="Left" />
|
|
<Border
|
|
IsVisible="{Binding ShowLoadProgress}"
|
|
Grid.Row="1"
|
|
CornerRadius="5"
|
|
ClipToBounds="True"
|
|
BorderBrush="{Binding ProgressBarBackgroundColor}"
|
|
Padding="0"
|
|
HorizontalAlignment="Stretch"
|
|
Margin="10"
|
|
BorderThickness="1">
|
|
<ProgressBar
|
|
IsVisible="{Binding ShowLoadProgress}"
|
|
Height="10"
|
|
Margin="0"
|
|
Padding="0"
|
|
CornerRadius="5"
|
|
ClipToBounds="True"
|
|
MinWidth="500"
|
|
HorizontalAlignment="Stretch"
|
|
Background="{Binding ProgressBarBackgroundColor}"
|
|
Foreground="{Binding ProgressBarForegroundColor}"
|
|
Maximum="{Binding ProgressMaximum}"
|
|
Minimum="0"
|
|
IsIndeterminate="{Binding IsLoadingIndeterminate}"
|
|
Value="{Binding ProgressValue}" />
|
|
</Border>
|
|
<TextBlock
|
|
IsVisible="{Binding ShowLoadProgress}"
|
|
Grid.Row="2"
|
|
Margin="10"
|
|
FontSize="18"
|
|
Text="{Binding CacheLoadStatus}"
|
|
TextAlignment="Left" />
|
|
</Grid>
|
|
</Grid>
|
|
</Grid>
|
|
<Grid
|
|
Name="StatusBar"
|
|
Grid.Row="2"
|
|
Height="30"
|
|
Margin="0,0"
|
|
HorizontalAlignment="Stretch"
|
|
Background="{DynamicResource ThemeContentBackgroundColor}"
|
|
VerticalAlignment="Bottom"
|
|
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" IsVisible="{Binding EnableNonGameRunningControls}"
|
|
VerticalAlignment="Center" Margin="10,0">
|
|
<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 Symbol="Refresh" Height="100" Width="50" />
|
|
</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"
|
|
Maximum="{Binding StatusBarProgressMaximum}"
|
|
Value="{Binding StatusBarProgressValue}"
|
|
VerticalAlignment="Center"
|
|
Foreground="{DynamicResource HighlightColor}"
|
|
IsVisible="{Binding EnableNonGameRunningControls}" />
|
|
</Grid>
|
|
</StackPanel>
|
|
<StackPanel
|
|
Grid.Column="1"
|
|
Margin="10,0"
|
|
HorizontalAlignment="Left"
|
|
VerticalAlignment="Center"
|
|
IsVisible="{Binding IsGameRunning}"
|
|
Orientation="Horizontal">
|
|
<TextBlock
|
|
Name="VsyncStatus"
|
|
HorizontalAlignment="Left"
|
|
VerticalAlignment="Center"
|
|
Foreground="{Binding VsyncColor}"
|
|
PointerReleased="VsyncStatus_PointerReleased"
|
|
IsVisible="{Binding !ShowLoadProgress}"
|
|
Margin="0,0,5,0"
|
|
Text="VSync"
|
|
TextAlignment="Left" />
|
|
<Border
|
|
Width="2"
|
|
Margin="2,0"
|
|
IsVisible="{Binding !ShowLoadProgress}"
|
|
BorderThickness="1"
|
|
Height="12"
|
|
BorderBrush="Gray" />
|
|
<TextBlock
|
|
Margin="5,0,5,0"
|
|
Name="DockedStatus"
|
|
IsVisible="{Binding !ShowLoadProgress}"
|
|
HorizontalAlignment="Left"
|
|
VerticalAlignment="Center"
|
|
PointerReleased="DockedStatus_PointerReleased"
|
|
Text="{Binding DockedStatusText}"
|
|
TextAlignment="Left" />
|
|
<Border
|
|
Width="2"
|
|
Margin="2,0"
|
|
IsVisible="{Binding !ShowLoadProgress}"
|
|
BorderThickness="1"
|
|
Height="12"
|
|
BorderBrush="Gray" />
|
|
<TextBlock
|
|
Margin="5,0,5,0"
|
|
Name="AspectRatioStatus"
|
|
IsVisible="{Binding !ShowLoadProgress}"
|
|
HorizontalAlignment="Left"
|
|
VerticalAlignment="Center"
|
|
PointerReleased="AspectRatioStatus_PointerReleased"
|
|
Text="{Binding AspectRatioStatusText}"
|
|
TextAlignment="Left" />
|
|
<Border
|
|
Width="2"
|
|
Margin="2,0"
|
|
IsVisible="{Binding !ShowLoadProgress}"
|
|
BorderThickness="1"
|
|
Height="12"
|
|
BorderBrush="Gray" />
|
|
<ui:ToggleSplitButton
|
|
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}"
|
|
IsChecked="{Binding VolumeMuted}"
|
|
Content="{Binding VolumeStatusText}">
|
|
<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" />
|
|
</Grid>
|
|
</Flyout>
|
|
</ui:ToggleSplitButton.Flyout>
|
|
</ui:ToggleSplitButton>
|
|
<Border
|
|
Width="2"
|
|
Margin="2,0"
|
|
IsVisible="{Binding !ShowLoadProgress}"
|
|
BorderThickness="1"
|
|
Height="12"
|
|
BorderBrush="Gray" />
|
|
<TextBlock
|
|
Margin="5,0,5,0"
|
|
IsVisible="{Binding !ShowLoadProgress}"
|
|
HorizontalAlignment="Left"
|
|
VerticalAlignment="Center"
|
|
Text="{Binding GameStatusText}"
|
|
TextAlignment="Left" />
|
|
<Border
|
|
Width="2"
|
|
IsVisible="{Binding !ShowLoadProgress}"
|
|
Margin="2,0"
|
|
BorderThickness="1"
|
|
Height="12"
|
|
BorderBrush="Gray" />
|
|
<TextBlock
|
|
Margin="5,0,5,0"
|
|
IsVisible="{Binding !ShowLoadProgress}"
|
|
HorizontalAlignment="Left"
|
|
VerticalAlignment="Center"
|
|
Text="{Binding FifoStatusText}"
|
|
TextAlignment="Left" />
|
|
<Border
|
|
Width="2"
|
|
Margin="2,0"
|
|
IsVisible="{Binding !ShowLoadProgress}"
|
|
BorderThickness="1"
|
|
Height="12"
|
|
BorderBrush="Gray" />
|
|
<TextBlock
|
|
Margin="5,0,5,0"
|
|
IsVisible="{Binding !ShowLoadProgress}"
|
|
HorizontalAlignment="Left"
|
|
VerticalAlignment="Center"
|
|
Text="{Binding GpuStatusText}"
|
|
TextAlignment="Left" />
|
|
</StackPanel>
|
|
<StackPanel VerticalAlignment="Center" IsVisible="{Binding ShowFirmwareStatus}" Grid.Column="3"
|
|
Orientation="Horizontal" Margin="10, 0">
|
|
<TextBlock
|
|
Name="FirmwareStatus"
|
|
HorizontalAlignment="Right"
|
|
VerticalAlignment="Center"
|
|
Margin="0"
|
|
Text="{locale:Locale StatusBarSystemVersion}" />
|
|
</StackPanel>
|
|
</Grid>
|
|
</Grid>
|
|
</Grid>
|
|
</window:StyleableWindow> |