Add XCUI input state validation sandbox batch

This commit is contained in:
2026-04-05 22:35:24 +08:00
parent 1908e81e5c
commit 5342e447af
7 changed files with 376 additions and 133 deletions

View File

@@ -1,92 +1,30 @@
<View
name="NewEditorShell"
theme="../themes/editor_shell.xctheme">
<Column padding="18" gap="14">
<Column padding="24" gap="16">
<Card
title="XCUI Editor Sandbox"
subtitle="Editor-layer proving ground | direct native renderer | hot reload"
title="XCUI Core Validation"
subtitle="Current batch: input state routing | minimal sandbox | native renderer"
tone="accent"
height="86">
<Row gap="10">
<Button text="Shell" />
<Button text="Panels" />
<Button text="Schema First" />
</Row>
height="90">
<Column gap="8">
<Text text="这个试验面板只保留当前批次需要检查的控件。" />
<Text text="无关的 editor 壳层面板暂时不放进来,避免干扰检查。" />
</Column>
</Card>
<Row gap="14" height="fill">
<Card title="Hierarchy" subtitle="scene graph" width="280">
<Column gap="8">
<Text text="Sandbox_City.xcscene" />
<Button text="World" />
<Button text="Main Camera" />
<Button text="Directional Light" />
<Button text="Player" tone="accent" />
<Button text="WeaponSocket" />
<Button text="FX_Trail" />
</Column>
</Card>
<Column width="fill" gap="14">
<Card
title="Scene"
subtitle="ViewportSlot comes later | shell composition first"
tone="accent-alt"
height="fill">
<Column gap="10">
<Row gap="10">
<Button text="Translate" />
<Button text="Rotate" />
<Button text="Scale" />
</Row>
<Text text="This sandbox stays native-rendered and does not host ImGui." />
<Text text="Use it to iterate shell chrome, panel composition, and authored XCUI." />
<Button text="Selection: Player" tone="accent" />
<Button text="Camera: Perspective" />
</Column>
</Card>
<Card title="Console" subtitle="wheel-scroll core validation" height="220">
<ScrollView id="console-scroll" height="fill">
<Column gap="8">
<Text text="Scroll here with the mouse wheel." />
<Text text="Check that content clips cleanly inside this card." />
<Text text="Info XCUI authored screen loaded." />
<Text text="Info Theme + schema resources are tracked for reload." />
<Text text="Warn Viewport host stays out of scope in this phase." />
<Text text="Todo Replace shell placeholders with Editor widgets." />
<Text text="Trace ScrollView should retain offset across frames." />
<Text text="Trace Wheel input should only affect the hovered view." />
<Text text="Trace Hidden rows must stay clipped below the footer." />
<Text text="Trace Resize should not corrupt the scroll offset clamp." />
<Text text="Trace Hot reload should rebuild layout without tearing." />
<Text text="Trace This panel exists only to validate XCUI core scroll." />
</Column>
</ScrollView>
</Card>
<Card title="Input Core" subtitle="hover focus active capture" height="196">
<Column gap="12">
<Text text="这一轮只需要检查下面这三个按钮。" />
<Row gap="12">
<Button id="input-hover" text="Hover / Focus" />
<Button id="input-capture" text="Pointer Capture" capturePointer="true" />
<Button id="input-route" text="Route Target" />
</Row>
<Text text="1. 鼠标移到左侧按钮hover 应该变化focus 应该保持空。" />
<Text text="2. 按住中间按钮不放focus、active、capture 都应该停在中间按钮。" />
<Text text="3. 按住中间按钮拖到右侧再松开hover 移到右侧capture 清空focus 仍留在中间。" />
</Column>
<Card
title="Inspector"
subtitle="schema-first scaffold"
width="336"
schema="../schemas/editor_inspector_shell.xcschema">
<Column gap="8">
<Text text="Transform" />
<Button text="Position 12.0, 1.8, -4.0" />
<Button text="Rotation 0.0, 36.5, 0.0" />
<Button text="Scale 1.0, 1.0, 1.0" />
<Text text="Character" />
<Button text="State Locomotion" />
<Button text="MoveSpeed 6.4" />
<Button text="JumpHeight 1.3" />
</Column>
</Card>
</Row>
<Card
title="Status"
subtitle="No ImGui host | authored XCUI drives the shell | fallback stays for resilience"
height="58" />
</Card>
</Column>
</View>