Files @ 0fc41569b1c7
Branch filter:

Location: ATITD-Tools/Desert-Paint-Codex/Views/WelcomeView.axaml.cs - annotation

Jason Maltzen
Update to 1.11.1
using System;
using System.Reactive.Disposables;
using Avalonia;
using Avalonia.Markup.Xaml;
using Avalonia.Platform;
using Avalonia.ReactiveUI;
using DesertPaintCodex.ViewModels;
using ReactiveUI;


namespace DesertPaintCodex.Views
{
    public class WelcomeView : ReactiveWindow<WelcomeViewModel>
    {
        public WelcomeView()
        {
            InitializeComponent();
#if DEBUG
            this.AttachDevTools();
#endif

            // Extract some reasonable screen defaults.
            IScreenImpl screenInfo = PlatformImpl.Screen;
            for (int i = 0; i < screenInfo.ScreenCount; i++)
            {
                Screen screen = screenInfo.AllScreens[i];
                if (!screen.Primary) continue;
                Util.Constants.DefaultScreenWidth  = screen.Bounds.Width;
                Util.Constants.DefaultScreenHeight = screen.Bounds.Height;
                Util.Constants.DefaultScreenX      = screen.Bounds.X;
                Util.Constants.DefaultScreenY      = screen.Bounds.Y;
                break;
            }
            
            // Make this window draggable.
            PointerPressed += (_, e) =>
            {
                PlatformImpl?.BeginMoveDrag(e);
            };
            
            // Handle the close command.
            this.WhenActivated(disposables=>
            {
                ViewModel?.FinishWelcome.Subscribe(_ => Close()).DisposeWith(disposables);
            });
        }
        
        private void InitializeComponent()
        {
            AvaloniaXamlLoader.Load(this);
        }
    }
}