Files
RedBookPlayer/RedBookPlayer.GUI/App.xaml.cs

51 lines
1.6 KiB
C#
Raw Normal View History

2021-03-19 17:07:27 -03:00
using System;
2021-06-06 20:28:36 +01:00
using System.Diagnostics;
2021-03-19 17:07:27 -03:00
using System.IO;
using Avalonia;
using Avalonia.Controls;
using Avalonia.Controls.ApplicationLifetimes;
using Avalonia.Markup.Xaml;
2021-08-05 21:05:20 -07:00
using RedBookPlayer.GUI.ViewModels;
2021-07-12 15:49:43 -07:00
using RedBookPlayer.GUI.Views;
2021-03-19 17:07:27 -03:00
namespace RedBookPlayer
{
public class App : Application
{
2021-08-05 21:05:20 -07:00
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;
2021-03-19 17:07:27 -03:00
2021-06-06 20:28:36 +01:00
static App() =>
Directory.SetCurrentDirectory(Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName));
2021-03-19 17:07:27 -03:00
public override void Initialize()
{
AppDomain.CurrentDomain.UnhandledException += (e, f) =>
{
Console.WriteLine(((Exception)f.ExceptionObject).ToString());
};
2021-08-05 21:05:20 -07:00
Settings = SettingsViewModel.Load("settings.json");
2021-03-19 17:07:27 -03:00
AvaloniaXamlLoader.Load(this);
}
public override void OnFrameworkInitializationCompleted()
{
2021-06-06 20:28:36 +01:00
if(ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
2021-03-19 17:07:27 -03:00
{
2021-08-05 21:05:20 -07:00
MainWindow = new MainWindow();
desktop.MainWindow = MainWindow;
2021-03-19 17:07:27 -03:00
desktop.ShutdownMode = ShutdownMode.OnMainWindowClose;
2021-03-24 17:34:04 -03:00
2021-08-05 21:05:20 -07:00
PlayerView.ViewModel.ApplyTheme(Settings.SelectedTheme);
2021-03-19 17:07:27 -03:00
}
base.OnFrameworkInitializationCompleted();
}
}
}