summaryrefslogtreecommitdiffhomepage
path: root/packages/kernel/src/server.cpp
diff options
context:
space:
mode:
authorAdam Malczewski <[email protected]>2026-06-13 17:31:27 +0900
committerAdam Malczewski <[email protected]>2026-06-13 17:31:27 +0900
commitc1dbe7494fb88ceb59bc26914e47ef38eba1cf9e (patch)
tree0195cc431eb5b72603344bab3542b0e22e38b31e /packages/kernel/src/server.cpp
parent64c21337e7ccd3e158462771cd2e2886554256f0 (diff)
downloadunbox-c1dbe7494fb88ceb59bc26914e47ef38eba1cf9e.tar.gz
unbox-c1dbe7494fb88ceb59bc26914e47ef38eba1cf9e.zip
Slice 10 b2: UiSurface list/container data bindings
The stage dock is one RML document rendering a variable list of slots (one per minimized window). Adds the deferred slice-6 list-binding shape to UiSurface: bind_list(name, count) + typed per-row fields bind_list_string/int/double/bool (list, field, getter(row)) read as {{ row.field }} via data-for, and bind_list_event(list, event, callback(row)) routed from data-event-*(it_index). dirty(<list>) re-reads count + visible rows. Same error-isolation + bind-before- first-frame contract as the scalar bindings; nested lists unsupported. kernel suite green on build + build-asan (asan clean). Edits confined to packages/kernel/.
Diffstat (limited to 'packages/kernel/src/server.cpp')
-rw-r--r--packages/kernel/src/server.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/packages/kernel/src/server.cpp b/packages/kernel/src/server.cpp
index b302c68..95631df 100644
--- a/packages/kernel/src/server.cpp
+++ b/packages/kernel/src/server.cpp
@@ -89,6 +89,14 @@ auto Server::ui_pixel(int x, int y) const -> unsigned int {
return impl_->substrate != nullptr ? impl_->substrate->surface_pixel(x, y) : 0U;
}
+auto Server::ui_element_count(const char* tag) const -> int {
+ return impl_->substrate != nullptr ? impl_->substrate->element_count(tag) : 0;
+}
+
+auto Server::ui_click_element(const char* tag, int index) -> bool {
+ return impl_->substrate != nullptr && impl_->substrate->click_element(tag, index);
+}
+
void Server::ui_set_touch_override(UiTouchOverride ov) {
if (impl_->substrate == nullptr) {
return;