feat(new_editor): wire project, inspector, and viewport runtime

This commit is contained in:
2026-04-19 00:03:25 +08:00
parent 8257403036
commit a57b322bc7
168 changed files with 14829 additions and 2507 deletions

View File

@@ -14,6 +14,7 @@ namespace {
using XCEngine::UI::Editor::Host::InputModifierTracker;
using XCEngine::UI::UIInputEventType;
using XCEngine::UI::UIPointerButton;
TEST(InputModifierTrackerTest, ControlStatePersistsAcrossChordKeyDownAndClearsOnKeyUp) {
InputModifierTracker tracker = {};
@@ -52,11 +53,31 @@ TEST(InputModifierTrackerTest, PointerModifiersMergeMouseFlagsWithTrackedKeyboar
VK_MENU,
0x00380001);
const auto modifiers = tracker.BuildPointerModifiers(MK_SHIFT);
const auto modifiers = tracker.BuildPointerModifiers(MK_SHIFT | MK_RBUTTON);
EXPECT_TRUE(modifiers.shift);
EXPECT_TRUE(modifiers.alt);
EXPECT_FALSE(modifiers.control);
EXPECT_FALSE(modifiers.super);
EXPECT_FALSE(modifiers.leftMouse);
EXPECT_TRUE(modifiers.rightMouse);
}
TEST(InputModifierTrackerTest, PointerMessagesUpdateTrackedMouseButtonState) {
InputModifierTracker tracker = {};
const auto leftDown = tracker.ApplyPointerMessage(
UIInputEventType::PointerButtonDown,
UIPointerButton::Left,
0u);
EXPECT_TRUE(leftDown.leftMouse);
EXPECT_TRUE(tracker.GetCurrentModifiers().leftMouse);
const auto leftUp = tracker.ApplyPointerMessage(
UIInputEventType::PointerButtonUp,
UIPointerButton::Left,
0u);
EXPECT_FALSE(leftUp.leftMouse);
EXPECT_FALSE(tracker.GetCurrentModifiers().leftMouse);
}
TEST(InputModifierTrackerTest, RightControlIsTrackedIndependentlyFromLeftControl) {