Forge
csharpdeeb25a2
1using System.ComponentModel;
2using Avalonia.Controls;
3
4namespace CascadeIDE.Views;
5
6public partial class MainWindow
7{
8 private CockpitSkiaSceneRenderer? _mainWindowSkiaRenderer;
9
10 private void AttachSkiaHostRenderers()
11 {
12 _mainWindowSkiaRenderer ??= new CockpitSkiaSceneRenderer(
13 () => DataContext as ViewModels.MainWindowViewModel,
14 SkiaHostSurface.MainWindow);
15
16 if (this.FindControl<SkiaHost>("PfdSkiaHost") is { } pfd)
17 pfd.Renderer = _mainWindowSkiaRenderer;
18 if (this.FindControl<SkiaHost>("ForwardSkiaHost") is { } forward)
19 forward.Renderer = _mainWindowSkiaRenderer;
20 if (this.FindControl<SkiaHost>("MfdSkiaHost") is { } mfd)
21 mfd.Renderer = _mainWindowSkiaRenderer;
22 }
23
24 private void InvalidateSkiaHosts()
25 {
26 if (this.FindControl<SkiaHost>("PfdSkiaHost") is { } pfd)
27 pfd.InvalidateVisual();
28 if (this.FindControl<SkiaHost>("ForwardSkiaHost") is { } forward)
29 forward.InvalidateVisual();
30 if (this.FindControl<SkiaHost>("MfdSkiaHost") is { } mfd)
31 mfd.InvalidateVisual();
32 }
33
34 internal static bool IsSkiaHostRelatedProperty(string? propertyName) =>
35 propertyName is nameof(ViewModels.MainWindowViewModel.ShowSkiaZoneGeometryOverlay)
36 or nameof(ViewModels.MainWindowViewModel.IsSkiaZoneGeometryOverlayPfdVisible)
37 or nameof(ViewModels.MainWindowViewModel.IsSkiaZoneGeometryOverlayForwardVisible)
38 or nameof(ViewModels.MainWindowViewModel.IsSkiaZoneGeometryOverlayMfdVisible)
39 or nameof(ViewModels.MainWindowViewModel.IsPfdColumnVisible)
40 or nameof(ViewModels.MainWindowViewModel.IsMfdColumnVisible)
41 or nameof(ViewModels.MainWindowViewModel.MainGridColumnDefinitions)
42 or nameof(ViewModels.MainWindowViewModel.IsPfdRegionExpanded)
43 or nameof(Features.WorkspaceNavigation.Presentation.WorkspaceNavigationMapViewModel.WorkspaceNavigationMapRelatedCount)
44 or nameof(Features.WorkspaceNavigation.Presentation.WorkspaceNavigationMapViewModel.WorkspaceNavigationMapHasRelated)
45 or nameof(Features.WorkspaceNavigation.Presentation.WorkspaceNavigationMapViewModel.CodeNavigationMapGraphScene);
46}
47
View only · write via MCP/CIDE