feat(new_editor): add standalone add-component utility window

This commit is contained in:
2026-04-22 22:07:02 +08:00
parent 865a35e4d0
commit 3048c7cc90
37 changed files with 1237 additions and 290 deletions

View File

@@ -0,0 +1,51 @@
#include "Platform/Win32/EditorAddComponentUtilityWindowContentController.h"
#include <XCEngine/UI/DrawData.h>
namespace XCEngine::UI::Editor::App {
EditorAddComponentUtilityWindowContentController::
EditorAddComponentUtilityWindowContentController(
const ::XCEngine::UI::UISize& minimumOuterSize)
: EditorStandaloneUtilityWindowContentController(minimumOuterSize) {}
EditorAddComponentUtilityWindowContentController::
~EditorAddComponentUtilityWindowContentController() = default;
void EditorAddComponentUtilityWindowContentController::OnShutdown() {
m_addComponentPanel.ResetInteractionState();
}
void EditorAddComponentUtilityWindowContentController::OnResetInteractionState() {
m_addComponentPanel.ResetInteractionState();
}
EditorWindowFrameTransferRequests
EditorAddComponentUtilityWindowContentController::UpdateStandaloneContent(
const EditorStandaloneUtilityWindowFrameContext& context,
::XCEngine::UI::UIDrawData& drawData) {
m_addComponentPanel.Update(
context.editorContext,
AddComponentPanelHostContext{
.mounted = true,
.bounds = context.bounds,
.focused = context.focused,
.focusGained = context.focusGained,
.focusLost = context.focusLost,
},
context.inputEvents);
::XCEngine::UI::UIDrawList& drawList =
drawData.EmplaceDrawList("XCEditorUtility.AddComponent");
m_addComponentPanel.Append(drawList);
return {};
}
std::unique_ptr<EditorWindowContentController>
CreateEditorAddComponentUtilityWindowContentController(
const ::XCEngine::UI::UISize& minimumOuterSize) {
return std::make_unique<EditorAddComponentUtilityWindowContentController>(
minimumOuterSize);
}
} // namespace XCEngine::UI::Editor::App