refactor(new_editor): tighten app dependency boundaries

This commit is contained in:
2026-04-19 02:48:41 +08:00
parent 7429f22fb1
commit c59cd83c38
86 changed files with 1754 additions and 1077 deletions

View File

@@ -4,21 +4,61 @@
#define NOMINMAX
#endif
#include "Platform/Win32/EditorWindowState.h"
#include <XCEngine/UI/DrawData.h>
#include "Platform/Win32/EditorWindowPointerCapture.h"
#include "Platform/Win32/EditorWindowTransferRequests.h"
#include <windows.h>
#include <cstdint>
#include <filesystem>
#include <optional>
#include <memory>
#include <string>
#include <string_view>
#include <vector>
namespace XCEngine::UI {
class UIDrawList;
struct UIPoint;
struct UIRect;
struct UIInputEvent;
struct UIInputModifiers;
enum class UIPointerButton : std::uint8_t;
enum class UIInputEventType : std::uint8_t;
} // namespace XCEngine::UI
namespace XCEngine::UI::Editor {
class UIEditorWorkspaceController;
struct UIEditorDockHostInteractionState;
struct UIEditorShellInteractionFrame;
struct UIEditorShellInteractionState;
struct UIEditorShellInteractionResult;
namespace Widgets {
struct UIEditorDockHostDropPreviewState;
}
} // namespace XCEngine::UI::Editor
namespace XCEngine::UI::Editor::Host {
enum class BorderlessWindowChromeHitTarget : std::uint8_t;
enum class BorderlessWindowResizeEdge : std::uint8_t;
struct BorderlessWindowChromeLayout;
} // namespace XCEngine::UI::Editor::Host
namespace XCEngine::UI::Editor::App {
class EditorContext;
class EditorShellRuntime;
struct EditorWindowState;
namespace Internal {
class EditorWindowHostRuntime;
@@ -40,6 +80,7 @@ public:
std::wstring title,
bool primary,
UIEditorWorkspaceController workspaceController);
~EditorWindow();
EditorWindow(const EditorWindow&) = delete;
EditorWindow& operator=(const EditorWindow&) = delete;
@@ -215,11 +256,7 @@ private:
void UpdateCachedTitleText();
static bool IsVerboseRuntimeTraceEnabled();
EditorWindowWindowState m_window = {};
EditorWindowRenderState m_render = {};
EditorWindowInputState m_input = {};
EditorWindowCompositionState m_composition = {};
EditorWindowChromeRuntimeState m_chrome = {};
std::unique_ptr<EditorWindowState> m_state = {};
};
} // namespace XCEngine::UI::Editor::App