2020-04-09 04:18:29 +01:00
|
|
|
|
using System;
|
|
|
|
|
|
using Aaru.Gui.ViewModels;
|
2020-04-09 02:26:04 +01:00
|
|
|
|
using Aaru.Gui.Views;
|
|
|
|
|
|
using Avalonia;
|
2020-04-09 04:18:29 +01:00
|
|
|
|
using Avalonia.Controls;
|
2020-04-09 02:26:04 +01:00
|
|
|
|
using Avalonia.Controls.ApplicationLifetimes;
|
|
|
|
|
|
using Avalonia.Markup.Xaml;
|
|
|
|
|
|
|
|
|
|
|
|
namespace Aaru.Gui
|
|
|
|
|
|
{
|
|
|
|
|
|
public class App : Application
|
|
|
|
|
|
{
|
2020-04-09 03:28:08 +01:00
|
|
|
|
public override void Initialize() => AvaloniaXamlLoader.Load(this);
|
2020-04-09 02:26:04 +01:00
|
|
|
|
|
|
|
|
|
|
public override void OnFrameworkInitializationCompleted()
|
|
|
|
|
|
{
|
2020-04-09 03:28:08 +01:00
|
|
|
|
if(ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
|
2020-04-09 02:26:04 +01:00
|
|
|
|
{
|
2020-04-09 04:18:29 +01:00
|
|
|
|
var swvm = new SplashWindowViewModel();
|
|
|
|
|
|
swvm.WorkFinished += OnSplashFinished;
|
|
|
|
|
|
|
2020-04-09 03:28:08 +01:00
|
|
|
|
desktop.MainWindow = new SplashWindow
|
2020-04-09 02:26:04 +01:00
|
|
|
|
{
|
2020-04-09 04:18:29 +01:00
|
|
|
|
DataContext = swvm
|
2020-04-09 02:26:04 +01:00
|
|
|
|
};
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
base.OnFrameworkInitializationCompleted();
|
|
|
|
|
|
}
|
2020-04-09 04:18:29 +01:00
|
|
|
|
|
|
|
|
|
|
void OnSplashFinished(object sender, EventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
if(!(ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop))
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
|
|
// Ensure not exit
|
|
|
|
|
|
desktop.ShutdownMode = ShutdownMode.OnExplicitShutdown;
|
|
|
|
|
|
|
|
|
|
|
|
// Close splash window
|
|
|
|
|
|
desktop.MainWindow.Close();
|
|
|
|
|
|
|
|
|
|
|
|
// Create and show main window
|
|
|
|
|
|
desktop.MainWindow = new MainWindow
|
|
|
|
|
|
{
|
|
|
|
|
|
DataContext = new MainWindowViewModel()
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
desktop.MainWindow.Show();
|
|
|
|
|
|
|
|
|
|
|
|
// Now can close when all windows are closed
|
|
|
|
|
|
desktop.ShutdownMode = ShutdownMode.OnLastWindowClose;
|
|
|
|
|
|
}
|
2020-04-09 02:26:04 +01:00
|
|
|
|
}
|
2020-04-09 03:28:08 +01:00
|
|
|
|
}
|