MainStatusBarView.axaml
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:controls="clr-namespace:Ryujinx.Ava.UI.Controls" 7 xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale" 8 xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia" 9 xmlns:viewModels="clr-namespace:Ryujinx.Ava.UI.ViewModels" 10 xmlns:config="clr-namespace:Ryujinx.Common.Configuration;assembly=Ryujinx.Common" 11 mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" 12 x:Class="Ryujinx.Ava.UI.Views.Main.MainStatusBarView" 13 x:DataType="viewModels:MainWindowViewModel"> 14 <Design.DataContext> 15 <viewModels:MainWindowViewModel /> 16 </Design.DataContext> 17 <Grid 18 Name="StatusBar" 19 Margin="0" 20 MinHeight="22" 21 HorizontalAlignment="Stretch" 22 VerticalAlignment="Bottom" 23 Background="{DynamicResource ThemeContentBackgroundColor}" 24 DockPanel.Dock="Bottom" 25 IsVisible="{Binding ShowMenuAndStatusBar}"> 26 <Grid.ColumnDefinitions> 27 <ColumnDefinition Width="Auto" /> 28 <ColumnDefinition Width="Auto" /> 29 <ColumnDefinition Width="*" /> 30 <ColumnDefinition Width="Auto" /> 31 </Grid.ColumnDefinitions> 32 <StackPanel 33 Grid.Column="0" 34 Margin="5" 35 VerticalAlignment="Center" 36 IsVisible="{Binding EnableNonGameRunningControls}"> 37 <Grid Margin="0"> 38 <Grid.ColumnDefinitions> 39 <ColumnDefinition Width="Auto" /> 40 <ColumnDefinition Width="Auto" /> 41 <ColumnDefinition /> 42 </Grid.ColumnDefinitions> 43 <Button 44 Width="25" 45 Height="25" 46 MinWidth="0" 47 Margin="0,0,5,0" 48 VerticalAlignment="Center" 49 Background="Transparent" 50 Click="Refresh_OnClick"> 51 <ui:SymbolIcon 52 Width="50" 53 Height="100" 54 Symbol="Refresh" /> 55 </Button> 56 <TextBlock 57 Name="LoadStatus" 58 Grid.Column="1" 59 Margin="0,0,5,0" 60 VerticalAlignment="Center" 61 IsVisible="{Binding EnableNonGameRunningControls}" 62 Text="{locale:Locale StatusBarGamesLoaded}" /> 63 <ProgressBar 64 Name="LoadProgressBar" 65 Grid.Column="2" 66 Height="6" 67 VerticalAlignment="Center" 68 Foreground="{DynamicResource SystemAccentColorLight2}" 69 IsVisible="{Binding StatusBarVisible}" 70 Maximum="{Binding StatusBarProgressMaximum}" 71 Value="{Binding StatusBarProgressValue}" /> 72 </Grid> 73 </StackPanel> 74 <StackPanel 75 Grid.Column="1" 76 Margin="0,2" 77 HorizontalAlignment="Left" 78 VerticalAlignment="Center" 79 IsVisible="{Binding IsGameRunning}" 80 MaxHeight="18" 81 Orientation="Horizontal"> 82 <TextBlock 83 Name="VsyncStatus" 84 Margin="5,0,5,0" 85 HorizontalAlignment="Left" 86 VerticalAlignment="Center" 87 Foreground="{Binding VsyncColor}" 88 IsVisible="{Binding !ShowLoadProgress}" 89 PointerReleased="VsyncStatus_PointerReleased" 90 Text="VSync" 91 TextAlignment="Start" /> 92 <Border 93 Width="2" 94 Height="12" 95 Margin="0" 96 BorderBrush="Gray" 97 Background="Gray" 98 BorderThickness="1" 99 IsVisible="{Binding !ShowLoadProgress}" /> 100 <TextBlock 101 Name="DockedStatus" 102 Margin="5,0,5,0" 103 HorizontalAlignment="Left" 104 VerticalAlignment="Center" 105 IsVisible="{Binding !ShowLoadProgress}" 106 PointerReleased="DockedStatus_PointerReleased" 107 Text="{Binding DockedStatusText}" 108 TextAlignment="Start" /> 109 <Border 110 Width="2" 111 Height="12" 112 Margin="0" 113 BorderBrush="Gray" 114 Background="Gray" 115 BorderThickness="1" 116 IsVisible="{Binding !ShowLoadProgress}" /> 117 <SplitButton 118 Name="AspectRatioStatus" 119 Padding="5,0,5,0" 120 HorizontalAlignment="Left" 121 VerticalAlignment="Center" 122 Background="Transparent" 123 BorderThickness="0" 124 CornerRadius="0" 125 IsVisible="{Binding !ShowLoadProgress}" 126 Content="{Binding AspectRatioStatusText}" 127 Click="AspectRatioStatus_OnClick" 128 ToolTip.Tip="{locale:Locale AspectRatioTooltip}"> 129 <SplitButton.Styles> 130 <Style Selector="Border#SeparatorBorder"> 131 <Setter Property="Opacity" Value="0" /> 132 </Style> 133 </SplitButton.Styles> 134 <SplitButton.Flyout> 135 <MenuFlyout Placement="Bottom" ShowMode="TransientWithDismissOnPointerMoveAway"> 136 <MenuItem 137 Header="{locale:Locale SettingsTabGraphicsAspectRatio4x3}" 138 Command="{Binding SetAspectRatio}" 139 CommandParameter="{x:Static config:AspectRatio.Fixed4x3}"/> 140 <MenuItem 141 Header="{locale:Locale SettingsTabGraphicsAspectRatio16x9}" 142 Command="{Binding SetAspectRatio}" 143 CommandParameter="{x:Static config:AspectRatio.Fixed16x9}"/> 144 <MenuItem 145 Header="{locale:Locale SettingsTabGraphicsAspectRatio16x10}" 146 Command="{Binding SetAspectRatio}" 147 CommandParameter="{x:Static config:AspectRatio.Fixed16x10}"/> 148 <MenuItem 149 Header="{locale:Locale SettingsTabGraphicsAspectRatio21x9}" 150 Command="{Binding SetAspectRatio}" 151 CommandParameter="{x:Static config:AspectRatio.Fixed21x9}"/> 152 <MenuItem 153 Header="{locale:Locale SettingsTabGraphicsAspectRatio32x9}" 154 Command="{Binding SetAspectRatio}" 155 CommandParameter="{x:Static config:AspectRatio.Fixed32x9}"/> 156 <MenuItem 157 Header="{locale:Locale SettingsTabGraphicsAspectRatioStretch}" 158 Command="{Binding SetAspectRatio}" 159 CommandParameter="{x:Static config:AspectRatio.Stretched}"/> 160 </MenuFlyout> 161 </SplitButton.Flyout> 162 </SplitButton> 163 <Border 164 Width="2" 165 Height="12" 166 Margin="0" 167 BorderBrush="Gray" 168 Background="Gray" 169 BorderThickness="1" 170 IsVisible="{Binding !ShowLoadProgress}" /> 171 <ToggleSplitButton 172 Name="VolumeStatus" 173 Padding="5,0,5,0" 174 HorizontalAlignment="Left" 175 VerticalAlignment="Center" 176 VerticalContentAlignment="Center" 177 Content="{Binding VolumeStatusText}" 178 IsChecked="{Binding VolumeMuted}" 179 IsVisible="{Binding !ShowLoadProgress}" 180 PointerWheelChanged="VolumeStatus_OnPointerWheelChanged" 181 Background="Transparent" 182 BorderThickness="0" 183 CornerRadius="0"> 184 <ToggleSplitButton.Styles> 185 <Style Selector=":checked"> 186 <Style Selector="^:checked ContentPresenter"> 187 <Setter Property="Foreground" Value="{DynamicResource ThemeForegroundColor}" /> 188 </Style> 189 </Style> 190 <Style Selector="Border#SeparatorBorder"> 191 <Setter Property="Opacity" Value="0" /> 192 </Style> 193 </ToggleSplitButton.Styles> 194 <ToggleSplitButton.Flyout> 195 <Flyout Placement="Bottom" ShowMode="TransientWithDismissOnPointerMoveAway"> 196 <Grid Margin="0"> 197 <controls:SliderScroll 198 MaxHeight="40" 199 Width="150" 200 Margin="0" 201 Padding="0" 202 IsSnapToTickEnabled="True" 203 LargeChange="0.05" 204 Maximum="1" 205 Minimum="0" 206 SmallChange="0.01" 207 TickFrequency="0.05" 208 ToolTip.Tip="{locale:Locale AudioVolumeTooltip}" 209 Value="{Binding Volume}" /> 210 </Grid> 211 </Flyout> 212 </ToggleSplitButton.Flyout> 213 </ToggleSplitButton> 214 <Border 215 Width="2" 216 Height="12" 217 Margin="0" 218 BorderBrush="Gray" 219 Background="Gray" 220 BorderThickness="1" 221 IsVisible="{Binding !ShowLoadProgress}" /> 222 <TextBlock 223 Margin="5,0,5,0" 224 HorizontalAlignment="Left" 225 VerticalAlignment="Center" 226 IsVisible="{Binding !ShowLoadProgress}" 227 Text="{Binding GameStatusText}" 228 TextAlignment="Start" /> 229 <Border 230 Width="2" 231 Height="12" 232 Margin="0" 233 BorderBrush="Gray" 234 Background="Gray" 235 BorderThickness="1" 236 IsVisible="{Binding !ShowLoadProgress}" /> 237 <TextBlock 238 Margin="5,0,5,0" 239 HorizontalAlignment="Left" 240 VerticalAlignment="Center" 241 IsVisible="{Binding !ShowLoadProgress}" 242 Text="{Binding FifoStatusText}" 243 TextAlignment="Start" /> 244 <Border 245 Width="2" 246 Height="12" 247 Margin="0" 248 BorderBrush="Gray" 249 Background="Gray" 250 BorderThickness="1" 251 IsVisible="{Binding !ShowLoadProgress}" /> 252 <TextBlock 253 Margin="5,0,5,0" 254 HorizontalAlignment="Left" 255 VerticalAlignment="Center" 256 IsVisible="{Binding !ShowLoadProgress}" 257 Text="{Binding BackendText}" 258 TextAlignment="Start" /> 259 <Border 260 Width="2" 261 Height="12" 262 Margin="0" 263 BorderBrush="Gray" 264 Background="Gray" 265 BorderThickness="1" 266 IsVisible="{Binding !ShowLoadProgress}" /> 267 <TextBlock 268 Margin="5,0,5,0" 269 HorizontalAlignment="Left" 270 VerticalAlignment="Center" 271 IsVisible="{Binding !ShowLoadProgress}" 272 Text="{Binding GpuNameText}" 273 TextAlignment="Start" /> 274 </StackPanel> 275 <StackPanel 276 Grid.Column="3" 277 Margin="0,0,5,0" 278 VerticalAlignment="Center" 279 IsVisible="{Binding ShowFirmwareStatus}" 280 Orientation="Horizontal"> 281 <TextBlock 282 Name="FirmwareStatus" 283 Margin="0" 284 HorizontalAlignment="Right" 285 VerticalAlignment="Center" 286 Text="{locale:Locale StatusBarSystemVersion}" /> 287 </StackPanel> 288 </Grid> 289 </UserControl>