| 1 | namespace CascadeIDE.ViewModels; |
| 2 | |
| 3 | /// <summary>События «окно-хост открыло полный контур» — скрытие колонок в main (<see cref="MainWindowViewModel.PresentationLayout"/>).</summary> |
| 4 | public 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 | |