Refactor XCEditor into library-style layout

This commit is contained in:
2026-04-06 20:02:34 +08:00
parent f16620afc6
commit 2a61f0b20a
60 changed files with 524 additions and 502 deletions

View File

@@ -170,9 +170,10 @@ tests/
- `editor/` 当前视为 ImGui 版本冻结区;在 XCUI editor shell 成熟前,不直接在该目录中推进替换开发。
- `tests/UI` 是当前 `Editor` 基础层的唯一实验场;所有基础能力验证、交互试验、状态流检查都必须优先放在 `tests/UI/Editor/unit``tests/UI/Editor/integration`
- `new_editor/` 当前冻结为空壳目录,不承担实验场职责;在 `Editor` 基础层尚未通过测试体系收口前,禁止继续往其中添加新功能、新面板或新的验证入口。
- `new_editor/` 当前不作为试验场;它承载 `Editor` 基础层库与临时宿主骨架,禁止往其中追加业务面板、临时验证逻辑或与 `tests/UI` 重复的实验入口。
- `new_editor/` 当前目录结构按库式 `Editor UI` 形态维护:公共头放在 `include/XCEditor/Core|Widgets`,实现放在 `src/Core|Widgets`,宿主代码放在 `app/Application.*|Host/*`,不再把库层与宿主层揉成一套业务目录。
- `engine/UI` 当前继续只放 `Core / Runtime / shared` 部分,不再继续沉积 editor-only 代码。
-`Editor` 基础层在 `tests/UI/Editor` 中稳定收口后,如确有宿主集成需要,再单独规划 `new_editor/` 正式 `editor/` 的接入阶段。
-`Editor` 基础层在 `tests/UI/Editor` 中稳定收口后,规划 `new_editor/` 迁入正式 `editor/` 的接入阶段,而不是继续在旧 `editor/``new_editor/` 之间双线推进
#### 当前过渡期目录(自 2026-04-06 起执行)
```text
@@ -182,10 +183,11 @@ engine/
# 只承载 Core / Runtime / shared UI 基础层
new_editor/
include/XCEditor/
src/
app/
ui/
captures/
# 当前冻结为空壳,不作为基础层开发或实验入口
# Editor 基础层库 + 临时宿主骨架;不承载测试验证入口与业务面板
editor/
# 当前 ImGui 版本冻结,不作为本阶段 XCUI 主实现目录
@@ -1418,7 +1420,7 @@ tests/UI/Editor/
1. 冻结当前基于 ImGui 的 `editor/` 目录,不把它作为本阶段 XCUI 替换开发的主工作区。
2. 当前阶段所有 `Editor` 基础层实验、交互验证、状态流验证,一律放在 `tests/UI/Editor` 中完成。
3. `new_editor/` 保持空壳冻结;在基础层未成熟前,不把它当作试验场,不往里面追加功能
3. `new_editor/` 不作为试验场;当前只允许维护 `Editor` 基础层库与宿主骨架,不往里面追加业务面板或验证逻辑
4. 在具体 editor 面板之前,优先完成 editor shell 基础能力:
- Splitter / pane resize
- Tab strip
@@ -1439,7 +1441,7 @@ tests/UI/Editor/
- 凡是发现 `layout / input / style / text / render contract / shared widget` 等共享能力缺口,必须优先回补到 `Core` 或 shared UI 层。
- 禁止在 `Editor` 层硬写临时替代实现去绕过 `Core` 缺口;否则后面迁移到正式 editor 时会再次返工。
- `tests/UI/Editor` 是当前 `Editor` 基础层的唯一实验与验证入口;需要人工操作检查的内容,也必须做成这里的集成测试场景。
- `new_editor/` 当前保持空壳冻结,不作为试验场,作为基础层功能承载目录,更不允许在基础层未成熟前向其中堆任何业务或验证逻辑。
- `new_editor/` 当前不作为试验场,作为 `Editor` 基础层库与临时宿主骨架存在;允许承载迁移必需的基础层代码,不允许堆业务面板或测试验证逻辑。
- `tests/UI/Editor` 当前只验证 `Editor` 基础壳层与状态流,不提前承担具体业务面板复刻。
### 24.3 Editor基础层当前推进顺序2026-04-06
@@ -1451,6 +1453,13 @@ tests/UI/Editor/
3. 打通 `open / close / show / hide / activate` 的基础状态流,并让 tab 选择与 active panel 始终一致。
4. 先补 `tests/UI/Editor/unit` 对上述状态机与装配规则的覆盖,再补一个专注状态流的 `integration` 场景。
5. 上述基础层稳定后,再继续推进 `MenuBar / ShortcutManager / DockHost layout persistence`,最后才轮到具体业务面板迁移。
### 24.4 当前下一阶段主线2026-04-06
结合当前实现进度,下一阶段执行顺序补充固定为:
1. 先在 `tests/UI/Core` 回补共享 `popup / menu overlay primitive`,包括 `open/close`、anchor/placement、outside click dismiss、`Escape` dismiss、submenu path。
2. 再补 `popup overlay` 与现有 `focus / input / capture / shortcut scope` 的契约收口,先做 `unit`,再做一个只验证单场景的 `integration` exe。
3. 上述 Core 能力稳定后,再在 `tests/UI/Editor` 中推进 `MenuBar / MenuPopup / ContextMenu` 对这套 primitive 的复用,不在 `Editor` 层另写临时实现绕过 Core。
4. 最后继续 `TabStrip / DockHost shell / workspace compose` 的真实渲染、命中与状态联动,直到 `Editor shell` 基础层具备替换当前 ImGui shell 的必要能力。
## 25. 人力与节奏建议
若按 1 名主导工程师 + AI 辅助估算:

View File

@@ -1,117 +1,121 @@
cmake_minimum_required(VERSION 3.15)
project(XCNewEditor VERSION 0.1 LANGUAGES CXX)
project(XCUIEditor VERSION 0.1 LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
file(TO_CMAKE_PATH "${CMAKE_SOURCE_DIR}" XCNEWEDITOR_REPO_ROOT_PATH)
file(TO_CMAKE_PATH "${CMAKE_SOURCE_DIR}" XCUIEDITOR_REPO_ROOT_PATH)
set(NEW_EDITOR_RESOURCE_FILES
set(XCUI_EDITOR_RESOURCE_FILES
ui/views/editor_shell.xcui
ui/themes/editor_shell.xctheme
)
add_library(XCNewEditorLib STATIC
src/editor/EditorShellAsset.cpp
src/editor/UIEditorCommandDispatcher.cpp
src/editor/UIEditorCommandRegistry.cpp
src/editor/UIEditorMenuModel.cpp
src/editor/UIEditorPanelRegistry.cpp
src/editor/UIEditorShortcutManager.cpp
src/editor/UIEditorWorkspaceLayoutPersistence.cpp
src/editor/UIEditorWorkspaceController.cpp
src/editor/UIEditorWorkspaceModel.cpp
src/editor/UIEditorWorkspaceSession.cpp
add_library(XCUIEditorLib STATIC
src/Core/EditorShellAsset.cpp
src/Core/UIEditorCommandDispatcher.cpp
src/Core/UIEditorCommandRegistry.cpp
src/Core/UIEditorMenuModel.cpp
src/Core/UIEditorPanelRegistry.cpp
src/Core/UIEditorShortcutManager.cpp
src/Core/UIEditorWorkspaceLayoutPersistence.cpp
src/Core/UIEditorWorkspaceController.cpp
src/Core/UIEditorWorkspaceModel.cpp
src/Core/UIEditorWorkspaceSession.cpp
src/Widgets/UIEditorCollectionPrimitives.cpp
)
target_include_directories(XCNewEditorLib
target_include_directories(XCUIEditorLib
PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/include
${CMAKE_CURRENT_SOURCE_DIR}/src
${CMAKE_SOURCE_DIR}/engine/include
PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/src
)
target_compile_definitions(XCNewEditorLib PUBLIC
target_compile_definitions(XCUIEditorLib PUBLIC
UNICODE
_UNICODE
XCNEWEDITOR_REPO_ROOT="${XCNEWEDITOR_REPO_ROOT_PATH}"
XCUIEDITOR_REPO_ROOT="${XCUIEDITOR_REPO_ROOT_PATH}"
)
if(MSVC)
target_compile_options(XCNewEditorLib PRIVATE /utf-8 /FS)
set_property(TARGET XCNewEditorLib PROPERTY
target_compile_options(XCUIEditorLib PRIVATE /utf-8 /FS)
set_property(TARGET XCUIEditorLib PROPERTY
MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>DLL")
endif()
target_link_libraries(XCNewEditorLib PUBLIC
target_link_libraries(XCUIEditorLib PUBLIC
XCEngine
)
add_library(XCNewEditorHost STATIC
src/Host/AutoScreenshot.cpp
src/Host/NativeRenderer.cpp
add_library(XCUIEditorHost STATIC
app/Host/AutoScreenshot.cpp
app/Host/NativeRenderer.cpp
)
target_include_directories(XCNewEditorHost
target_include_directories(XCUIEditorHost
PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/app
${CMAKE_SOURCE_DIR}/engine/include
PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/include
${CMAKE_CURRENT_SOURCE_DIR}/src
${CMAKE_SOURCE_DIR}/engine/include
)
target_compile_definitions(XCNewEditorHost PUBLIC
target_compile_definitions(XCUIEditorHost PUBLIC
UNICODE
_UNICODE
)
if(MSVC)
target_compile_options(XCNewEditorHost PRIVATE /utf-8 /FS)
set_property(TARGET XCNewEditorHost PROPERTY
target_compile_options(XCUIEditorHost PRIVATE /utf-8 /FS)
set_property(TARGET XCUIEditorHost PROPERTY
MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>DLL")
endif()
target_link_libraries(XCNewEditorHost PUBLIC
target_link_libraries(XCUIEditorHost PUBLIC
XCEngine
d2d1.lib
dwrite.lib
windowscodecs.lib
)
if(XCENGINE_BUILD_NEW_EDITOR)
add_executable(XCNewEditorApp WIN32
src/main.cpp
src/Host/Application.cpp
${NEW_EDITOR_RESOURCE_FILES}
if(XCENGINE_BUILD_XCUI_EDITOR_APP)
add_executable(XCUIEditorApp WIN32
app/main.cpp
app/Application.cpp
${XCUI_EDITOR_RESOURCE_FILES}
)
target_include_directories(XCNewEditorApp PRIVATE
target_include_directories(XCUIEditorApp PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/app
${CMAKE_CURRENT_SOURCE_DIR}/include
${CMAKE_CURRENT_SOURCE_DIR}/src
${CMAKE_SOURCE_DIR}/engine/include
)
target_compile_definitions(XCNewEditorApp PRIVATE
target_compile_definitions(XCUIEditorApp PRIVATE
UNICODE
_UNICODE
XCNEWEDITOR_REPO_ROOT="${XCNEWEDITOR_REPO_ROOT_PATH}"
XCUIEDITOR_REPO_ROOT="${XCUIEDITOR_REPO_ROOT_PATH}"
)
if(MSVC)
target_compile_options(XCNewEditorApp PRIVATE /utf-8 /FS)
set_property(TARGET XCNewEditorApp PROPERTY
target_compile_options(XCUIEditorApp PRIVATE /utf-8 /FS)
set_property(TARGET XCUIEditorApp PROPERTY
MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>DLL")
endif()
target_link_libraries(XCNewEditorApp PRIVATE
XCNewEditorLib
XCNewEditorHost
target_link_libraries(XCUIEditorApp PRIVATE
XCUIEditorLib
XCUIEditorHost
)
set_target_properties(XCNewEditorApp PROPERTIES
OUTPUT_NAME "XCNewEditor"
set_target_properties(XCUIEditorApp PROPERTIES
OUTPUT_NAME "XCUIEditor"
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/bin"
)
endif()
source_group(TREE "${CMAKE_CURRENT_SOURCE_DIR}" FILES ${NEW_EDITOR_RESOURCE_FILES})
source_group(TREE "${CMAKE_CURRENT_SOURCE_DIR}" FILES ${XCUI_EDITOR_RESOURCE_FILES})

View File

@@ -11,11 +11,11 @@
#include <unordered_set>
#include <vector>
#ifndef XCNEWEDITOR_REPO_ROOT
#define XCNEWEDITOR_REPO_ROOT "."
#ifndef XCUIEDITOR_REPO_ROOT
#define XCUIEDITOR_REPO_ROOT "."
#endif
namespace XCEngine::NewEditor {
namespace XCEngine::UI::Editor {
namespace {
@@ -30,8 +30,8 @@ using ::XCEngine::UI::UIRect;
using ::XCEngine::UI::Runtime::UIScreenFrameInput;
using ::XCEngine::Input::KeyCode;
constexpr const wchar_t* kWindowClassName = L"XCNewEditorShellHost";
constexpr const wchar_t* kWindowTitle = L"XCUI New Editor";
constexpr const wchar_t* kWindowClassName = L"XCUIEditorShellHost";
constexpr const wchar_t* kWindowTitle = L"XCUI Editor";
constexpr auto kReloadPollInterval = std::chrono::milliseconds(150);
constexpr UIColor kOverlayBgColor(0.10f, 0.10f, 0.10f, 0.95f);
@@ -561,7 +561,7 @@ void Application::AppendRuntimeOverlay(UIDrawData& drawData, float width, float
const float panelHeight = 38.0f + static_cast<float>(detailLines.size()) * 18.0f;
const UIRect panelRect(width - panelWidth - 16.0f, height - panelHeight - 42.0f, panelWidth, panelHeight);
UIDrawList& overlay = drawData.EmplaceDrawList("NewEditor Runtime Overlay");
UIDrawList& overlay = drawData.EmplaceDrawList("XCUI Editor Runtime Overlay");
overlay.AddFilledRect(panelRect, kOverlayBgColor, 10.0f);
overlay.AddRectOutline(panelRect, kOverlayBorderColor, 1.0f, 10.0f);
overlay.AddFilledRect(
@@ -589,7 +589,7 @@ void Application::AppendRuntimeOverlay(UIDrawData& drawData, float width, float
}
std::filesystem::path Application::ResolveRepoRootPath() {
std::string root = XCNEWEDITOR_REPO_ROOT;
std::string root = XCUIEDITOR_REPO_ROOT;
if (root.size() >= 2u && root.front() == '"' && root.back() == '"') {
root = root.substr(1u, root.size() - 2u);
}
@@ -717,9 +717,9 @@ LRESULT CALLBACK Application::WndProc(HWND hwnd, UINT message, WPARAM wParam, LP
return DefWindowProcW(hwnd, message, wParam, lParam);
}
int RunNewEditor(HINSTANCE hInstance, int nCmdShow) {
int RunXCUIEditorApp(HINSTANCE hInstance, int nCmdShow) {
Application application;
return application.Run(hInstance, nCmdShow);
}
} // namespace XCEngine::NewEditor
} // namespace XCEngine::UI::Editor

View File

@@ -4,11 +4,11 @@
#define NOMINMAX
#endif
#include <XCNewEditor/Host/AutoScreenshot.h>
#include <XCNewEditor/Host/InputModifierTracker.h>
#include <XCNewEditor/Host/NativeRenderer.h>
#include "Host/AutoScreenshot.h"
#include "Host/InputModifierTracker.h"
#include "Host/NativeRenderer.h"
#include "editor/EditorShellAsset.h"
#include "Core/EditorShellAsset.h"
#include <XCEngine/UI/Runtime/UIScreenDocumentHost.h>
#include <XCEngine/UI/Runtime/UIScreenPlayer.h>
@@ -22,7 +22,7 @@
#include <string>
#include <vector>
namespace XCEngine::NewEditor {
namespace XCEngine::UI::Editor {
class Application {
public:
@@ -59,8 +59,8 @@ private:
HWND m_hwnd = nullptr;
HINSTANCE m_hInstance = nullptr;
ATOM m_windowClassAtom = 0;
::XCEngine::XCUI::Host::NativeRenderer m_renderer;
::XCEngine::XCUI::Host::AutoScreenshotController m_autoScreenshot;
::XCEngine::UI::Editor::Host::NativeRenderer m_renderer;
::XCEngine::UI::Editor::Host::AutoScreenshotController m_autoScreenshot;
::XCEngine::UI::Runtime::UIDocumentScreenHost m_documentHost;
::XCEngine::UI::Runtime::UIScreenPlayer m_screenPlayer;
::XCEngine::UI::Runtime::UIScreenAsset m_screenAsset = {};
@@ -71,13 +71,13 @@ private:
std::chrono::steady_clock::time_point m_lastReloadPollTime = {};
std::uint64_t m_frameIndex = 0;
std::vector<::XCEngine::UI::UIInputEvent> m_pendingInputEvents = {};
::XCEngine::XCUI::Host::InputModifierTracker m_inputModifierTracker = {};
::XCEngine::UI::Editor::Host::InputModifierTracker m_inputModifierTracker = {};
bool m_trackingMouseLeave = false;
bool m_useStructuredScreen = false;
std::string m_runtimeStatus = {};
std::string m_runtimeError = {};
};
int RunNewEditor(HINSTANCE hInstance, int nCmdShow);
int RunXCUIEditorApp(HINSTANCE hInstance, int nCmdShow);
} // namespace XCEngine::NewEditor
} // namespace XCEngine::UI::Editor

View File

@@ -1,6 +1,6 @@
#include <XCNewEditor/Host/AutoScreenshot.h>
#include "AutoScreenshot.h"
#include <XCNewEditor/Host/NativeRenderer.h>
#include "NativeRenderer.h"
#include <chrono>
#include <cctype>
@@ -8,7 +8,7 @@
#include <sstream>
#include <system_error>
namespace XCEngine::XCUI::Host {
namespace XCEngine::UI::Editor::Host {
void AutoScreenshotController::Initialize(const std::filesystem::path& captureRoot) {
m_captureRoot = captureRoot.lexically_normal();
@@ -163,4 +163,4 @@ std::string AutoScreenshotController::SanitizeReason(std::string_view reason) {
return sanitized.empty() ? "capture" : sanitized;
}
} // namespace XCEngine::XCUI::Host
} // namespace XCEngine::UI::Editor::Host

View File

@@ -11,7 +11,7 @@
#include <string>
#include <string_view>
namespace XCEngine::XCUI::Host {
namespace XCEngine::UI::Editor::Host {
class NativeRenderer;
@@ -49,4 +49,4 @@ private:
bool m_capturePending = false;
};
} // namespace XCEngine::XCUI::Host
} // namespace XCEngine::UI::Editor::Host

View File

@@ -11,7 +11,7 @@
#include <cstddef>
#include <cstdint>
namespace XCEngine::XCUI::Host {
namespace XCEngine::UI::Editor::Host {
class InputModifierTracker {
public:
@@ -170,4 +170,4 @@ private:
bool m_rightSuper = false;
};
} // namespace XCEngine::XCUI::Host
} // namespace XCEngine::UI::Editor::Host

View File

@@ -1,10 +1,10 @@
#include <XCNewEditor/Host/NativeRenderer.h>
#include "NativeRenderer.h"
#include <algorithm>
#include <cmath>
#include <filesystem>
namespace XCEngine::XCUI::Host {
namespace XCEngine::UI::Editor::Host {
namespace {
@@ -482,4 +482,4 @@ std::wstring NativeRenderer::Utf8ToWide(std::string_view text) {
return wideText;
}
} // namespace XCEngine::XCUI::Host
} // namespace XCEngine::UI::Editor::Host

View File

@@ -18,7 +18,7 @@
#include <unordered_map>
#include <vector>
namespace XCEngine::XCUI::Host {
namespace XCEngine::UI::Editor::Host {
class NativeRenderer {
public:
@@ -62,4 +62,4 @@ private:
bool m_wicComInitialized = false;
};
} // namespace XCEngine::XCUI::Host
} // namespace XCEngine::UI::Editor::Host

5
new_editor/app/main.cpp Normal file
View File

@@ -0,0 +1,5 @@
#include "Application.h"
int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE, LPWSTR, int nCmdShow) {
return XCEngine::UI::Editor::RunXCUIEditorApp(hInstance, nCmdShow);
}

View File

@@ -1,12 +1,12 @@
#pragma once
#include <XCNewEditor/Editor/UIEditorCommandRegistry.h>
#include <XCEditor/Core/UIEditorCommandRegistry.h>
#include <cstdint>
#include <string>
#include <string_view>
namespace XCEngine::NewEditor {
namespace XCEngine::UI::Editor {
enum class UIEditorCommandEvaluationCode : std::uint8_t {
None = 0,
@@ -70,4 +70,4 @@ private:
UIEditorCommandRegistry m_commandRegistry = {};
};
} // namespace XCEngine::NewEditor
} // namespace XCEngine::UI::Editor

View File

@@ -1,13 +1,13 @@
#pragma once
#include <XCNewEditor/Editor/UIEditorWorkspaceController.h>
#include <XCEditor/Core/UIEditorWorkspaceController.h>
#include <cstdint>
#include <string>
#include <string_view>
#include <vector>
namespace XCEngine::NewEditor {
namespace XCEngine::UI::Editor {
enum class UIEditorCommandPanelSource : std::uint8_t {
None = 0,
@@ -60,4 +60,4 @@ const UIEditorCommandDescriptor* FindUIEditorCommandDescriptor(
UIEditorCommandRegistryValidationResult ValidateUIEditorCommandRegistry(
const UIEditorCommandRegistry& registry);
} // namespace XCEngine::NewEditor
} // namespace XCEngine::UI::Editor

View File

@@ -1,13 +1,13 @@
#pragma once
#include <XCNewEditor/Editor/UIEditorCommandDispatcher.h>
#include <XCEditor/Core/UIEditorCommandDispatcher.h>
#include <cstdint>
#include <string>
#include <string_view>
#include <vector>
namespace XCEngine::NewEditor {
namespace XCEngine::UI::Editor {
class UIEditorShortcutManager;
@@ -113,4 +113,4 @@ UIEditorResolvedMenuModel BuildUIEditorResolvedMenuModel(
const UIEditorWorkspaceController& controller,
const UIEditorShortcutManager* shortcutManager = nullptr);
} // namespace XCEngine::NewEditor
} // namespace XCEngine::UI::Editor

View File

@@ -5,7 +5,7 @@
#include <string_view>
#include <vector>
namespace XCEngine::NewEditor {
namespace XCEngine::UI::Editor {
enum class UIEditorPanelPresentationKind : std::uint8_t {
Placeholder = 0
@@ -49,4 +49,4 @@ const UIEditorPanelDescriptor* FindUIEditorPanelDescriptor(
UIEditorPanelRegistryValidationResult ValidateUIEditorPanelRegistry(
const UIEditorPanelRegistry& registry);
} // namespace XCEngine::NewEditor
} // namespace XCEngine::UI::Editor

View File

@@ -1,6 +1,6 @@
#pragma once
#include <XCNewEditor/Editor/UIEditorCommandDispatcher.h>
#include <XCEditor/Core/UIEditorCommandDispatcher.h>
#include <XCEngine/UI/Input/UIShortcutRegistry.h>
@@ -8,7 +8,7 @@
#include <string>
#include <string_view>
namespace XCEngine::NewEditor {
namespace XCEngine::UI::Editor {
enum class UIEditorShortcutManagerValidationCode : std::uint8_t {
None = 0,
@@ -97,4 +97,4 @@ private:
XCEngine::UI::UIShortcutRegistry m_shortcutRegistry = {};
};
} // namespace XCEngine::NewEditor
} // namespace XCEngine::UI::Editor

View File

@@ -1,14 +1,14 @@
#pragma once
#include <XCNewEditor/Editor/UIEditorWorkspaceLayoutPersistence.h>
#include <XCNewEditor/Editor/UIEditorWorkspaceSession.h>
#include <XCEditor/Core/UIEditorWorkspaceLayoutPersistence.h>
#include <XCEditor/Core/UIEditorWorkspaceSession.h>
#include <cstdint>
#include <string>
#include <string_view>
#include <vector>
namespace XCEngine::NewEditor {
namespace XCEngine::UI::Editor {
enum class UIEditorWorkspaceCommandKind : std::uint8_t {
OpenPanel = 0,
@@ -135,4 +135,4 @@ UIEditorWorkspaceController BuildDefaultUIEditorWorkspaceController(
const UIEditorPanelRegistry& panelRegistry,
const UIEditorWorkspaceModel& workspace);
} // namespace XCEngine::NewEditor
} // namespace XCEngine::UI::Editor

View File

@@ -1,12 +1,12 @@
#pragma once
#include <XCNewEditor/Editor/UIEditorWorkspaceSession.h>
#include <XCEditor/Core/UIEditorWorkspaceSession.h>
#include <cstdint>
#include <string>
#include <string_view>
namespace XCEngine::NewEditor {
namespace XCEngine::UI::Editor {
struct UIEditorWorkspaceLayoutSnapshot {
UIEditorWorkspaceModel workspace = {};
@@ -52,4 +52,4 @@ UIEditorWorkspaceLayoutLoadResult DeserializeUIEditorWorkspaceLayoutSnapshot(
const UIEditorPanelRegistry& panelRegistry,
std::string_view serializedLayout);
} // namespace XCEngine::NewEditor
} // namespace XCEngine::UI::Editor

View File

@@ -6,7 +6,7 @@
#include <string_view>
#include <vector>
namespace XCEngine::NewEditor {
namespace XCEngine::UI::Editor {
enum class UIEditorWorkspaceNodeKind : std::uint8_t {
Panel = 0,
@@ -115,4 +115,4 @@ bool TryActivateUIEditorWorkspacePanel(
UIEditorWorkspaceModel& workspace,
std::string_view panelId);
} // namespace XCEngine::NewEditor
} // namespace XCEngine::UI::Editor

View File

@@ -1,14 +1,14 @@
#pragma once
#include <XCNewEditor/Editor/UIEditorPanelRegistry.h>
#include <XCNewEditor/Editor/UIEditorWorkspaceModel.h>
#include <XCEditor/Core/UIEditorPanelRegistry.h>
#include <XCEditor/Core/UIEditorWorkspaceModel.h>
#include <cstdint>
#include <string>
#include <string_view>
#include <vector>
namespace XCEngine::NewEditor {
namespace XCEngine::UI::Editor {
struct UIEditorPanelSessionState {
std::string panelId = {};
@@ -95,4 +95,4 @@ bool TryActivateUIEditorWorkspacePanel(
UIEditorWorkspaceSession& session,
std::string_view panelId);
} // namespace XCEngine::NewEditor
} // namespace XCEngine::UI::Editor

View File

@@ -5,9 +5,7 @@
#include <cstdint>
#include <string_view>
namespace XCEngine {
namespace UI {
namespace Widgets {
namespace XCEngine::UI::Editor::Widgets {
enum class UIEditorCollectionPrimitiveKind : std::uint8_t {
None = 0,
@@ -27,15 +25,13 @@ bool IsUIEditorCollectionPrimitiveHoverable(UIEditorCollectionPrimitiveKind kind
bool DoesUIEditorCollectionPrimitiveClipChildren(UIEditorCollectionPrimitiveKind kind);
float ResolveUIEditorCollectionPrimitivePadding(
UIEditorCollectionPrimitiveKind kind,
const Style::UITheme& theme);
const ::XCEngine::UI::Style::UITheme& theme);
float ResolveUIEditorCollectionPrimitiveDefaultHeight(
UIEditorCollectionPrimitiveKind kind,
const Style::UITheme& theme);
const ::XCEngine::UI::Style::UITheme& theme);
float ResolveUIEditorCollectionPrimitiveIndent(
UIEditorCollectionPrimitiveKind kind,
const Style::UITheme& theme,
const ::XCEngine::UI::Style::UITheme& theme,
float indentLevel);
} // namespace Widgets
} // namespace UI
} // namespace XCEngine
} // namespace XCEngine::UI::Editor::Widgets

View File

@@ -5,9 +5,7 @@
#include <string>
#include <string_view>
namespace XCEngine {
namespace UI {
namespace Widgets {
namespace XCEngine::UI::Editor::Widgets {
struct UIEditorPanelChromeState {
bool active = false;
@@ -33,27 +31,35 @@ struct UIEditorPanelChromeMetrics {
};
struct UIEditorPanelChromePalette {
UIColor surfaceColor = UIColor(9.0f / 255.0f, 13.0f / 255.0f, 18.0f / 255.0f, 212.0f / 255.0f);
UIColor borderColor = UIColor(53.0f / 255.0f, 72.0f / 255.0f, 96.0f / 255.0f, 1.0f);
UIColor accentColor = UIColor(84.0f / 255.0f, 176.0f / 255.0f, 244.0f / 255.0f, 1.0f);
UIColor hoveredAccentColor = UIColor(1.0f, 206.0f / 255.0f, 112.0f / 255.0f, 1.0f);
UIColor headerColor = UIColor(13.0f / 255.0f, 20.0f / 255.0f, 28.0f / 255.0f, 242.0f / 255.0f);
UIColor textPrimary = UIColor(232.0f / 255.0f, 238.0f / 255.0f, 246.0f / 255.0f, 1.0f);
UIColor textSecondary = UIColor(150.0f / 255.0f, 164.0f / 255.0f, 184.0f / 255.0f, 1.0f);
UIColor textMuted = UIColor(108.0f / 255.0f, 123.0f / 255.0f, 145.0f / 255.0f, 1.0f);
::XCEngine::UI::UIColor surfaceColor =
::XCEngine::UI::UIColor(9.0f / 255.0f, 13.0f / 255.0f, 18.0f / 255.0f, 212.0f / 255.0f);
::XCEngine::UI::UIColor borderColor =
::XCEngine::UI::UIColor(53.0f / 255.0f, 72.0f / 255.0f, 96.0f / 255.0f, 1.0f);
::XCEngine::UI::UIColor accentColor =
::XCEngine::UI::UIColor(84.0f / 255.0f, 176.0f / 255.0f, 244.0f / 255.0f, 1.0f);
::XCEngine::UI::UIColor hoveredAccentColor =
::XCEngine::UI::UIColor(1.0f, 206.0f / 255.0f, 112.0f / 255.0f, 1.0f);
::XCEngine::UI::UIColor headerColor =
::XCEngine::UI::UIColor(13.0f / 255.0f, 20.0f / 255.0f, 28.0f / 255.0f, 242.0f / 255.0f);
::XCEngine::UI::UIColor textPrimary =
::XCEngine::UI::UIColor(232.0f / 255.0f, 238.0f / 255.0f, 246.0f / 255.0f, 1.0f);
::XCEngine::UI::UIColor textSecondary =
::XCEngine::UI::UIColor(150.0f / 255.0f, 164.0f / 255.0f, 184.0f / 255.0f, 1.0f);
::XCEngine::UI::UIColor textMuted =
::XCEngine::UI::UIColor(108.0f / 255.0f, 123.0f / 255.0f, 145.0f / 255.0f, 1.0f);
};
inline UIRect BuildUIEditorPanelChromeHeaderRect(
const UIRect& panelRect,
inline ::XCEngine::UI::UIRect BuildUIEditorPanelChromeHeaderRect(
const ::XCEngine::UI::UIRect& panelRect,
const UIEditorPanelChromeMetrics& metrics = {}) {
return UIRect(
return ::XCEngine::UI::UIRect(
panelRect.x,
panelRect.y,
panelRect.width,
metrics.headerHeight);
}
inline UIColor ResolveUIEditorPanelChromeBorderColor(
inline ::XCEngine::UI::UIColor ResolveUIEditorPanelChromeBorderColor(
const UIEditorPanelChromeState& state,
const UIEditorPanelChromePalette& palette = {}) {
if (state.active) {
@@ -76,8 +82,8 @@ inline float ResolveUIEditorPanelChromeBorderThickness(
}
inline void AppendUIEditorPanelChromeBackground(
UIDrawList& drawList,
const UIRect& panelRect,
::XCEngine::UI::UIDrawList& drawList,
const ::XCEngine::UI::UIRect& panelRect,
const UIEditorPanelChromeState& state,
const UIEditorPanelChromePalette& palette = {},
const UIEditorPanelChromeMetrics& metrics = {}) {
@@ -94,33 +100,33 @@ inline void AppendUIEditorPanelChromeBackground(
}
inline void AppendUIEditorPanelChromeForeground(
UIDrawList& drawList,
const UIRect& panelRect,
::XCEngine::UI::UIDrawList& drawList,
const ::XCEngine::UI::UIRect& panelRect,
const UIEditorPanelChromeText& text,
const UIEditorPanelChromePalette& palette = {},
const UIEditorPanelChromeMetrics& metrics = {}) {
if (!text.title.empty()) {
drawList.AddText(
UIPoint(panelRect.x + metrics.titleInsetX, panelRect.y + metrics.titleInsetY),
::XCEngine::UI::UIPoint(panelRect.x + metrics.titleInsetX, panelRect.y + metrics.titleInsetY),
std::string(text.title),
palette.textPrimary);
}
if (!text.subtitle.empty()) {
drawList.AddText(
UIPoint(panelRect.x + metrics.titleInsetX, panelRect.y + metrics.subtitleInsetY),
::XCEngine::UI::UIPoint(panelRect.x + metrics.titleInsetX, panelRect.y + metrics.subtitleInsetY),
std::string(text.subtitle),
palette.textSecondary);
}
if (!text.footer.empty()) {
drawList.AddText(
UIPoint(panelRect.x + metrics.footerInsetX, panelRect.y + panelRect.height - metrics.footerInsetBottom),
::XCEngine::UI::UIPoint(
panelRect.x + metrics.footerInsetX,
panelRect.y + panelRect.height - metrics.footerInsetBottom),
std::string(text.footer),
palette.textMuted);
}
}
} // namespace Widgets
} // namespace UI
} // namespace XCEngine
} // namespace XCEngine::UI::Editor::Widgets

View File

@@ -2,7 +2,7 @@
#include <utility>
namespace XCEngine::NewEditor {
namespace XCEngine::UI::Editor {
namespace {
@@ -103,4 +103,4 @@ EditorShellAssetValidationResult ValidateEditorShellAsset(const EditorShellAsset
return {};
}
} // namespace XCEngine::NewEditor
} // namespace XCEngine::UI::Editor

View File

@@ -1,17 +1,17 @@
#pragma once
#include <XCNewEditor/Editor/UIEditorPanelRegistry.h>
#include <XCNewEditor/Editor/UIEditorWorkspaceModel.h>
#include <XCNewEditor/Editor/UIEditorWorkspaceSession.h>
#include <XCEditor/Core/UIEditorPanelRegistry.h>
#include <XCEditor/Core/UIEditorWorkspaceModel.h>
#include <XCEditor/Core/UIEditorWorkspaceSession.h>
#include <cstdint>
#include <filesystem>
#include <string>
namespace XCEngine::NewEditor {
namespace XCEngine::UI::Editor {
struct EditorShellAsset {
std::string screenId = "new_editor.shell";
std::string screenId = "editor.shell";
std::filesystem::path documentPath = {};
std::filesystem::path themePath = {};
std::filesystem::path captureRootPath = {};
@@ -42,4 +42,4 @@ struct EditorShellAssetValidationResult {
EditorShellAsset BuildDefaultEditorShellAsset(const std::filesystem::path& repoRoot);
EditorShellAssetValidationResult ValidateEditorShellAsset(const EditorShellAsset& asset);
} // namespace XCEngine::NewEditor
} // namespace XCEngine::UI::Editor

View File

@@ -1,8 +1,8 @@
#include <XCNewEditor/Editor/UIEditorCommandDispatcher.h>
#include <XCEditor/Core/UIEditorCommandDispatcher.h>
#include <utility>
namespace XCEngine::NewEditor {
namespace XCEngine::UI::Editor {
namespace {
@@ -171,4 +171,4 @@ UIEditorCommandDispatchResult UIEditorCommandDispatcher::Dispatch(
: "Editor command dispatch was rejected.");
}
} // namespace XCEngine::NewEditor
} // namespace XCEngine::UI::Editor

View File

@@ -1,9 +1,9 @@
#include <XCNewEditor/Editor/UIEditorCommandRegistry.h>
#include <XCEditor/Core/UIEditorCommandRegistry.h>
#include <unordered_set>
#include <utility>
namespace XCEngine::NewEditor {
namespace XCEngine::UI::Editor {
namespace {
@@ -127,4 +127,4 @@ UIEditorCommandRegistryValidationResult ValidateUIEditorCommandRegistry(
return {};
}
} // namespace XCEngine::NewEditor
} // namespace XCEngine::UI::Editor

View File

@@ -1,11 +1,11 @@
#include <XCNewEditor/Editor/UIEditorMenuModel.h>
#include <XCEditor/Core/UIEditorMenuModel.h>
#include <XCNewEditor/Editor/UIEditorShortcutManager.h>
#include <XCEditor/Core/UIEditorShortcutManager.h>
#include <utility>
#include <unordered_set>
namespace XCEngine::NewEditor {
namespace XCEngine::UI::Editor {
namespace {
@@ -262,4 +262,4 @@ UIEditorResolvedMenuModel BuildUIEditorResolvedMenuModel(
return resolved;
}
} // namespace XCEngine::NewEditor
} // namespace XCEngine::UI::Editor

View File

@@ -1,9 +1,9 @@
#include <XCNewEditor/Editor/UIEditorPanelRegistry.h>
#include <XCEditor/Core/UIEditorPanelRegistry.h>
#include <unordered_set>
#include <utility>
namespace XCEngine::NewEditor {
namespace XCEngine::UI::Editor {
namespace {
@@ -71,4 +71,4 @@ UIEditorPanelRegistryValidationResult ValidateUIEditorPanelRegistry(
return {};
}
} // namespace XCEngine::NewEditor
} // namespace XCEngine::UI::Editor

View File

@@ -1,10 +1,10 @@
#include <XCNewEditor/Editor/UIEditorShortcutManager.h>
#include <XCEditor/Core/UIEditorShortcutManager.h>
#include <XCEngine/Input/InputTypes.h>
#include <utility>
namespace XCEngine::NewEditor {
namespace XCEngine::UI::Editor {
namespace {
@@ -341,4 +341,4 @@ UIEditorShortcutDispatchResult UIEditorShortcutManager::Dispatch(
return result;
}
} // namespace XCEngine::NewEditor
} // namespace XCEngine::UI::Editor

View File

@@ -1,8 +1,8 @@
#include <XCNewEditor/Editor/UIEditorWorkspaceController.h>
#include <XCEditor/Core/UIEditorWorkspaceController.h>
#include <utility>
namespace XCEngine::NewEditor {
namespace XCEngine::UI::Editor {
namespace {
@@ -397,4 +397,4 @@ UIEditorWorkspaceController BuildDefaultUIEditorWorkspaceController(
BuildDefaultUIEditorWorkspaceSession(panelRegistry, workspace));
}
} // namespace XCEngine::NewEditor
} // namespace XCEngine::UI::Editor

View File

@@ -1,4 +1,4 @@
#include <XCNewEditor/Editor/UIEditorWorkspaceLayoutPersistence.h>
#include <XCEditor/Core/UIEditorWorkspaceLayoutPersistence.h>
#include <iomanip>
#include <limits>
@@ -7,7 +7,7 @@
#include <utility>
#include <vector>
namespace XCEngine::NewEditor {
namespace XCEngine::UI::Editor {
namespace {
@@ -494,4 +494,4 @@ UIEditorWorkspaceLayoutLoadResult DeserializeUIEditorWorkspaceLayoutSnapshot(
return result;
}
} // namespace XCEngine::NewEditor
} // namespace XCEngine::UI::Editor

View File

@@ -1,11 +1,11 @@
#include <XCNewEditor/Editor/UIEditorPanelRegistry.h>
#include <XCNewEditor/Editor/UIEditorWorkspaceModel.h>
#include <XCEditor/Core/UIEditorPanelRegistry.h>
#include <XCEditor/Core/UIEditorWorkspaceModel.h>
#include <cmath>
#include <unordered_set>
#include <utility>
namespace XCEngine::NewEditor {
namespace XCEngine::UI::Editor {
namespace {
@@ -354,4 +354,4 @@ bool TryActivateUIEditorWorkspacePanel(
return true;
}
} // namespace XCEngine::NewEditor
} // namespace XCEngine::UI::Editor

View File

@@ -1,9 +1,9 @@
#include <XCNewEditor/Editor/UIEditorWorkspaceSession.h>
#include <XCEditor/Core/UIEditorWorkspaceSession.h>
#include <unordered_set>
#include <utility>
namespace XCEngine::NewEditor {
namespace XCEngine::UI::Editor {
namespace {
@@ -442,4 +442,4 @@ bool TryActivateUIEditorWorkspacePanel(
!AreUIEditorWorkspaceSessionsEquivalent(sessionBefore, session);
}
} // namespace XCEngine::NewEditor
} // namespace XCEngine::UI::Editor

View File

@@ -1,18 +1,16 @@
#include <XCNewEditor/Widgets/UIEditorCollectionPrimitives.h>
#include <XCEditor/Widgets/UIEditorCollectionPrimitives.h>
namespace XCEngine {
namespace UI {
namespace Widgets {
namespace XCEngine::UI::Editor::Widgets {
namespace {
float ResolveFloatToken(
const Style::UITheme& theme,
const ::XCEngine::UI::Style::UITheme& theme,
const char* tokenName,
float fallbackValue) {
const Style::UITokenResolveResult result =
theme.ResolveToken(tokenName, Style::UIStyleValueType::Float);
if (result.status != Style::UITokenResolveStatus::Resolved) {
const ::XCEngine::UI::Style::UITokenResolveResult result =
theme.ResolveToken(tokenName, ::XCEngine::UI::Style::UIStyleValueType::Float);
if (result.status != ::XCEngine::UI::Style::UITokenResolveStatus::Resolved) {
return fallbackValue;
}
@@ -76,7 +74,7 @@ bool DoesUIEditorCollectionPrimitiveClipChildren(UIEditorCollectionPrimitiveKind
float ResolveUIEditorCollectionPrimitivePadding(
UIEditorCollectionPrimitiveKind kind,
const Style::UITheme& theme) {
const ::XCEngine::UI::Style::UITheme& theme) {
return kind == UIEditorCollectionPrimitiveKind::TreeView ||
kind == UIEditorCollectionPrimitiveKind::ListView ||
kind == UIEditorCollectionPrimitiveKind::PropertySection
@@ -86,7 +84,7 @@ float ResolveUIEditorCollectionPrimitivePadding(
float ResolveUIEditorCollectionPrimitiveDefaultHeight(
UIEditorCollectionPrimitiveKind kind,
const Style::UITheme& theme) {
const ::XCEngine::UI::Style::UITheme& theme) {
switch (kind) {
case UIEditorCollectionPrimitiveKind::TreeItem:
return ResolveFloatToken(theme, "size.treeItemHeight", 28.0f);
@@ -103,13 +101,11 @@ float ResolveUIEditorCollectionPrimitiveDefaultHeight(
float ResolveUIEditorCollectionPrimitiveIndent(
UIEditorCollectionPrimitiveKind kind,
const Style::UITheme& theme,
const ::XCEngine::UI::Style::UITheme& theme,
float indentLevel) {
return kind == UIEditorCollectionPrimitiveKind::TreeItem
? indentLevel * ResolveFloatToken(theme, "size.treeIndent", 18.0f)
: 0.0f;
}
} // namespace Widgets
} // namespace UI
} // namespace XCEngine
} // namespace XCEngine::UI::Editor::Widgets

View File

@@ -1,5 +0,0 @@
#include "Host/Application.h"
int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE, LPWSTR, int nCmdShow) {
return XCEngine::NewEditor::RunNewEditor(hInstance, nCmdShow);
}

View File

@@ -1,5 +1,5 @@
<View
name="NewEditorShell"
name="EditorShell"
theme="../themes/editor_shell.xctheme"
style="EditorWorkspace">
<Column

View File

@@ -29,6 +29,8 @@ target_include_directories(editor_ui_integration_host
${CMAKE_CURRENT_SOURCE_DIR}/src
${CMAKE_SOURCE_DIR}/engine/include
${CMAKE_SOURCE_DIR}/new_editor/include
${CMAKE_SOURCE_DIR}/new_editor/app
${CMAKE_SOURCE_DIR}/new_editor/src
)
target_compile_definitions(editor_ui_integration_host
@@ -47,6 +49,6 @@ endif()
target_link_libraries(editor_ui_integration_host
PUBLIC
editor_ui_validation_registry
XCNewEditorHost
XCUIEditorHost
XCEngine
)

View File

@@ -6,9 +6,9 @@
#include "EditorValidationScenario.h"
#include <XCNewEditor/Host/AutoScreenshot.h>
#include <XCNewEditor/Host/InputModifierTracker.h>
#include <XCNewEditor/Host/NativeRenderer.h>
#include "Host/AutoScreenshot.h"
#include "Host/InputModifierTracker.h"
#include "Host/NativeRenderer.h"
#include <XCEngine/UI/Runtime/UIScreenDocumentHost.h>
#include <XCEngine/UI/Runtime/UIScreenPlayer.h>
@@ -58,8 +58,8 @@ private:
HWND m_hwnd = nullptr;
HINSTANCE m_hInstance = nullptr;
ATOM m_windowClassAtom = 0;
::XCEngine::XCUI::Host::NativeRenderer m_renderer;
::XCEngine::XCUI::Host::AutoScreenshotController m_autoScreenshot;
::XCEngine::UI::Editor::Host::NativeRenderer m_renderer;
::XCEngine::UI::Editor::Host::AutoScreenshotController m_autoScreenshot;
::XCEngine::UI::Runtime::UIDocumentScreenHost m_documentHost;
::XCEngine::UI::Runtime::UIScreenPlayer m_screenPlayer;
::XCEngine::UI::Runtime::UIScreenAsset m_screenAsset = {};
@@ -70,7 +70,7 @@ private:
std::chrono::steady_clock::time_point m_lastReloadPollTime = {};
std::uint64_t m_frameIndex = 0;
std::vector<::XCEngine::UI::UIInputEvent> m_pendingInputEvents = {};
::XCEngine::XCUI::Host::InputModifierTracker m_inputModifierTracker = {};
::XCEngine::UI::Editor::Host::InputModifierTracker m_inputModifierTracker = {};
bool m_trackingMouseLeave = false;
bool m_useStructuredScreen = false;
std::string m_runtimeStatus = {};

View File

@@ -5,6 +5,8 @@ add_executable(editor_ui_menu_bar_basic_validation WIN32
target_include_directories(editor_ui_menu_bar_basic_validation PRIVATE
${CMAKE_SOURCE_DIR}/engine/include
${CMAKE_SOURCE_DIR}/new_editor/include
${CMAKE_SOURCE_DIR}/new_editor/app
${CMAKE_SOURCE_DIR}/new_editor/src
)
target_compile_definitions(editor_ui_menu_bar_basic_validation PRIVATE
@@ -20,8 +22,8 @@ if(MSVC)
endif()
target_link_libraries(editor_ui_menu_bar_basic_validation PRIVATE
XCNewEditorLib
XCNewEditorHost
XCUIEditorLib
XCUIEditorHost
)
set_target_properties(editor_ui_menu_bar_basic_validation PROPERTIES

View File

@@ -2,11 +2,11 @@
#define NOMINMAX
#endif
#include <XCNewEditor/Editor/UIEditorCommandDispatcher.h>
#include <XCNewEditor/Editor/UIEditorMenuModel.h>
#include <XCNewEditor/Editor/UIEditorShortcutManager.h>
#include <XCNewEditor/Host/AutoScreenshot.h>
#include <XCNewEditor/Host/NativeRenderer.h>
#include <XCEditor/Core/UIEditorCommandDispatcher.h>
#include <XCEditor/Core/UIEditorMenuModel.h>
#include <XCEditor/Core/UIEditorShortcutManager.h>
#include "Host/AutoScreenshot.h"
#include "Host/NativeRenderer.h"
#include <XCEngine/Input/InputTypes.h>
#include <XCEngine/UI/DrawData.h>
@@ -29,37 +29,37 @@
namespace {
using XCEngine::Input::KeyCode;
using XCEngine::NewEditor::BuildDefaultUIEditorWorkspaceController;
using XCEngine::NewEditor::BuildUIEditorResolvedMenuModel;
using XCEngine::NewEditor::BuildUIEditorWorkspacePanel;
using XCEngine::NewEditor::BuildUIEditorWorkspaceSplit;
using XCEngine::NewEditor::BuildUIEditorWorkspaceTabStack;
using XCEngine::NewEditor::CollectUIEditorWorkspaceVisiblePanels;
using XCEngine::NewEditor::FindUIEditorPanelSessionState;
using XCEngine::NewEditor::GetUIEditorCommandDispatchStatusName;
using XCEngine::NewEditor::GetUIEditorMenuItemKindName;
using XCEngine::NewEditor::GetUIEditorWorkspaceCommandStatusName;
using XCEngine::NewEditor::UIEditorCommandDispatchResult;
using XCEngine::NewEditor::UIEditorCommandDispatcher;
using XCEngine::NewEditor::UIEditorCommandPanelSource;
using XCEngine::NewEditor::UIEditorCommandRegistry;
using XCEngine::NewEditor::UIEditorMenuCheckedStateSource;
using XCEngine::NewEditor::UIEditorMenuDescriptor;
using XCEngine::NewEditor::UIEditorMenuItemDescriptor;
using XCEngine::NewEditor::UIEditorMenuItemKind;
using XCEngine::NewEditor::UIEditorMenuModel;
using XCEngine::NewEditor::UIEditorPanelRegistry;
using XCEngine::NewEditor::UIEditorResolvedMenuDescriptor;
using XCEngine::NewEditor::UIEditorResolvedMenuItem;
using XCEngine::NewEditor::UIEditorResolvedMenuModel;
using XCEngine::NewEditor::UIEditorShortcutManager;
using XCEngine::NewEditor::UIEditorWorkspaceCommandKind;
using XCEngine::NewEditor::UIEditorWorkspaceCommandStatus;
using XCEngine::NewEditor::UIEditorWorkspaceController;
using XCEngine::NewEditor::UIEditorWorkspaceModel;
using XCEngine::NewEditor::UIEditorWorkspaceSession;
using XCEngine::NewEditor::UIEditorWorkspaceSplitAxis;
using XCEngine::NewEditor::ValidateUIEditorMenuModel;
using XCEngine::UI::Editor::BuildDefaultUIEditorWorkspaceController;
using XCEngine::UI::Editor::BuildUIEditorResolvedMenuModel;
using XCEngine::UI::Editor::BuildUIEditorWorkspacePanel;
using XCEngine::UI::Editor::BuildUIEditorWorkspaceSplit;
using XCEngine::UI::Editor::BuildUIEditorWorkspaceTabStack;
using XCEngine::UI::Editor::CollectUIEditorWorkspaceVisiblePanels;
using XCEngine::UI::Editor::FindUIEditorPanelSessionState;
using XCEngine::UI::Editor::GetUIEditorCommandDispatchStatusName;
using XCEngine::UI::Editor::GetUIEditorMenuItemKindName;
using XCEngine::UI::Editor::GetUIEditorWorkspaceCommandStatusName;
using XCEngine::UI::Editor::UIEditorCommandDispatchResult;
using XCEngine::UI::Editor::UIEditorCommandDispatcher;
using XCEngine::UI::Editor::UIEditorCommandPanelSource;
using XCEngine::UI::Editor::UIEditorCommandRegistry;
using XCEngine::UI::Editor::UIEditorMenuCheckedStateSource;
using XCEngine::UI::Editor::UIEditorMenuDescriptor;
using XCEngine::UI::Editor::UIEditorMenuItemDescriptor;
using XCEngine::UI::Editor::UIEditorMenuItemKind;
using XCEngine::UI::Editor::UIEditorMenuModel;
using XCEngine::UI::Editor::UIEditorPanelRegistry;
using XCEngine::UI::Editor::UIEditorResolvedMenuDescriptor;
using XCEngine::UI::Editor::UIEditorResolvedMenuItem;
using XCEngine::UI::Editor::UIEditorResolvedMenuModel;
using XCEngine::UI::Editor::UIEditorShortcutManager;
using XCEngine::UI::Editor::UIEditorWorkspaceCommandKind;
using XCEngine::UI::Editor::UIEditorWorkspaceCommandStatus;
using XCEngine::UI::Editor::UIEditorWorkspaceController;
using XCEngine::UI::Editor::UIEditorWorkspaceModel;
using XCEngine::UI::Editor::UIEditorWorkspaceSession;
using XCEngine::UI::Editor::UIEditorWorkspaceSplitAxis;
using XCEngine::UI::Editor::ValidateUIEditorMenuModel;
using XCEngine::UI::UIColor;
using XCEngine::UI::UIDrawData;
using XCEngine::UI::UIDrawList;
@@ -68,8 +68,8 @@ using XCEngine::UI::UIPoint;
using XCEngine::UI::UIRect;
using XCEngine::UI::UIShortcutBinding;
using XCEngine::UI::UIShortcutScope;
using XCEngine::XCUI::Host::AutoScreenshotController;
using XCEngine::XCUI::Host::NativeRenderer;
using XCEngine::UI::Editor::Host::AutoScreenshotController;
using XCEngine::UI::Editor::Host::NativeRenderer;
constexpr const wchar_t* kWindowClassName = L"XCUIEditorMenuBarBasicValidation";
constexpr const wchar_t* kWindowTitle = L"XCUI Editor | Menu Bar Basic";

View File

@@ -5,6 +5,8 @@ add_executable(editor_ui_layout_persistence_validation WIN32
target_include_directories(editor_ui_layout_persistence_validation PRIVATE
${CMAKE_SOURCE_DIR}/engine/include
${CMAKE_SOURCE_DIR}/new_editor/include
${CMAKE_SOURCE_DIR}/new_editor/app
${CMAKE_SOURCE_DIR}/new_editor/src
)
target_compile_definitions(editor_ui_layout_persistence_validation PRIVATE
@@ -20,8 +22,8 @@ if(MSVC)
endif()
target_link_libraries(editor_ui_layout_persistence_validation PRIVATE
XCNewEditorLib
XCNewEditorHost
XCUIEditorLib
XCUIEditorHost
)
set_target_properties(editor_ui_layout_persistence_validation PROPERTIES

View File

@@ -2,10 +2,10 @@
#define NOMINMAX
#endif
#include <XCNewEditor/Editor/UIEditorWorkspaceController.h>
#include <XCNewEditor/Editor/UIEditorWorkspaceLayoutPersistence.h>
#include <XCNewEditor/Host/AutoScreenshot.h>
#include <XCNewEditor/Host/NativeRenderer.h>
#include <XCEditor/Core/UIEditorWorkspaceController.h>
#include <XCEditor/Core/UIEditorWorkspaceLayoutPersistence.h>
#include "Host/AutoScreenshot.h"
#include "Host/NativeRenderer.h"
#include <XCEngine/UI/DrawData.h>
@@ -27,35 +27,35 @@
namespace {
using XCEngine::NewEditor::BuildDefaultUIEditorWorkspaceController;
using XCEngine::NewEditor::BuildDefaultUIEditorWorkspaceSession;
using XCEngine::NewEditor::BuildUIEditorWorkspacePanel;
using XCEngine::NewEditor::BuildUIEditorWorkspaceSplit;
using XCEngine::NewEditor::BuildUIEditorWorkspaceTabStack;
using XCEngine::NewEditor::CollectUIEditorWorkspaceVisiblePanels;
using XCEngine::NewEditor::FindUIEditorPanelSessionState;
using XCEngine::NewEditor::GetUIEditorWorkspaceCommandStatusName;
using XCEngine::NewEditor::GetUIEditorWorkspaceLayoutOperationStatusName;
using XCEngine::NewEditor::SerializeUIEditorWorkspaceLayoutSnapshot;
using XCEngine::NewEditor::UIEditorPanelRegistry;
using XCEngine::NewEditor::UIEditorWorkspaceCommand;
using XCEngine::NewEditor::UIEditorWorkspaceCommandKind;
using XCEngine::NewEditor::UIEditorWorkspaceCommandResult;
using XCEngine::NewEditor::UIEditorWorkspaceCommandStatus;
using XCEngine::NewEditor::UIEditorWorkspaceController;
using XCEngine::NewEditor::UIEditorWorkspaceLayoutOperationResult;
using XCEngine::NewEditor::UIEditorWorkspaceLayoutOperationStatus;
using XCEngine::NewEditor::UIEditorWorkspaceLayoutSnapshot;
using XCEngine::NewEditor::UIEditorWorkspaceModel;
using XCEngine::NewEditor::UIEditorWorkspaceSession;
using XCEngine::NewEditor::UIEditorWorkspaceSplitAxis;
using XCEngine::UI::Editor::BuildDefaultUIEditorWorkspaceController;
using XCEngine::UI::Editor::BuildDefaultUIEditorWorkspaceSession;
using XCEngine::UI::Editor::BuildUIEditorWorkspacePanel;
using XCEngine::UI::Editor::BuildUIEditorWorkspaceSplit;
using XCEngine::UI::Editor::BuildUIEditorWorkspaceTabStack;
using XCEngine::UI::Editor::CollectUIEditorWorkspaceVisiblePanels;
using XCEngine::UI::Editor::FindUIEditorPanelSessionState;
using XCEngine::UI::Editor::GetUIEditorWorkspaceCommandStatusName;
using XCEngine::UI::Editor::GetUIEditorWorkspaceLayoutOperationStatusName;
using XCEngine::UI::Editor::SerializeUIEditorWorkspaceLayoutSnapshot;
using XCEngine::UI::Editor::UIEditorPanelRegistry;
using XCEngine::UI::Editor::UIEditorWorkspaceCommand;
using XCEngine::UI::Editor::UIEditorWorkspaceCommandKind;
using XCEngine::UI::Editor::UIEditorWorkspaceCommandResult;
using XCEngine::UI::Editor::UIEditorWorkspaceCommandStatus;
using XCEngine::UI::Editor::UIEditorWorkspaceController;
using XCEngine::UI::Editor::UIEditorWorkspaceLayoutOperationResult;
using XCEngine::UI::Editor::UIEditorWorkspaceLayoutOperationStatus;
using XCEngine::UI::Editor::UIEditorWorkspaceLayoutSnapshot;
using XCEngine::UI::Editor::UIEditorWorkspaceModel;
using XCEngine::UI::Editor::UIEditorWorkspaceSession;
using XCEngine::UI::Editor::UIEditorWorkspaceSplitAxis;
using XCEngine::UI::UIColor;
using XCEngine::UI::UIDrawData;
using XCEngine::UI::UIDrawList;
using XCEngine::UI::UIPoint;
using XCEngine::UI::UIRect;
using XCEngine::XCUI::Host::AutoScreenshotController;
using XCEngine::XCUI::Host::NativeRenderer;
using XCEngine::UI::Editor::Host::AutoScreenshotController;
using XCEngine::UI::Editor::Host::NativeRenderer;
constexpr const wchar_t* kWindowClassName = L"XCUIEditorLayoutPersistenceValidation";
constexpr const wchar_t* kWindowTitle = L"XCUI Editor | Layout Persistence";

View File

@@ -5,6 +5,8 @@ add_executable(editor_ui_panel_session_flow_validation WIN32
target_include_directories(editor_ui_panel_session_flow_validation PRIVATE
${CMAKE_SOURCE_DIR}/engine/include
${CMAKE_SOURCE_DIR}/new_editor/include
${CMAKE_SOURCE_DIR}/new_editor/app
${CMAKE_SOURCE_DIR}/new_editor/src
)
target_compile_definitions(editor_ui_panel_session_flow_validation PRIVATE
@@ -20,8 +22,8 @@ if(MSVC)
endif()
target_link_libraries(editor_ui_panel_session_flow_validation PRIVATE
XCNewEditorLib
XCNewEditorHost
XCUIEditorLib
XCUIEditorHost
)
set_target_properties(editor_ui_panel_session_flow_validation PROPERTIES

View File

@@ -2,9 +2,9 @@
#define NOMINMAX
#endif
#include <XCNewEditor/Editor/UIEditorWorkspaceController.h>
#include <XCNewEditor/Host/AutoScreenshot.h>
#include <XCNewEditor/Host/NativeRenderer.h>
#include <XCEditor/Core/UIEditorWorkspaceController.h>
#include "Host/AutoScreenshot.h"
#include "Host/NativeRenderer.h"
#include <XCEngine/UI/DrawData.h>
@@ -25,29 +25,29 @@
namespace {
using XCEngine::NewEditor::BuildDefaultUIEditorWorkspaceController;
using XCEngine::NewEditor::BuildUIEditorWorkspacePanel;
using XCEngine::NewEditor::BuildUIEditorWorkspaceSplit;
using XCEngine::NewEditor::BuildUIEditorWorkspaceTabStack;
using XCEngine::NewEditor::CollectUIEditorWorkspaceVisiblePanels;
using XCEngine::NewEditor::FindUIEditorPanelSessionState;
using XCEngine::NewEditor::GetUIEditorWorkspaceCommandKindName;
using XCEngine::NewEditor::GetUIEditorWorkspaceCommandStatusName;
using XCEngine::NewEditor::UIEditorPanelRegistry;
using XCEngine::NewEditor::UIEditorWorkspaceCommand;
using XCEngine::NewEditor::UIEditorWorkspaceCommandKind;
using XCEngine::NewEditor::UIEditorWorkspaceCommandResult;
using XCEngine::NewEditor::UIEditorWorkspaceController;
using XCEngine::NewEditor::UIEditorWorkspaceModel;
using XCEngine::NewEditor::UIEditorWorkspaceSession;
using XCEngine::NewEditor::UIEditorWorkspaceSplitAxis;
using XCEngine::UI::Editor::BuildDefaultUIEditorWorkspaceController;
using XCEngine::UI::Editor::BuildUIEditorWorkspacePanel;
using XCEngine::UI::Editor::BuildUIEditorWorkspaceSplit;
using XCEngine::UI::Editor::BuildUIEditorWorkspaceTabStack;
using XCEngine::UI::Editor::CollectUIEditorWorkspaceVisiblePanels;
using XCEngine::UI::Editor::FindUIEditorPanelSessionState;
using XCEngine::UI::Editor::GetUIEditorWorkspaceCommandKindName;
using XCEngine::UI::Editor::GetUIEditorWorkspaceCommandStatusName;
using XCEngine::UI::Editor::UIEditorPanelRegistry;
using XCEngine::UI::Editor::UIEditorWorkspaceCommand;
using XCEngine::UI::Editor::UIEditorWorkspaceCommandKind;
using XCEngine::UI::Editor::UIEditorWorkspaceCommandResult;
using XCEngine::UI::Editor::UIEditorWorkspaceController;
using XCEngine::UI::Editor::UIEditorWorkspaceModel;
using XCEngine::UI::Editor::UIEditorWorkspaceSession;
using XCEngine::UI::Editor::UIEditorWorkspaceSplitAxis;
using XCEngine::UI::UIColor;
using XCEngine::UI::UIDrawData;
using XCEngine::UI::UIDrawList;
using XCEngine::UI::UIPoint;
using XCEngine::UI::UIRect;
using XCEngine::XCUI::Host::AutoScreenshotController;
using XCEngine::XCUI::Host::NativeRenderer;
using XCEngine::UI::Editor::Host::AutoScreenshotController;
using XCEngine::UI::Editor::Host::NativeRenderer;
constexpr const wchar_t* kWindowClassName = L"XCUIEditorPanelSessionFlowValidation";
constexpr const wchar_t* kWindowTitle = L"XCUI Editor | Panel Session 状态流";
@@ -606,9 +606,9 @@ private:
std::string(GetUIEditorWorkspaceCommandStatusName(m_lastCommandResult.status)) +
" | " +
m_lastCommandResult.message,
m_lastCommandResult.status == XCEngine::NewEditor::UIEditorWorkspaceCommandStatus::Rejected
m_lastCommandResult.status == XCEngine::UI::Editor::UIEditorWorkspaceCommandStatus::Rejected
? kDanger
: (m_lastCommandResult.status == XCEngine::NewEditor::UIEditorWorkspaceCommandStatus::NoOp
: (m_lastCommandResult.status == XCEngine::UI::Editor::UIEditorWorkspaceCommandStatus::NoOp
? kWarning
: kSuccess),
12.0f);

View File

@@ -5,6 +5,8 @@ add_executable(editor_ui_shortcut_dispatch_validation WIN32
target_include_directories(editor_ui_shortcut_dispatch_validation PRIVATE
${CMAKE_SOURCE_DIR}/engine/include
${CMAKE_SOURCE_DIR}/new_editor/include
${CMAKE_SOURCE_DIR}/new_editor/app
${CMAKE_SOURCE_DIR}/new_editor/src
)
target_compile_definitions(editor_ui_shortcut_dispatch_validation PRIVATE
@@ -20,8 +22,8 @@ if(MSVC)
endif()
target_link_libraries(editor_ui_shortcut_dispatch_validation PRIVATE
XCNewEditorLib
XCNewEditorHost
XCUIEditorLib
XCUIEditorHost
)
set_target_properties(editor_ui_shortcut_dispatch_validation PROPERTIES

View File

@@ -2,10 +2,10 @@
#define NOMINMAX
#endif
#include <XCNewEditor/Editor/UIEditorShortcutManager.h>
#include <XCNewEditor/Host/AutoScreenshot.h>
#include <XCNewEditor/Host/InputModifierTracker.h>
#include <XCNewEditor/Host/NativeRenderer.h>
#include <XCEditor/Core/UIEditorShortcutManager.h>
#include "Host/AutoScreenshot.h"
#include "Host/InputModifierTracker.h"
#include "Host/NativeRenderer.h"
#include <XCEngine/Input/InputTypes.h>
#include <XCEngine/UI/DrawData.h>
@@ -28,24 +28,24 @@
namespace {
using XCEngine::Input::KeyCode;
using XCEngine::NewEditor::BuildDefaultUIEditorWorkspaceController;
using XCEngine::NewEditor::BuildUIEditorWorkspacePanel;
using XCEngine::NewEditor::BuildUIEditorWorkspaceSplit;
using XCEngine::NewEditor::BuildUIEditorWorkspaceTabStack;
using XCEngine::NewEditor::CollectUIEditorWorkspaceVisiblePanels;
using XCEngine::NewEditor::FindUIEditorPanelSessionState;
using XCEngine::NewEditor::GetUIEditorShortcutDispatchStatusName;
using XCEngine::NewEditor::GetUIEditorWorkspaceCommandStatusName;
using XCEngine::NewEditor::UIEditorCommandPanelSource;
using XCEngine::NewEditor::UIEditorCommandRegistry;
using XCEngine::NewEditor::UIEditorPanelRegistry;
using XCEngine::NewEditor::UIEditorShortcutDispatchResult;
using XCEngine::NewEditor::UIEditorShortcutDispatchStatus;
using XCEngine::NewEditor::UIEditorShortcutManager;
using XCEngine::NewEditor::UIEditorWorkspaceCommandKind;
using XCEngine::NewEditor::UIEditorWorkspaceController;
using XCEngine::NewEditor::UIEditorWorkspaceModel;
using XCEngine::NewEditor::UIEditorWorkspaceSplitAxis;
using XCEngine::UI::Editor::BuildDefaultUIEditorWorkspaceController;
using XCEngine::UI::Editor::BuildUIEditorWorkspacePanel;
using XCEngine::UI::Editor::BuildUIEditorWorkspaceSplit;
using XCEngine::UI::Editor::BuildUIEditorWorkspaceTabStack;
using XCEngine::UI::Editor::CollectUIEditorWorkspaceVisiblePanels;
using XCEngine::UI::Editor::FindUIEditorPanelSessionState;
using XCEngine::UI::Editor::GetUIEditorShortcutDispatchStatusName;
using XCEngine::UI::Editor::GetUIEditorWorkspaceCommandStatusName;
using XCEngine::UI::Editor::UIEditorCommandPanelSource;
using XCEngine::UI::Editor::UIEditorCommandRegistry;
using XCEngine::UI::Editor::UIEditorPanelRegistry;
using XCEngine::UI::Editor::UIEditorShortcutDispatchResult;
using XCEngine::UI::Editor::UIEditorShortcutDispatchStatus;
using XCEngine::UI::Editor::UIEditorShortcutManager;
using XCEngine::UI::Editor::UIEditorWorkspaceCommandKind;
using XCEngine::UI::Editor::UIEditorWorkspaceController;
using XCEngine::UI::Editor::UIEditorWorkspaceModel;
using XCEngine::UI::Editor::UIEditorWorkspaceSplitAxis;
using XCEngine::UI::UIColor;
using XCEngine::UI::UIDrawData;
using XCEngine::UI::UIDrawList;
@@ -56,9 +56,9 @@ using XCEngine::UI::UIRect;
using XCEngine::UI::UIShortcutBinding;
using XCEngine::UI::UIShortcutContext;
using XCEngine::UI::UIShortcutScope;
using XCEngine::XCUI::Host::AutoScreenshotController;
using XCEngine::XCUI::Host::InputModifierTracker;
using XCEngine::XCUI::Host::NativeRenderer;
using XCEngine::UI::Editor::Host::AutoScreenshotController;
using XCEngine::UI::Editor::Host::InputModifierTracker;
using XCEngine::UI::Editor::Host::NativeRenderer;
constexpr const wchar_t* kWindowClassName = L"XCUIEditorShortcutDispatchValidation";
constexpr const wchar_t* kWindowTitle = L"XCUI Editor | Shortcut Dispatch";
@@ -246,9 +246,9 @@ UIColor ResolveCommandStatusColor(UIEditorWorkspaceController& controller, const
}
switch (result.commandResult.status) {
case XCEngine::NewEditor::UIEditorWorkspaceCommandStatus::Changed: return kSuccess;
case XCEngine::NewEditor::UIEditorWorkspaceCommandStatus::NoOp: return kWarning;
case XCEngine::NewEditor::UIEditorWorkspaceCommandStatus::Rejected: return kDanger;
case XCEngine::UI::Editor::UIEditorWorkspaceCommandStatus::Changed: return kSuccess;
case XCEngine::UI::Editor::UIEditorWorkspaceCommandStatus::NoOp: return kWarning;
case XCEngine::UI::Editor::UIEditorWorkspaceCommandStatus::Rejected: return kDanger;
}
return kTextMuted;

View File

@@ -19,7 +19,7 @@ add_executable(editor_ui_tests ${EDITOR_UI_UNIT_TEST_SOURCES})
target_link_libraries(editor_ui_tests
PRIVATE
XCNewEditorLib
XCUIEditorLib
GTest::gtest_main
)
@@ -27,6 +27,7 @@ target_include_directories(editor_ui_tests
PRIVATE
${CMAKE_SOURCE_DIR}/new_editor/include
${CMAKE_SOURCE_DIR}/new_editor/src
${CMAKE_SOURCE_DIR}/new_editor/app
${CMAKE_SOURCE_DIR}/engine/include
)

View File

@@ -1,15 +1,15 @@
#include <gtest/gtest.h>
#include "editor/EditorShellAsset.h"
#include "Core/EditorShellAsset.h"
#include <XCNewEditor/Editor/UIEditorPanelRegistry.h>
#include <XCEditor/Core/UIEditorPanelRegistry.h>
namespace {
using XCEngine::NewEditor::BuildDefaultEditorShellAsset;
using XCEngine::NewEditor::EditorShellAssetValidationCode;
using XCEngine::NewEditor::FindUIEditorPanelDescriptor;
using XCEngine::NewEditor::ValidateEditorShellAsset;
using XCEngine::UI::Editor::BuildDefaultEditorShellAsset;
using XCEngine::UI::Editor::EditorShellAssetValidationCode;
using XCEngine::UI::Editor::FindUIEditorPanelDescriptor;
using XCEngine::UI::Editor::ValidateEditorShellAsset;
TEST(EditorShellAssetValidationTest, DefaultShellAssetPassesValidation) {
const auto shellAsset = BuildDefaultEditorShellAsset(".");
@@ -22,7 +22,7 @@ TEST(EditorShellAssetValidationTest, ValidationRejectsWorkspacePanelMissingFromR
auto shellAsset = BuildDefaultEditorShellAsset(".");
auto* documentPanel =
const_cast<XCEngine::NewEditor::UIEditorPanelDescriptor*>(
const_cast<XCEngine::UI::Editor::UIEditorPanelDescriptor*>(
FindUIEditorPanelDescriptor(shellAsset.panelRegistry, "editor-foundation-root"));
ASSERT_NE(documentPanel, nullptr);
documentPanel->panelId = "editor-foundation-root-renamed";

View File

@@ -4,7 +4,7 @@
#include <gtest/gtest.h>
#include <XCNewEditor/Host/InputModifierTracker.h>
#include "Host/InputModifierTracker.h"
#include <XCEngine/UI/Types.h>
@@ -12,7 +12,7 @@
namespace {
using XCEngine::XCUI::Host::InputModifierTracker;
using XCEngine::UI::Editor::Host::InputModifierTracker;
using XCEngine::UI::UIInputEventType;
TEST(InputModifierTrackerTest, ControlStatePersistsAcrossChordKeyDownAndClearsOnKeyUp) {

View File

@@ -1,6 +1,6 @@
#include <gtest/gtest.h>
#include "editor/EditorShellAsset.h"
#include "Core/EditorShellAsset.h"
#include <XCEngine/UI/Runtime/UIScreenDocumentHost.h>
#include <XCEngine/UI/Runtime/UIScreenPlayer.h>
@@ -9,13 +9,13 @@
#include <string>
#include <vector>
#ifndef XCNEWEDITOR_REPO_ROOT
#define XCNEWEDITOR_REPO_ROOT "."
#ifndef XCUIEDITOR_REPO_ROOT
#define XCUIEDITOR_REPO_ROOT "."
#endif
namespace {
using XCEngine::NewEditor::BuildDefaultEditorShellAsset;
using XCEngine::UI::Editor::BuildDefaultEditorShellAsset;
using XCEngine::UI::UIDrawCommand;
using XCEngine::UI::UIDrawCommandType;
using XCEngine::UI::UIDrawData;
@@ -25,7 +25,7 @@ using XCEngine::UI::Runtime::UIScreenPlayer;
using XCEngine::UI::Runtime::UIDocumentScreenHost;
std::filesystem::path RepoRootPath() {
std::string root = XCNEWEDITOR_REPO_ROOT;
std::string root = XCUIEDITOR_REPO_ROOT;
if (root.size() >= 2u && root.front() == '"' && root.back() == '"') {
root = root.substr(1u, root.size() - 2u);
}

View File

@@ -2,12 +2,12 @@
#include <XCEngine/UI/Style/Theme.h>
#include <XCEngine/UI/Style/StyleTypes.h>
#include <XCNewEditor/Widgets/UIEditorCollectionPrimitives.h>
#include <XCEditor/Widgets/UIEditorCollectionPrimitives.h>
namespace {
namespace Style = XCEngine::UI::Style;
namespace UIWidgets = XCEngine::UI::Widgets;
namespace UIWidgets = XCEngine::UI::Editor::Widgets;
Style::UITheme BuildEditorPrimitiveTheme() {
Style::UIThemeDefinition definition = {};

View File

@@ -1,24 +1,24 @@
#include <gtest/gtest.h>
#include <XCNewEditor/Editor/UIEditorCommandDispatcher.h>
#include <XCEditor/Core/UIEditorCommandDispatcher.h>
namespace {
using XCEngine::NewEditor::BuildDefaultUIEditorWorkspaceController;
using XCEngine::NewEditor::BuildUIEditorWorkspacePanel;
using XCEngine::NewEditor::BuildUIEditorWorkspaceSplit;
using XCEngine::NewEditor::BuildUIEditorWorkspaceTabStack;
using XCEngine::NewEditor::GetUIEditorCommandDispatchStatusName;
using XCEngine::NewEditor::UIEditorCommandDispatchStatus;
using XCEngine::NewEditor::UIEditorCommandDispatcher;
using XCEngine::NewEditor::UIEditorCommandEvaluationCode;
using XCEngine::NewEditor::UIEditorCommandPanelSource;
using XCEngine::NewEditor::UIEditorCommandRegistry;
using XCEngine::NewEditor::UIEditorPanelRegistry;
using XCEngine::NewEditor::UIEditorWorkspaceCommandKind;
using XCEngine::NewEditor::UIEditorWorkspaceCommandStatus;
using XCEngine::NewEditor::UIEditorWorkspaceModel;
using XCEngine::NewEditor::UIEditorWorkspaceSplitAxis;
using XCEngine::UI::Editor::BuildDefaultUIEditorWorkspaceController;
using XCEngine::UI::Editor::BuildUIEditorWorkspacePanel;
using XCEngine::UI::Editor::BuildUIEditorWorkspaceSplit;
using XCEngine::UI::Editor::BuildUIEditorWorkspaceTabStack;
using XCEngine::UI::Editor::GetUIEditorCommandDispatchStatusName;
using XCEngine::UI::Editor::UIEditorCommandDispatchStatus;
using XCEngine::UI::Editor::UIEditorCommandDispatcher;
using XCEngine::UI::Editor::UIEditorCommandEvaluationCode;
using XCEngine::UI::Editor::UIEditorCommandPanelSource;
using XCEngine::UI::Editor::UIEditorCommandRegistry;
using XCEngine::UI::Editor::UIEditorPanelRegistry;
using XCEngine::UI::Editor::UIEditorWorkspaceCommandKind;
using XCEngine::UI::Editor::UIEditorWorkspaceCommandStatus;
using XCEngine::UI::Editor::UIEditorWorkspaceModel;
using XCEngine::UI::Editor::UIEditorWorkspaceSplitAxis;
UIEditorCommandRegistry BuildCommandRegistry() {
UIEditorCommandRegistry registry = {};

View File

@@ -1,16 +1,16 @@
#include <gtest/gtest.h>
#include <XCNewEditor/Editor/UIEditorCommandRegistry.h>
#include <XCEditor/Core/UIEditorCommandRegistry.h>
namespace {
using XCEngine::NewEditor::FindUIEditorCommandDescriptor;
using XCEngine::NewEditor::UIEditorCommandDescriptor;
using XCEngine::NewEditor::UIEditorCommandPanelSource;
using XCEngine::NewEditor::UIEditorCommandRegistry;
using XCEngine::NewEditor::UIEditorCommandRegistryValidationCode;
using XCEngine::NewEditor::UIEditorWorkspaceCommandKind;
using XCEngine::NewEditor::ValidateUIEditorCommandRegistry;
using XCEngine::UI::Editor::FindUIEditorCommandDescriptor;
using XCEngine::UI::Editor::UIEditorCommandDescriptor;
using XCEngine::UI::Editor::UIEditorCommandPanelSource;
using XCEngine::UI::Editor::UIEditorCommandRegistry;
using XCEngine::UI::Editor::UIEditorCommandRegistryValidationCode;
using XCEngine::UI::Editor::UIEditorWorkspaceCommandKind;
using XCEngine::UI::Editor::ValidateUIEditorCommandRegistry;
UIEditorCommandRegistry BuildCommandRegistry() {
UIEditorCommandRegistry registry = {};

View File

@@ -1,33 +1,33 @@
#include <gtest/gtest.h>
#include <XCNewEditor/Editor/UIEditorMenuModel.h>
#include <XCNewEditor/Editor/UIEditorShortcutManager.h>
#include <XCEditor/Core/UIEditorMenuModel.h>
#include <XCEditor/Core/UIEditorShortcutManager.h>
#include <XCEngine/Input/InputTypes.h>
namespace {
using XCEngine::Input::KeyCode;
using XCEngine::NewEditor::BuildDefaultUIEditorWorkspaceController;
using XCEngine::NewEditor::BuildUIEditorWorkspacePanel;
using XCEngine::NewEditor::BuildUIEditorWorkspaceSplit;
using XCEngine::NewEditor::BuildUIEditorWorkspaceTabStack;
using XCEngine::NewEditor::BuildUIEditorResolvedMenuModel;
using XCEngine::NewEditor::UIEditorCommandDispatcher;
using XCEngine::NewEditor::UIEditorCommandPanelSource;
using XCEngine::NewEditor::UIEditorCommandRegistry;
using XCEngine::NewEditor::UIEditorMenuCheckedStateSource;
using XCEngine::NewEditor::UIEditorMenuItemDescriptor;
using XCEngine::NewEditor::UIEditorMenuItemKind;
using XCEngine::NewEditor::UIEditorMenuModel;
using XCEngine::NewEditor::UIEditorMenuModelValidationCode;
using XCEngine::NewEditor::UIEditorPanelRegistry;
using XCEngine::NewEditor::UIEditorShortcutManager;
using XCEngine::NewEditor::UIEditorWorkspaceCommandKind;
using XCEngine::NewEditor::UIEditorWorkspaceCommandStatus;
using XCEngine::NewEditor::UIEditorWorkspaceModel;
using XCEngine::NewEditor::UIEditorWorkspaceSplitAxis;
using XCEngine::NewEditor::ValidateUIEditorMenuModel;
using XCEngine::UI::Editor::BuildDefaultUIEditorWorkspaceController;
using XCEngine::UI::Editor::BuildUIEditorWorkspacePanel;
using XCEngine::UI::Editor::BuildUIEditorWorkspaceSplit;
using XCEngine::UI::Editor::BuildUIEditorWorkspaceTabStack;
using XCEngine::UI::Editor::BuildUIEditorResolvedMenuModel;
using XCEngine::UI::Editor::UIEditorCommandDispatcher;
using XCEngine::UI::Editor::UIEditorCommandPanelSource;
using XCEngine::UI::Editor::UIEditorCommandRegistry;
using XCEngine::UI::Editor::UIEditorMenuCheckedStateSource;
using XCEngine::UI::Editor::UIEditorMenuItemDescriptor;
using XCEngine::UI::Editor::UIEditorMenuItemKind;
using XCEngine::UI::Editor::UIEditorMenuModel;
using XCEngine::UI::Editor::UIEditorMenuModelValidationCode;
using XCEngine::UI::Editor::UIEditorPanelRegistry;
using XCEngine::UI::Editor::UIEditorShortcutManager;
using XCEngine::UI::Editor::UIEditorWorkspaceCommandKind;
using XCEngine::UI::Editor::UIEditorWorkspaceCommandStatus;
using XCEngine::UI::Editor::UIEditorWorkspaceModel;
using XCEngine::UI::Editor::UIEditorWorkspaceSplitAxis;
using XCEngine::UI::Editor::ValidateUIEditorMenuModel;
using XCEngine::UI::UIInputEventType;
using XCEngine::UI::UIShortcutBinding;
using XCEngine::UI::UIShortcutScope;

View File

@@ -1,7 +1,7 @@
#include <gtest/gtest.h>
#include <XCEngine/UI/DrawData.h>
#include <XCNewEditor/Widgets/UIEditorPanelChrome.h>
#include <XCEditor/Widgets/UIEditorPanelChrome.h>
namespace {
@@ -9,14 +9,14 @@ using XCEngine::UI::UIColor;
using XCEngine::UI::UIDrawCommandType;
using XCEngine::UI::UIDrawList;
using XCEngine::UI::UIRect;
using XCEngine::UI::Widgets::AppendUIEditorPanelChromeBackground;
using XCEngine::UI::Widgets::AppendUIEditorPanelChromeForeground;
using XCEngine::UI::Widgets::BuildUIEditorPanelChromeHeaderRect;
using XCEngine::UI::Widgets::ResolveUIEditorPanelChromeBorderColor;
using XCEngine::UI::Widgets::ResolveUIEditorPanelChromeBorderThickness;
using XCEngine::UI::Widgets::UIEditorPanelChromePalette;
using XCEngine::UI::Widgets::UIEditorPanelChromeState;
using XCEngine::UI::Widgets::UIEditorPanelChromeText;
using XCEngine::UI::Editor::Widgets::AppendUIEditorPanelChromeBackground;
using XCEngine::UI::Editor::Widgets::AppendUIEditorPanelChromeForeground;
using XCEngine::UI::Editor::Widgets::BuildUIEditorPanelChromeHeaderRect;
using XCEngine::UI::Editor::Widgets::ResolveUIEditorPanelChromeBorderColor;
using XCEngine::UI::Editor::Widgets::ResolveUIEditorPanelChromeBorderThickness;
using XCEngine::UI::Editor::Widgets::UIEditorPanelChromePalette;
using XCEngine::UI::Editor::Widgets::UIEditorPanelChromeState;
using XCEngine::UI::Editor::Widgets::UIEditorPanelChromeText;
void ExpectColorEq(
const UIColor& actual,

View File

@@ -1,15 +1,15 @@
#include <gtest/gtest.h>
#include <XCNewEditor/Editor/UIEditorPanelRegistry.h>
#include <XCEditor/Core/UIEditorPanelRegistry.h>
namespace {
using XCEngine::NewEditor::BuildDefaultEditorShellPanelRegistry;
using XCEngine::NewEditor::FindUIEditorPanelDescriptor;
using XCEngine::NewEditor::UIEditorPanelDescriptor;
using XCEngine::NewEditor::UIEditorPanelRegistry;
using XCEngine::NewEditor::UIEditorPanelRegistryValidationCode;
using XCEngine::NewEditor::ValidateUIEditorPanelRegistry;
using XCEngine::UI::Editor::BuildDefaultEditorShellPanelRegistry;
using XCEngine::UI::Editor::FindUIEditorPanelDescriptor;
using XCEngine::UI::Editor::UIEditorPanelDescriptor;
using XCEngine::UI::Editor::UIEditorPanelRegistry;
using XCEngine::UI::Editor::UIEditorPanelRegistryValidationCode;
using XCEngine::UI::Editor::ValidateUIEditorPanelRegistry;
TEST(UIEditorPanelRegistryTest, DefaultRegistryContainsShellDescriptors) {
const UIEditorPanelRegistry registry = BuildDefaultEditorShellPanelRegistry();

View File

@@ -1,25 +1,25 @@
#include <gtest/gtest.h>
#include <XCNewEditor/Editor/UIEditorShortcutManager.h>
#include <XCEditor/Core/UIEditorShortcutManager.h>
#include <XCEngine/Input/InputTypes.h>
namespace {
using XCEngine::Input::KeyCode;
using XCEngine::NewEditor::BuildDefaultUIEditorWorkspaceController;
using XCEngine::NewEditor::BuildUIEditorWorkspacePanel;
using XCEngine::NewEditor::BuildUIEditorWorkspaceSplit;
using XCEngine::NewEditor::BuildUIEditorWorkspaceTabStack;
using XCEngine::NewEditor::UIEditorCommandPanelSource;
using XCEngine::NewEditor::UIEditorCommandRegistry;
using XCEngine::NewEditor::UIEditorShortcutDispatchStatus;
using XCEngine::NewEditor::UIEditorShortcutManager;
using XCEngine::NewEditor::UIEditorShortcutManagerValidationCode;
using XCEngine::NewEditor::UIEditorWorkspaceCommandKind;
using XCEngine::NewEditor::UIEditorWorkspaceCommandStatus;
using XCEngine::NewEditor::UIEditorWorkspaceModel;
using XCEngine::NewEditor::UIEditorWorkspaceSplitAxis;
using XCEngine::UI::Editor::BuildDefaultUIEditorWorkspaceController;
using XCEngine::UI::Editor::BuildUIEditorWorkspacePanel;
using XCEngine::UI::Editor::BuildUIEditorWorkspaceSplit;
using XCEngine::UI::Editor::BuildUIEditorWorkspaceTabStack;
using XCEngine::UI::Editor::UIEditorCommandPanelSource;
using XCEngine::UI::Editor::UIEditorCommandRegistry;
using XCEngine::UI::Editor::UIEditorShortcutDispatchStatus;
using XCEngine::UI::Editor::UIEditorShortcutManager;
using XCEngine::UI::Editor::UIEditorShortcutManagerValidationCode;
using XCEngine::UI::Editor::UIEditorWorkspaceCommandKind;
using XCEngine::UI::Editor::UIEditorWorkspaceCommandStatus;
using XCEngine::UI::Editor::UIEditorWorkspaceModel;
using XCEngine::UI::Editor::UIEditorWorkspaceSplitAxis;
using XCEngine::UI::UIInputEvent;
using XCEngine::UI::UIInputEventType;
using XCEngine::UI::UIShortcutBinding;
@@ -121,7 +121,7 @@ TEST(UIEditorShortcutManagerTest, DispatchUsesActivePanelSourceForWorkspaceComma
auto controller =
BuildDefaultUIEditorWorkspaceController(
XCEngine::NewEditor::UIEditorPanelRegistry{
XCEngine::UI::Editor::UIEditorPanelRegistry{
{
{ "doc-a", "Document A", {}, true, true, true },
{ "doc-b", "Document B", {}, true, true, true },
@@ -147,7 +147,7 @@ TEST(UIEditorShortcutManagerTest, DispatchPrefersPanelScopeBindingOverGlobalBind
auto controller =
BuildDefaultUIEditorWorkspaceController(
XCEngine::NewEditor::UIEditorPanelRegistry{
XCEngine::UI::Editor::UIEditorPanelRegistry{
{
{ "doc-a", "Document A", {}, true, true, true },
{ "doc-b", "Document B", {}, true, true, true },
@@ -173,7 +173,7 @@ TEST(UIEditorShortcutManagerTest, DispatchSuppressesMatchedShortcutWhenTextInput
auto controller =
BuildDefaultUIEditorWorkspaceController(
XCEngine::NewEditor::UIEditorPanelRegistry{
XCEngine::UI::Editor::UIEditorPanelRegistry{
{
{ "doc-a", "Document A", {}, true, true, true },
{ "doc-b", "Document B", {}, true, true, true },

View File

@@ -1,24 +1,24 @@
#include <gtest/gtest.h>
#include <XCNewEditor/Editor/UIEditorWorkspaceController.h>
#include <XCEditor/Core/UIEditorWorkspaceController.h>
namespace {
using XCEngine::NewEditor::BuildDefaultUIEditorWorkspaceController;
using XCEngine::NewEditor::BuildDefaultUIEditorWorkspaceSession;
using XCEngine::NewEditor::BuildUIEditorWorkspacePanel;
using XCEngine::NewEditor::BuildUIEditorWorkspaceSplit;
using XCEngine::NewEditor::BuildUIEditorWorkspaceTabStack;
using XCEngine::NewEditor::GetUIEditorWorkspaceCommandKindName;
using XCEngine::NewEditor::GetUIEditorWorkspaceCommandStatusName;
using XCEngine::NewEditor::UIEditorPanelRegistry;
using XCEngine::NewEditor::UIEditorWorkspaceCommand;
using XCEngine::NewEditor::UIEditorWorkspaceCommandKind;
using XCEngine::NewEditor::UIEditorWorkspaceCommandStatus;
using XCEngine::NewEditor::UIEditorWorkspaceControllerValidationCode;
using XCEngine::NewEditor::UIEditorWorkspaceController;
using XCEngine::NewEditor::UIEditorWorkspaceModel;
using XCEngine::NewEditor::UIEditorWorkspaceSplitAxis;
using XCEngine::UI::Editor::BuildDefaultUIEditorWorkspaceController;
using XCEngine::UI::Editor::BuildDefaultUIEditorWorkspaceSession;
using XCEngine::UI::Editor::BuildUIEditorWorkspacePanel;
using XCEngine::UI::Editor::BuildUIEditorWorkspaceSplit;
using XCEngine::UI::Editor::BuildUIEditorWorkspaceTabStack;
using XCEngine::UI::Editor::GetUIEditorWorkspaceCommandKindName;
using XCEngine::UI::Editor::GetUIEditorWorkspaceCommandStatusName;
using XCEngine::UI::Editor::UIEditorPanelRegistry;
using XCEngine::UI::Editor::UIEditorWorkspaceCommand;
using XCEngine::UI::Editor::UIEditorWorkspaceCommandKind;
using XCEngine::UI::Editor::UIEditorWorkspaceCommandStatus;
using XCEngine::UI::Editor::UIEditorWorkspaceControllerValidationCode;
using XCEngine::UI::Editor::UIEditorWorkspaceController;
using XCEngine::UI::Editor::UIEditorWorkspaceModel;
using XCEngine::UI::Editor::UIEditorWorkspaceSplitAxis;
UIEditorPanelRegistry BuildPanelRegistry() {
UIEditorPanelRegistry registry = {};

View File

@@ -1,7 +1,7 @@
#include <gtest/gtest.h>
#include <XCNewEditor/Editor/UIEditorWorkspaceController.h>
#include <XCNewEditor/Editor/UIEditorWorkspaceLayoutPersistence.h>
#include <XCEditor/Core/UIEditorWorkspaceController.h>
#include <XCEditor/Core/UIEditorWorkspaceLayoutPersistence.h>
#include <string>
#include <string_view>
@@ -9,26 +9,26 @@
namespace {
using XCEngine::NewEditor::AreUIEditorWorkspaceLayoutSnapshotsEquivalent;
using XCEngine::NewEditor::BuildDefaultUIEditorWorkspaceController;
using XCEngine::NewEditor::BuildDefaultUIEditorWorkspaceSession;
using XCEngine::NewEditor::BuildUIEditorWorkspaceLayoutSnapshot;
using XCEngine::NewEditor::BuildUIEditorWorkspacePanel;
using XCEngine::NewEditor::BuildUIEditorWorkspaceSplit;
using XCEngine::NewEditor::BuildUIEditorWorkspaceTabStack;
using XCEngine::NewEditor::DeserializeUIEditorWorkspaceLayoutSnapshot;
using XCEngine::NewEditor::SerializeUIEditorWorkspaceLayoutSnapshot;
using XCEngine::NewEditor::TryCloseUIEditorWorkspacePanel;
using XCEngine::NewEditor::TryHideUIEditorWorkspacePanel;
using XCEngine::NewEditor::UIEditorPanelRegistry;
using XCEngine::NewEditor::UIEditorWorkspaceController;
using XCEngine::NewEditor::UIEditorWorkspaceLayoutLoadCode;
using XCEngine::NewEditor::UIEditorWorkspaceLayoutOperationStatus;
using XCEngine::NewEditor::UIEditorWorkspaceCommandKind;
using XCEngine::NewEditor::UIEditorWorkspaceCommandStatus;
using XCEngine::NewEditor::UIEditorWorkspaceModel;
using XCEngine::NewEditor::UIEditorWorkspaceSession;
using XCEngine::NewEditor::UIEditorWorkspaceSplitAxis;
using XCEngine::UI::Editor::AreUIEditorWorkspaceLayoutSnapshotsEquivalent;
using XCEngine::UI::Editor::BuildDefaultUIEditorWorkspaceController;
using XCEngine::UI::Editor::BuildDefaultUIEditorWorkspaceSession;
using XCEngine::UI::Editor::BuildUIEditorWorkspaceLayoutSnapshot;
using XCEngine::UI::Editor::BuildUIEditorWorkspacePanel;
using XCEngine::UI::Editor::BuildUIEditorWorkspaceSplit;
using XCEngine::UI::Editor::BuildUIEditorWorkspaceTabStack;
using XCEngine::UI::Editor::DeserializeUIEditorWorkspaceLayoutSnapshot;
using XCEngine::UI::Editor::SerializeUIEditorWorkspaceLayoutSnapshot;
using XCEngine::UI::Editor::TryCloseUIEditorWorkspacePanel;
using XCEngine::UI::Editor::TryHideUIEditorWorkspacePanel;
using XCEngine::UI::Editor::UIEditorPanelRegistry;
using XCEngine::UI::Editor::UIEditorWorkspaceController;
using XCEngine::UI::Editor::UIEditorWorkspaceLayoutLoadCode;
using XCEngine::UI::Editor::UIEditorWorkspaceLayoutOperationStatus;
using XCEngine::UI::Editor::UIEditorWorkspaceCommandKind;
using XCEngine::UI::Editor::UIEditorWorkspaceCommandStatus;
using XCEngine::UI::Editor::UIEditorWorkspaceModel;
using XCEngine::UI::Editor::UIEditorWorkspaceSession;
using XCEngine::UI::Editor::UIEditorWorkspaceSplitAxis;
UIEditorPanelRegistry BuildPanelRegistry() {
UIEditorPanelRegistry registry = {};

View File

@@ -1,6 +1,6 @@
#include <gtest/gtest.h>
#include <XCNewEditor/Editor/UIEditorWorkspaceModel.h>
#include <XCEditor/Core/UIEditorWorkspaceModel.h>
#include <algorithm>
#include <string>
@@ -8,18 +8,18 @@
namespace {
using XCEngine::NewEditor::BuildUIEditorWorkspacePanel;
using XCEngine::NewEditor::BuildUIEditorWorkspaceSplit;
using XCEngine::NewEditor::BuildUIEditorWorkspaceTabStack;
using XCEngine::NewEditor::CollectUIEditorWorkspaceVisiblePanels;
using XCEngine::NewEditor::ContainsUIEditorWorkspacePanel;
using XCEngine::NewEditor::FindUIEditorWorkspaceActivePanel;
using XCEngine::NewEditor::TryActivateUIEditorWorkspacePanel;
using XCEngine::NewEditor::UIEditorWorkspaceModel;
using XCEngine::NewEditor::UIEditorWorkspaceNodeKind;
using XCEngine::NewEditor::UIEditorWorkspaceSplitAxis;
using XCEngine::NewEditor::UIEditorWorkspaceValidationCode;
using XCEngine::NewEditor::ValidateUIEditorWorkspace;
using XCEngine::UI::Editor::BuildUIEditorWorkspacePanel;
using XCEngine::UI::Editor::BuildUIEditorWorkspaceSplit;
using XCEngine::UI::Editor::BuildUIEditorWorkspaceTabStack;
using XCEngine::UI::Editor::CollectUIEditorWorkspaceVisiblePanels;
using XCEngine::UI::Editor::ContainsUIEditorWorkspacePanel;
using XCEngine::UI::Editor::FindUIEditorWorkspaceActivePanel;
using XCEngine::UI::Editor::TryActivateUIEditorWorkspacePanel;
using XCEngine::UI::Editor::UIEditorWorkspaceModel;
using XCEngine::UI::Editor::UIEditorWorkspaceNodeKind;
using XCEngine::UI::Editor::UIEditorWorkspaceSplitAxis;
using XCEngine::UI::Editor::UIEditorWorkspaceValidationCode;
using XCEngine::UI::Editor::ValidateUIEditorWorkspace;
std::vector<std::string> CollectVisiblePanelIds(const UIEditorWorkspaceModel& workspace) {
const auto panels = CollectUIEditorWorkspaceVisiblePanels(workspace);

View File

@@ -1,31 +1,31 @@
#include <gtest/gtest.h>
#include <XCNewEditor/Editor/UIEditorPanelRegistry.h>
#include <XCNewEditor/Editor/UIEditorWorkspaceModel.h>
#include <XCNewEditor/Editor/UIEditorWorkspaceSession.h>
#include <XCEditor/Core/UIEditorPanelRegistry.h>
#include <XCEditor/Core/UIEditorWorkspaceModel.h>
#include <XCEditor/Core/UIEditorWorkspaceSession.h>
#include <vector>
namespace {
using XCEngine::NewEditor::BuildDefaultUIEditorWorkspaceSession;
using XCEngine::NewEditor::BuildUIEditorWorkspacePanel;
using XCEngine::NewEditor::BuildUIEditorWorkspaceSplit;
using XCEngine::NewEditor::BuildUIEditorWorkspaceTabStack;
using XCEngine::NewEditor::CollectUIEditorWorkspaceVisiblePanels;
using XCEngine::NewEditor::FindUIEditorPanelDescriptor;
using XCEngine::NewEditor::FindUIEditorPanelSessionState;
using XCEngine::NewEditor::TryActivateUIEditorWorkspacePanel;
using XCEngine::NewEditor::TryCloseUIEditorWorkspacePanel;
using XCEngine::NewEditor::TryHideUIEditorWorkspacePanel;
using XCEngine::NewEditor::TryOpenUIEditorWorkspacePanel;
using XCEngine::NewEditor::TryShowUIEditorWorkspacePanel;
using XCEngine::NewEditor::UIEditorPanelRegistry;
using XCEngine::NewEditor::UIEditorWorkspaceModel;
using XCEngine::NewEditor::UIEditorWorkspaceSession;
using XCEngine::NewEditor::UIEditorWorkspaceSessionValidationCode;
using XCEngine::NewEditor::UIEditorWorkspaceSplitAxis;
using XCEngine::NewEditor::ValidateUIEditorWorkspaceSession;
using XCEngine::UI::Editor::BuildDefaultUIEditorWorkspaceSession;
using XCEngine::UI::Editor::BuildUIEditorWorkspacePanel;
using XCEngine::UI::Editor::BuildUIEditorWorkspaceSplit;
using XCEngine::UI::Editor::BuildUIEditorWorkspaceTabStack;
using XCEngine::UI::Editor::CollectUIEditorWorkspaceVisiblePanels;
using XCEngine::UI::Editor::FindUIEditorPanelDescriptor;
using XCEngine::UI::Editor::FindUIEditorPanelSessionState;
using XCEngine::UI::Editor::TryActivateUIEditorWorkspacePanel;
using XCEngine::UI::Editor::TryCloseUIEditorWorkspacePanel;
using XCEngine::UI::Editor::TryHideUIEditorWorkspacePanel;
using XCEngine::UI::Editor::TryOpenUIEditorWorkspacePanel;
using XCEngine::UI::Editor::TryShowUIEditorWorkspacePanel;
using XCEngine::UI::Editor::UIEditorPanelRegistry;
using XCEngine::UI::Editor::UIEditorWorkspaceModel;
using XCEngine::UI::Editor::UIEditorWorkspaceSession;
using XCEngine::UI::Editor::UIEditorWorkspaceSessionValidationCode;
using XCEngine::UI::Editor::UIEditorWorkspaceSplitAxis;
using XCEngine::UI::Editor::ValidateUIEditorWorkspaceSession;
UIEditorPanelRegistry BuildPanelRegistry() {
UIEditorPanelRegistry registry = {};