using Avalonia.Controls; using Avalonia.Interactivity; using Avalonia.Markup.Xaml; using Avalonia.Platform.Storage; using LanMountainDesktop.Launcher.Resources; using LanMountainDesktop.Launcher.Shell; namespace LanMountainDesktop.Launcher.Views; public partial class ErrorDebugWindow : Window { private string? _selectedHostPath; private bool _isInitialized; public bool IsDevModeEnabled { get; private set; } public bool WasAccepted { get; private set; } public string? SelectedHostPath => _selectedHostPath; public ErrorDebugWindow() { AvaloniaXamlLoader.Load(this); Loaded += OnWindowLoaded; } public ErrorDebugWindow(bool devModeEnabled, string? initialPath) : this() { IsDevModeEnabled = devModeEnabled; _selectedHostPath = initialPath; } private void OnWindowLoaded(object? sender, RoutedEventArgs e) { if (_isInitialized) { return; } _isInitialized = true; InitializeComponents(); if (this.FindControl("DevModeToggle") is { } devModeToggle) { devModeToggle.IsChecked = IsDevModeEnabled; } UpdatePathDisplay(_selectedHostPath); RefreshBackgroundImageDisplay(); } private void InitializeComponents() { if (this.FindControl("DevModeToggle") is { } devModeToggle) { devModeToggle.IsCheckedChanged += (_, _) => { IsDevModeEnabled = devModeToggle.IsChecked ?? false; }; } if (this.FindControl