Files
endorphin-tessera-gui/examples/source-layout.endor
codex-bot 1b5fe1069f
Verify Tessera GUI / verify (push) Failing after 7m30s
Run source measurement and arrangement in the frame pipeline
2026-10-21 15:58:30 +08:00

30 lines
981 B
Plaintext

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)