new_editor: close editor-layer app boundary

This commit is contained in:
2026-04-22 16:24:59 +08:00
parent a805803858
commit 2c2a8b8669
25 changed files with 1036 additions and 439 deletions

View File

@@ -0,0 +1,40 @@
#pragma once
#include <XCEditor/Panels/UIEditorPanelContentHost.h>
#include <XCEditor/Panels/UIEditorPanelHostLifecycle.h>
#include <string>
#include <string_view>
#include <vector>
namespace XCEngine::UI::Editor {
struct UIEditorHostedPanelDispatchEntry {
std::string panelId = {};
UIEditorPanelPresentationKind presentationKind =
UIEditorPanelPresentationKind::Placeholder;
bool mounted = false;
::XCEngine::UI::UIRect bounds = {};
bool allowInteraction = false;
bool attached = false;
bool visible = false;
bool active = false;
bool focused = false;
bool focusGained = false;
bool focusLost = false;
};
struct UIEditorHostedPanelDispatchFrame {
std::vector<UIEditorHostedPanelDispatchEntry> entries = {};
};
const UIEditorHostedPanelDispatchEntry* FindUIEditorHostedPanelDispatchEntry(
const UIEditorHostedPanelDispatchFrame& frame,
std::string_view panelId);
UIEditorHostedPanelDispatchFrame BuildUIEditorHostedPanelDispatchFrame(
const UIEditorPanelContentHostFrame& contentHostFrame,
const UIEditorPanelHostLifecycleFrame& lifecycleFrame,
bool allowInteraction);
} // namespace XCEngine::UI::Editor