Run source measurement and arrangement in the frame pipeline
Verify Tessera GUI / verify (push) Failing after 7m30s

This commit is contained in:
2026-10-21 15:58:30 +08:00
parent 7b11e32eb6
commit 1b5fe1069f
12 changed files with 854 additions and 75 deletions
+29
View File
@@ -0,0 +1,29 @@
class Metrics {
width: Number
left: Number
function expand(self: Metrics, event: Event): Unit {
self.width = 260
self.left = 68
}
}
class MeasuredRect: RectBlock {
function measure(self: MeasuredRect, mount: Mount, constraints: Constraints): MeasureResult {
parent = mount.parent()
return MeasureResult(parent.block.metrics.width, 60)
}
}
class OffsetColumn: Column {
metrics: Metrics
function arrange(self: OffsetColumn, mount: Mount, geometry: Bounds): Arrangement {
positions = Column.arrange(self, mount, geometry)
positions.children.at(0).x = self.metrics.left
return positions
}
}
metrics = Metrics(200, 44)
rect = MeasuredRect(80, 20, 0, "#526AC7")
button = Button("更新布局")
root = OffsetColumn(24, 16, rect, TextBlock("尺寸来自源码 measure,位置来自源码 arrange"), button, metrics)
connection = button.on("click", metrics.expand)
page = Page()
page.render(root)