mirror of
https://github.com/Artemis-RGB/Artemis
synced 2026-11-12 03:48:56 +00:00
Router - Require routable VMs to implement new RoutableScreen
This commit is contained in:
1 parent
318ec99ad4
commit
c132edeb51
43 files changed
+284
-287
No files matched your search
@@ -1,8 +1,9 @@
|
||||
using Artemis.UI.Shared;
|
||||
using Artemis.UI.Shared.Routing;
|
||||
|
||||
namespace Artemis.UI.Screens.Root;
|
||||
|
||||
public class BlankViewModel : ViewModelBase, IMainScreenViewModel
|
||||
public class BlankViewModel : RoutableScreen, IMainScreenViewModel
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public ViewModelBase? TitleBarViewModel => null;
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using System.Reactive.Disposables;
|
||||
using Artemis.UI.Shared.Routing;
|
||||
using Avalonia.ReactiveUI;
|
||||
using Avalonia.Threading;
|
||||
using ReactiveUI;
|
||||
@@ -14,7 +15,7 @@ public partial class RootView : ReactiveUserControl<RootViewModel>
|
||||
this.WhenActivated(d => ViewModel.WhenAnyValue(vm => vm.Screen).Subscribe(Navigate).DisposeWith(d));
|
||||
}
|
||||
|
||||
private void Navigate(IMainScreenViewModel viewModel)
|
||||
private void Navigate(RoutableScreen viewModel)
|
||||
{
|
||||
try
|
||||
{
|
||||
|
||||
@@ -18,7 +18,7 @@ using ReactiveUI;
|
||||
|
||||
namespace Artemis.UI.Screens.Root;
|
||||
|
||||
public class RootViewModel : RoutableScreen<IMainScreenViewModel>, IMainWindowProvider
|
||||
public class RootViewModel : RoutableHostScreen<RoutableScreen>, IMainWindowProvider
|
||||
{
|
||||
private readonly ICoreService _coreService;
|
||||
private readonly IDebugService _debugService;
|
||||
@@ -100,12 +100,10 @@ public class RootViewModel : RoutableScreen<IMainScreenViewModel>, IMainWindowPr
|
||||
_router.GoForward();
|
||||
}
|
||||
|
||||
private void UpdateTitleBarViewModel(IMainScreenViewModel? viewModel)
|
||||
private void UpdateTitleBarViewModel(RoutableScreen? viewModel)
|
||||
{
|
||||
if (viewModel?.TitleBarViewModel != null)
|
||||
TitleBarViewModel = viewModel.TitleBarViewModel;
|
||||
else
|
||||
TitleBarViewModel = _defaultTitleBarViewModel;
|
||||
IMainScreenViewModel? mainScreenViewModel = viewModel as IMainScreenViewModel;
|
||||
TitleBarViewModel = mainScreenViewModel?.TitleBarViewModel ?? _defaultTitleBarViewModel;
|
||||
}
|
||||
|
||||
private void CurrentMainWindowOnClosing(object? sender, EventArgs e)
|
||||
|
||||
Reference in new issue
Block a user