Add XCUI editor collection primitives and stack rollback

This commit is contained in:
2026-04-05 06:36:50 +08:00
parent 9525053624
commit 585575a738
7 changed files with 294 additions and 4 deletions

View File

@@ -82,11 +82,27 @@ bool UIScreenStackController::ReplaceTop(
return PushScreen(asset, options) != 0;
}
if (!Pop()) {
if (m_system == nullptr) {
return false;
}
return PushScreen(asset, options) != 0;
const UIScreenStackEntry previousTop = m_entries.back();
const UIScreenLayerId replacementLayerId = m_system->PushScreen(asset, options);
if (replacementLayerId == 0) {
return false;
}
if (!m_system->RemoveLayer(previousTop.layerId)) {
m_system->RemoveLayer(replacementLayerId);
return false;
}
UIScreenStackEntry replacementEntry = {};
replacementEntry.layerId = replacementLayerId;
replacementEntry.asset = asset;
replacementEntry.options = options;
m_entries.back() = std::move(replacementEntry);
return true;
}
bool UIScreenStackController::Pop() {