Forge
csharpdeeb25a2
1using CascadeIDE.Cockpit.Composition.Shell;
2
3namespace CascadeIDE.Cockpit.Composition.HostSurface;
4
5/// <summary>
6/// Привязки слот → <see cref="CockpitInstrumentDescriptor"/> для кадра поверхности (CDS/Skia): не «резолв DI»,
7/// а манифест того, какие канонические <c>instrument_id</c> считаются смонтированными в каких слотах при текущей геометрии shell.
8/// </summary>
9public interface ISurfaceSlotInstrumentBindingProvider
10{
11 IReadOnlyList<CockpitInstrumentDescriptor> GetBindings(in SurfaceSlotInstrumentBindingContext context);
12}
13
14/// <param name="Shell">Уже посчитанная оболочка (видимость колонок, ширина Mfd).</param>
15/// <param name="SurfaceId"><c>main_window_docked_grid</c> или <c>main_window_plus_mfd_host_top_level</c>.</param>
16/// <param name="SafetyLevel">Уровень безопасности канала (safety.observe … safety.autonomous).</param>
17public readonly record struct SurfaceSlotInstrumentBindingContext(
18 MainWindowShellSurfaceComposition Shell,
19 string SurfaceId,
20 string SafetyLevel);
21
View only · write via MCP/CIDE