using System.Windows.Controls; using Wpf.Ui.Controls.Interfaces; using Wpf.Ui.Mvvm.Contracts; using Bloxstrap.UI.ViewModels.Settings; namespace Bloxstrap.UI.Elements.Settings { /// /// Interaction logic for MainWindow.xaml /// public partial class MainWindow : INavigationWindow { public MainWindow(bool showAlreadyRunningWarning) { var viewModel = new MainWindowViewModel(); viewModel.RequestSaveNoticeEvent += (_, _) => SettingsSavedSnackbar.Show(); DataContext = viewModel; InitializeComponent(); App.Logger.WriteLine("MainWindow::MainWindow", "Initializing menu"); #if DEBUG // easier access EditorWarningNavItem.Visibility = System.Windows.Visibility.Visible; #endif if (showAlreadyRunningWarning) ShowAlreadyRunningSnackbar(); } private async void ShowAlreadyRunningSnackbar() { await Task.Delay(500); // wait for everything to finish loading AlreadyRunningSnackbar.Show(); } #region INavigationWindow methods public Frame GetFrame() => RootFrame; public INavigation GetNavigation() => RootNavigation; public bool Navigate(Type pageType) => RootNavigation.Navigate(pageType); public void SetPageService(IPageService pageService) => RootNavigation.PageService = pageService; public void ShowWindow() => Show(); public void CloseWindow() => Close(); #endregion INavigationWindow methods } }