chore: checkpoint current workspace changes

This commit is contained in:
2026-04-11 22:14:02 +08:00
parent 3e55f8c204
commit 8848cfd958
227 changed files with 34027 additions and 6711 deletions

View File

@@ -20,9 +20,9 @@ using Widgets::UIEditorStatusBarTextTone;
UIEditorPanelRegistry BuildPanelRegistry() {
UIEditorPanelRegistry registry = {};
registry.panels = {
{ "hierarchy", "Hierarchy", UIEditorPanelPresentationKind::Placeholder, true, false, false },
{ "scene", "Scene", UIEditorPanelPresentationKind::ViewportShell, false, false, false },
{ "game", "Game", UIEditorPanelPresentationKind::ViewportShell, false, false, false },
{ "hierarchy", "Hierarchy", UIEditorPanelPresentationKind::HostedContent, true, false, false },
{ "scene", "Scene", UIEditorPanelPresentationKind::HostedContent, false, false, false },
{ "game", "Game", UIEditorPanelPresentationKind::HostedContent, false, false, false },
{ "inspector", "Inspector", UIEditorPanelPresentationKind::Placeholder, true, false, false },
{ "console", "Console", UIEditorPanelPresentationKind::Placeholder, true, false, false },
{ "project", "Project", UIEditorPanelPresentationKind::HostedContent, false, false, false }
@@ -413,27 +413,6 @@ UIEditorWorkspacePanelPresentationModel BuildPlaceholderPresentation(
return presentation;
}
UIEditorWorkspacePanelPresentationModel BuildViewportPresentation(
std::string panelId,
std::string_view title,
std::string_view subtitle,
std::string statusText) {
UIEditorWorkspacePanelPresentationModel presentation = {};
presentation.panelId = std::move(panelId);
presentation.kind = UIEditorPanelPresentationKind::ViewportShell;
presentation.viewportShellModel.spec.chrome.title = title;
presentation.viewportShellModel.spec.chrome.subtitle = subtitle;
presentation.viewportShellModel.spec.chrome.showTopBar = true;
presentation.viewportShellModel.spec.chrome.showBottomBar = true;
presentation.viewportShellModel.spec.statusSegments = {
BuildStatusSegment("viewport-mode", std::string(subtitle), UIEditorStatusBarSlot::Leading, UIEditorStatusBarTextTone::Primary, 112.0f, true),
BuildStatusSegment("viewport-status", std::move(statusText), UIEditorStatusBarSlot::Trailing, UIEditorStatusBarTextTone::Muted, 168.0f, false)
};
presentation.viewportShellModel.frame.statusText =
presentation.viewportShellModel.spec.statusSegments.back().label;
return presentation;
}
UIEditorWorkspacePanelPresentationModel BuildHostedContentPresentation(
std::string panelId) {
UIEditorWorkspacePanelPresentationModel presentation = {};
@@ -452,9 +431,9 @@ UIEditorShellInteractionDefinition BuildBaseShellDefinition() {
};
definition.statusSegments = {};
definition.workspacePresentations = {
BuildPlaceholderPresentation("hierarchy"),
BuildViewportPresentation("scene", "Scene", "Perspective", "Viewport shell ready"),
BuildViewportPresentation("game", "Game", "Display 1", "Game preview host ready"),
BuildHostedContentPresentation("hierarchy"),
BuildHostedContentPresentation("scene"),
BuildHostedContentPresentation("game"),
BuildPlaceholderPresentation("inspector"),
BuildPlaceholderPresentation("console"),
BuildHostedContentPresentation("project")