Files
endorphin-tessera-gui/examples/visual-protocols.endor
T
2026-10-21 02:42:16 +08:00

31 lines
1.1 KiB
Plaintext

class VisualResults {
width: Number
height: Number
childX: Number
childY: Number
color: String
}
class ProbeRect: RectBlock {
results: VisualResults
function onMount(self: ProbeRect, mount: Mount): Unit {
measured = self.measure(mount, Constraints(0, 0, 120, 80))
self.results.width = measured.width
self.results.height = measured.height
drawing = self.paint(mount, Bounds(12, 18, 200, 60))
self.results.color = drawing.commands.at(0).color
}
}
class ProbeColumn: Column {
results: VisualResults
function onMount(self: ProbeColumn, mount: Mount): Unit {
positions = self.arrange(mount, Bounds(20, 30, 500, 300))
self.results.childX = positions.children.at(0).x
self.results.childY = positions.children.at(0).y
}
}
results = VisualResults(0, 0, 0, 0, "等待挂载")
rect = ProbeRect(200, 60, 12, "#DDEEFF", results)
root = ProbeColumn(24, 16, TextBlock("对象的原生视觉协议", 2), rect, TextBlock("约束测量宽度"), ui.textOf(results, "width"), TextBlock("绘制颜色"), ui.textOf(results, "color"), results)
page = Page()
page.render(root)