Files
MercuryConverter/UI/MainWindow.axaml.cs
T
2025-08-19 01:53:25 -07:00

58 lines
1.4 KiB
C#

using System;
using System.Threading.Tasks;
using Avalonia.Controls;
using Avalonia.Styling;
using Avalonia.Threading;
using MercuryConverter.UI.Dialogs;
using MercuryConverter.UI.Views;
namespace MercuryConverter.UI;
public partial class MainWindow : Window
{
public static MainWindow? Instance { get; private set; }
private bool initialShown = false;
public MainWindow()
{
Instance = this;
InitializeComponent();
DataContext = this;
// Force dark mode in designer
if (Design.IsDesignMode)
{
RequestedThemeVariant = ThemeVariant.Dark;
}
// Setup tab views
SelectionControl.Content = new Selection();
// Show dialog on startup
Activated += OnActivated;
}
private void OnActivated(object? sender, EventArgs e)
{
if (initialShown) return;
initialShown = true;
Dialog.DialogContent = new Welcome().Content;
Dialog.IsOpen = true;
}
public void OpenDataHandler()
{
Dialog.IsOpen = true;
Dialog.DialogContent = new DataScanning().Content;
}
public void OpenDataHOWTO()
{
var launcher = GetTopLevel(this)?.Launcher;
if (launcher != null)
{
launcher.LaunchUriAsync(new Uri("https://github.com/muskit/MercuryConverter/blob/main/HOWTO.md"));
}
}
}