mirror of
https://github.com/aaru-dps/RedBookPlayer.git
synced 2025-12-16 19:24:41 +00:00
51 lines
1.6 KiB
C#
51 lines
1.6 KiB
C#
using System;
|
|
using System.Diagnostics;
|
|
using System.IO;
|
|
using Avalonia;
|
|
using Avalonia.Controls;
|
|
using Avalonia.Controls.ApplicationLifetimes;
|
|
using Avalonia.Markup.Xaml;
|
|
using RedBookPlayer.GUI.ViewModels;
|
|
using RedBookPlayer.GUI.Views;
|
|
|
|
namespace RedBookPlayer
|
|
{
|
|
public class App : Application
|
|
{
|
|
public static MainWindow MainWindow;
|
|
public static SettingsViewModel Settings;
|
|
|
|
/// <summary>
|
|
/// Read-only access to the current player view
|
|
/// </summary>
|
|
public static PlayerView PlayerView => MainWindow?.ViewModel?.PlayerView;
|
|
|
|
static App() =>
|
|
Directory.SetCurrentDirectory(Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName));
|
|
|
|
public override void Initialize()
|
|
{
|
|
AppDomain.CurrentDomain.UnhandledException += (e, f) =>
|
|
{
|
|
Console.WriteLine(((Exception)f.ExceptionObject).ToString());
|
|
};
|
|
|
|
Settings = SettingsViewModel.Load("settings.json");
|
|
AvaloniaXamlLoader.Load(this);
|
|
}
|
|
|
|
public override void OnFrameworkInitializationCompleted()
|
|
{
|
|
if(ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
|
|
{
|
|
MainWindow = new MainWindow();
|
|
desktop.MainWindow = MainWindow;
|
|
desktop.ShutdownMode = ShutdownMode.OnMainWindowClose;
|
|
|
|
PlayerView.ViewModel.ApplyTheme(Settings.SelectedTheme);
|
|
}
|
|
|
|
base.OnFrameworkInitializationCompleted();
|
|
}
|
|
}
|
|
} |