Forge
csharpdeeb25a2
1using CascadeIDE.Models;
2using CommunityToolkit.Mvvm.Input;
3
4namespace CascadeIDE.Features.Shell;
5
6/// <summary>Relay: регионы, панели MFD, группы редакторов.</summary>
7public sealed partial class ShellChromeViewModel
8{
9 [RelayCommand]
10 private void TogglePfdRegionExpanded() =>
11 _host.ApplyPfdRegionExpanded(!IsPfdRegionExpanded);
12
13 [RelayCommand]
14 private void ToggleMfdRegionExpanded() =>
15 _host.ApplyMfdRegionExpanded(!IsMfdRegionExpanded);
16
17 [RelayCommand]
18 private void ToggleBuildOutput()
19 {
20 IsBuildOutputVisible = !IsBuildOutputVisible;
21 if (IsBuildOutputVisible)
22 _host.TryNavigateToMfdShellPage(MfdShellPage.Build);
23 }
24
25 [RelayCommand]
26 private void ToggleTerminal()
27 {
28 IsTerminalVisible = !IsTerminalVisible;
29 if (IsTerminalVisible)
30 _host.TryNavigateToMfdShellPage(MfdShellPage.Terminal);
31 }
32
33 [RelayCommand]
34 private void ToggleInstrumentationDock() => IsInstrumentationDockVisible = !IsInstrumentationDockVisible;
35
36 [RelayCommand]
37 private void SetSingleEditorGroup() => EditorGroupCount = 1;
38
39 [RelayCommand]
40 private void SetDualEditorGroup() => EditorGroupCount = 2;
41
42 [RelayCommand]
43 private void SetTripleEditorGroup() => EditorGroupCount = 3;
44
45 [RelayCommand]
46 private void ShowPfdRegionPanel() => _host.ApplyPfdRegionExpanded(true);
47
48 [RelayCommand]
49 private void ShowBuildOutputPanel()
50 {
51 IsBuildOutputVisible = true;
52 _host.TryNavigateToMfdShellPage(MfdShellPage.Build);
53 }
54
55 [RelayCommand]
56 private void ShowChatPage()
57 {
58 _host.ApplyMfdRegionExpanded(true);
59 _host.TryNavigateToMfdShellPage(MfdShellPage.Chat);
60 }
61
62 [RelayCommand]
63 private void ShowSolutionExplorerPage()
64 {
65 _host.ApplyMfdRegionExpanded(true);
66 _host.TryNavigateToMfdShellPage(MfdShellPage.SolutionExplorer);
67 }
68
69 [RelayCommand]
70 private void ShowRelatedFilesMfdPage()
71 {
72 _host.ApplyMfdRegionExpanded(true);
73 _host.TryNavigateToMfdShellPage(MfdShellPage.RelatedFiles);
74 }
75
76 [RelayCommand]
77 private void ShowCorrespondencePage()
78 {
79 if (_host.NavigationMap.ShowCorrespondencePageCommand.CanExecute(null))
80 _host.NavigationMap.ShowCorrespondencePageCommand.Execute(null);
81 }
82
83 [RelayCommand]
84 private void ShowTerminalPanel()
85 {
86 IsTerminalVisible = true;
87 _host.TryNavigateToMfdShellPage(MfdShellPage.Terminal);
88 }
89}
90
View only · write via MCP/CIDE