mirror of
https://git.ryujinx.app/ryubing/ryujinx.git
synced 2025-04-21 18:13:14 +02:00
81 lines
2.6 KiB
C#
81 lines
2.6 KiB
C#
using Avalonia;
|
|
using Avalonia.Controls;
|
|
using Avalonia.Controls.Primitives;
|
|
using Avalonia.Input;
|
|
using Avalonia.Media;
|
|
using Avalonia.Platform;
|
|
using FluentAvalonia.UI.Windowing;
|
|
using Ryujinx.Ava.Common.Locale;
|
|
using Ryujinx.Ava.UI.ViewModels;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace Ryujinx.Ava.UI.Windows
|
|
{
|
|
public abstract class StyleableAppWindow : AppWindow
|
|
{
|
|
public static async Task ShowAsync(StyleableAppWindow appWindow, Window owner = null)
|
|
{
|
|
#if DEBUG
|
|
appWindow.AttachDevTools(new KeyGesture(Key.F12, KeyModifiers.Control));
|
|
#endif
|
|
await appWindow.ShowDialog(owner ?? RyujinxApp.MainWindow);
|
|
}
|
|
|
|
protected StyleableAppWindow()
|
|
{
|
|
WindowStartupLocation = WindowStartupLocation.CenterOwner;
|
|
TransparencyLevelHint = [WindowTransparencyLevel.None];
|
|
|
|
LocaleManager.Instance.LocaleChanged += LocaleChanged;
|
|
LocaleChanged();
|
|
|
|
Icon = MainWindowViewModel.IconBitmap;
|
|
}
|
|
|
|
private void LocaleChanged()
|
|
{
|
|
FlowDirection = LocaleManager.Instance.IsRTL() ? FlowDirection.RightToLeft : FlowDirection.LeftToRight;
|
|
}
|
|
|
|
protected override void OnApplyTemplate(TemplateAppliedEventArgs e)
|
|
{
|
|
base.OnApplyTemplate(e);
|
|
|
|
ExtendClientAreaChromeHints = ExtendClientAreaChromeHints.SystemChrome | ExtendClientAreaChromeHints.OSXThickTitleBar;
|
|
}
|
|
}
|
|
|
|
public abstract class StyleableWindow : Window
|
|
{
|
|
public static async Task ShowAsync(StyleableWindow window, Window owner = null)
|
|
{
|
|
#if DEBUG
|
|
window.AttachDevTools(new KeyGesture(Key.F12, KeyModifiers.Control));
|
|
#endif
|
|
await window.ShowDialog(owner ?? RyujinxApp.MainWindow);
|
|
}
|
|
|
|
protected StyleableWindow()
|
|
{
|
|
WindowStartupLocation = WindowStartupLocation.CenterOwner;
|
|
TransparencyLevelHint = [WindowTransparencyLevel.None];
|
|
|
|
LocaleManager.Instance.LocaleChanged += LocaleChanged;
|
|
LocaleChanged();
|
|
|
|
Icon = new WindowIcon(MainWindowViewModel.IconBitmap);
|
|
}
|
|
|
|
private void LocaleChanged()
|
|
{
|
|
FlowDirection = LocaleManager.Instance.IsRTL() ? FlowDirection.RightToLeft : FlowDirection.LeftToRight;
|
|
}
|
|
|
|
protected override void OnApplyTemplate(TemplateAppliedEventArgs e)
|
|
{
|
|
base.OnApplyTemplate(e);
|
|
|
|
ExtendClientAreaChromeHints = ExtendClientAreaChromeHints.SystemChrome | ExtendClientAreaChromeHints.OSXThickTitleBar;
|
|
}
|
|
}
|
|
}
|