Forge
csharpdeeb25a2
1namespace CascadeIDE.Features.UiChrome;
2
3/// <summary>Продуктовая «семья» UI-режима: одна ось для веток в коде и привязок вместо набора <c>Is*Mode</c>.</summary>
4public enum UiModeFamily
5{
6 Focus,
7 /// <summary>Максимум места редактору: скрытый хром по capabilities; вызовы — палитра/MCP.</summary>
8 Editor,
9 Balanced,
10 Power,
11 AgentChat,
12 Debug,
13 /// <summary>Полигон для экспериментов с раскладкой; дефолты capabilities как у <see cref="Balanced"/>.</summary>
14 Flight,
15}
16
17/// <summary>Соответствие стабильного id режима (после <see cref="UiChromeViewModel.NormalizeUiMode"/>) семейству.</summary>
18public static class UiModeFamilyResolver
19{
20 public static UiModeFamily FromNormalizedMode(string normalizedMode) =>
21 UiModeCatalog.GetFamily(normalizedMode);
22}
23
24/// <summary>Предикаты по значению <see cref="UiModeFamily"/>: одна точка для каждого семейства вместо размножения <c>== UiModeFamily.*</c> в VM.</summary>
25public static class UiModeFamilyExtensions
26{
27 public static bool IsFocusFamily(this UiModeFamily family) =>
28 family == UiModeFamily.Focus;
29
30 public static bool IsEditorFamily(this UiModeFamily family) =>
31 family == UiModeFamily.Editor;
32
33 public static bool IsBalancedFamily(this UiModeFamily family) =>
34 family == UiModeFamily.Balanced;
35
36 public static bool IsPowerFamily(this UiModeFamily family) =>
37 family == UiModeFamily.Power;
38
39 public static bool IsAgentChatFamily(this UiModeFamily family) =>
40 family == UiModeFamily.AgentChat;
41
42 public static bool IsDebugFamily(this UiModeFamily family) =>
43 family == UiModeFamily.Debug;
44
45 public static bool IsFlightFamily(this UiModeFamily family) =>
46 family == UiModeFamily.Flight;
47}
48
View only · write via MCP/CIDE