feat(xcui): advance core and editor validation flow
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
set(EDITOR_UI_WORKSPACE_SHELL_COMPOSE_RESOURCES
|
||||
View.xcui
|
||||
${CMAKE_SOURCE_DIR}/tests/UI/Editor/integration/shared/themes/editor_validation.xctheme
|
||||
)
|
||||
|
||||
add_executable(editor_ui_workspace_shell_compose_validation WIN32
|
||||
main.cpp
|
||||
${EDITOR_UI_WORKSPACE_SHELL_COMPOSE_RESOURCES}
|
||||
)
|
||||
|
||||
target_include_directories(editor_ui_workspace_shell_compose_validation PRIVATE
|
||||
${CMAKE_SOURCE_DIR}/tests/UI/Editor/integration/shared/src
|
||||
${CMAKE_SOURCE_DIR}/engine/include
|
||||
)
|
||||
|
||||
target_compile_definitions(editor_ui_workspace_shell_compose_validation PRIVATE
|
||||
UNICODE
|
||||
_UNICODE
|
||||
)
|
||||
|
||||
if(MSVC)
|
||||
target_compile_options(editor_ui_workspace_shell_compose_validation PRIVATE /utf-8 /FS)
|
||||
set_property(TARGET editor_ui_workspace_shell_compose_validation PROPERTY
|
||||
MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>DLL")
|
||||
endif()
|
||||
|
||||
target_link_libraries(editor_ui_workspace_shell_compose_validation PRIVATE
|
||||
editor_ui_integration_host
|
||||
)
|
||||
|
||||
set_target_properties(editor_ui_workspace_shell_compose_validation PROPERTIES
|
||||
OUTPUT_NAME "XCUIEditorWorkspaceShellComposeValidation"
|
||||
)
|
||||
|
||||
source_group(TREE "${CMAKE_CURRENT_SOURCE_DIR}" FILES View.xcui)
|
||||
@@ -0,0 +1,94 @@
|
||||
<View
|
||||
name="EditorWorkspaceShellComposeValidation"
|
||||
theme="../shared/themes/editor_validation.xctheme">
|
||||
<Column width="fill" height="fill" padding="20" gap="12">
|
||||
<Card
|
||||
title="测试内容:Editor Shell 基础壳层组合"
|
||||
subtitle="只验证 Splitter / TabStrip / Panel Frame / 占位内容;不验证业务面板,不验证 new_editor 应用逻辑"
|
||||
tone="accent"
|
||||
height="156">
|
||||
<Column gap="6">
|
||||
<Text text="1. 检查左、中、右、下四个壳层区域边界是否干净,没有重叠、穿透或错位。" />
|
||||
<Text text="2. 拖动 shell-left-right、shell-center-right、shell-top-bottom,确认实时 resize 正常,并且会被最小尺寸正确 clamp。" />
|
||||
<Text text="3. 点击 Document A / B / C,确认中心区域只显示当前选中的 tab 占位内容。" />
|
||||
<Text text="4. 这个测试不负责验证业务面板、数据绑定、命令系统,也不负责验证 new_editor 整体行为。" />
|
||||
</Column>
|
||||
</Card>
|
||||
|
||||
<Splitter
|
||||
id="shell-top-bottom"
|
||||
axis="vertical"
|
||||
splitRatio="0.76"
|
||||
splitterSize="10"
|
||||
splitterHitSize="18"
|
||||
primaryMin="340"
|
||||
secondaryMin="120"
|
||||
height="fill">
|
||||
<Splitter
|
||||
id="shell-left-right"
|
||||
axis="horizontal"
|
||||
splitRatio="0.22"
|
||||
splitterSize="10"
|
||||
splitterHitSize="18"
|
||||
primaryMin="180"
|
||||
secondaryMin="480"
|
||||
height="fill">
|
||||
<Card id="left-dock-placeholder" title="左侧 Dock 占位" subtitle="仅用于验证壳层 panel frame" height="fill">
|
||||
<Column gap="8">
|
||||
<Text text="这里用于检查 panel chrome 的边界、padding 和 split 稳定性。" />
|
||||
</Column>
|
||||
</Card>
|
||||
|
||||
<Splitter
|
||||
id="shell-center-right"
|
||||
axis="horizontal"
|
||||
splitRatio="0.72"
|
||||
splitterSize="10"
|
||||
splitterHitSize="18"
|
||||
primaryMin="280"
|
||||
secondaryMin="200"
|
||||
height="fill">
|
||||
<TabStrip
|
||||
id="document-tab-host"
|
||||
tabHeaderHeight="34"
|
||||
tabMinWidth="120"
|
||||
height="fill">
|
||||
<Tab id="document-tab-a" label="Document A" selected="true">
|
||||
<Card title="文档占位 A" subtitle="当前选中 = Document A" height="fill">
|
||||
<Column gap="8">
|
||||
<Text text="中心主区域此时应该只渲染当前选中的 tab 占位内容。" />
|
||||
</Column>
|
||||
</Card>
|
||||
</Tab>
|
||||
<Tab id="document-tab-b" label="Document B">
|
||||
<Card title="文档占位 B" subtitle="当前选中 = Document B" height="fill">
|
||||
<Column gap="8">
|
||||
<Text text="切到 Document B 后,Document A 的内容应该被隐藏。" />
|
||||
</Column>
|
||||
</Card>
|
||||
</Tab>
|
||||
<Tab id="document-tab-c" label="Document C">
|
||||
<Card title="文档占位 C" subtitle="当前选中 = Document C" height="fill">
|
||||
<Column gap="8">
|
||||
<Text text="这只是壳层 tab 占位,不是真实的 Editor 业务面板。" />
|
||||
</Column>
|
||||
</Card>
|
||||
</Tab>
|
||||
</TabStrip>
|
||||
|
||||
<Card id="right-dock-placeholder" title="右侧 Dock 占位" subtitle="仅用于验证壳层 panel frame" height="fill">
|
||||
<Column gap="8">
|
||||
<Text text="这里用于检查嵌套 split 和右侧占位 panel shell 是否稳定。" />
|
||||
</Column>
|
||||
</Card>
|
||||
</Splitter>
|
||||
</Splitter>
|
||||
|
||||
<Card id="bottom-dock-placeholder" title="底部 Dock 占位" subtitle="仅用于验证壳层 panel frame" height="fill">
|
||||
<Column gap="8">
|
||||
<Text text="这里用于检查底部 dock shell 和上下分割组合是否正常。" />
|
||||
</Column>
|
||||
</Card>
|
||||
</Splitter>
|
||||
</Column>
|
||||
</View>
|
||||
@@ -0,0 +1 @@
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
#include "Application.h"
|
||||
|
||||
int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE, LPWSTR, int nCmdShow) {
|
||||
return XCEngine::Tests::EditorUI::RunEditorUIValidationApp(
|
||||
hInstance,
|
||||
nCmdShow,
|
||||
"editor.shell.workspace_compose");
|
||||
}
|
||||
Reference in New Issue
Block a user