Forge
csharp4405de34
1namespace CascadeIDE.ViewModels;
2
3/// <summary>События «окно-хост открыло полный контур» — скрытие колонок в main (<see cref="MainWindowViewModel.PresentationLayout"/>).</summary>
4public partial class MainWindowViewModel
5{
6 /// <summary>Свойства, зависящие от подавления колонок PFD/MFD в main при открытых окнах-хостах (ADR 0017).</summary>
7 private static readonly string[] HostShellOpenInvalidatedPropertyNames =
8 [
9 nameof(IsMfdHostWindowShellOpen),
10 nameof(IsPfdHostWindowShellOpen),
11 nameof(IsPfdColumnVisible),
12 nameof(IsMfdColumnVisible),
13 nameof(IsSkiaZoneGeometryOverlayPfdVisible),
14 nameof(IsSkiaZoneGeometryOverlayMfdVisible),
15 nameof(MfdRegionPixelWidth),
16 nameof(IsMfdRegionVisible),
17 nameof(ActiveAttentionLayoutSurface),
18 nameof(MainGridColumnDefinitions),
19 nameof(IsPfdIdeHealthMountVisible),
20 nameof(IsMfdIdeHealthMountVisible),
21 nameof(IsMfdHostWindowIdeHealthMountVisible),
22 nameof(IsPfdHostWindowIdeHealthMountVisible),
23 nameof(PfdIdeHealthMountContext),
24 nameof(MfdIdeHealthMountContext),
25 nameof(PfdInstrumentMountStyle),
26 nameof(MfdInstrumentMountStyle),
27 ];
28
29 /// <summary>
30 /// Окно-хост зоны Mfd показывает <c>MfdShellView</c> (чат, терминал, обозреватель решения и т.д.) — скрываем колонку Mfd в главном окне, чтобы не дублировать контур.
31 /// </summary>
32 public void SetMfdHostWindowShellOpen(bool isOpen)
33 {
34 if (_suppressMfdColumnForMfdHostWindow == isOpen)
35 return;
36
37 _suppressMfdColumnForMfdHostWindow = isOpen;
38 foreach (var name in HostShellOpenInvalidatedPropertyNames)
39 OnPropertyChanged(name);
40 }
41
42 /// <summary>Окно-хост зоны Pfd показывает дерево/semantic map — скрываем колонку Pfd в главном окне.</summary>
43 public void SetPfdHostWindowShellOpen(bool isOpen)
44 {
45 if (_suppressPfdColumnForPfdHostWindow == isOpen)
46 return;
47
48 _suppressPfdColumnForPfdHostWindow = isOpen;
49 foreach (var name in HostShellOpenInvalidatedPropertyNames)
50 OnPropertyChanged(name);
51 }
52}
53
View only · write via MCP/CIDE