| 1 | namespace CascadeIDE.Models; |
| 2 | |
| 3 | /// <summary>Presentation tier policy (ADR 0171). TOML: <c>[display.presentation]</c>.</summary> |
| 4 | public sealed class DisplayPresentationSettings |
| 5 | { |
| 6 | /// <summary><c>auto</c> | <c>compact</c> | <c>cockpit</c>.</summary> |
| 7 | public string Tier { get; set; } = PresentationTierKindExtensions.AutoValue; |
| 8 | |
| 9 | /// <summary>Auto → cockpit on single ultrawide when total width ≥ this (px).</summary> |
| 10 | public int CockpitMinTotalWidthPx { get; set; } = 4800; |
| 11 | |
| 12 | /// <summary>Minimum width per logical anchor on ultrawide (px).</summary> |
| 13 | public int CockpitMinAnchorWidthPx { get; set; } = 1280; |
| 14 | |
| 15 | /// <summary>Compact: Intercom in right auxiliary column (<c>side</c>) or bottom dock (<c>bottom</c>).</summary> |
| 16 | public string CompactIntercomPlacement { get; set; } = "side"; |
| 17 | |
| 18 | /// <summary>Allow cockpit tier on single ultrawide when auto/heuristic matches.</summary> |
| 19 | public bool UltrawideCockpitEnabled { get; set; } = true; |
| 20 | |
| 21 | /// <summary>First-run tier wizard completed.</summary> |
| 22 | public bool TierFirstRunCompleted { get; set; } |
| 23 | |
| 24 | /// <summary>Compact auxiliary panel width (px).</summary> |
| 25 | public int CompactAuxiliaryPanelWidthPx { get; set; } = 380; |
| 26 | |
| 27 | /// <summary>Compact IDE-scan: MFD bottom dock height when terminal/build/git visible (px).</summary> |
| 28 | public int CompactMfdBottomDockHeightPx { get; set; } = 220; |
| 29 | |
| 30 | /// <summary>Compact <c>bottom</c> placement: Intercom bottom dock height when chat visible (px).</summary> |
| 31 | public int CompactIntercomBottomDockHeightPx { get; set; } = 280; |
| 32 | } |
| 33 | |