using Unity.UIWidgets.ui; using Unity.UIWidgets.gestures; using UnityEngine; namespace Unity.UIWidgets.rendering { {% macro RenderProxyBoxMixin(with) %} public abstract class RenderProxyBoxMixin{{with}} : {{with}} where T : RenderBox { public override void setupParentData(RenderObject child) { if (!(child.parentData is ParentData)) { child.parentData = new ParentData(); } } protected internal override float computeMinIntrinsicWidth(float height) { if (this.child != null) { return this.child.getMinIntrinsicWidth(height); } return 0.0f; } protected internal override float computeMaxIntrinsicWidth(float height) { if (this.child != null) { return this.child.getMaxIntrinsicWidth(height); } return 0.0f; } protected internal override float computeMinIntrinsicHeight(float width) { if (this.child != null) { return this.child.getMinIntrinsicHeight(width); } return 0.0f; } protected internal override float computeMaxIntrinsicHeight(float width) { if (this.child != null) { return this.child.getMaxIntrinsicHeight(width); } return 0.0f; } protected override float? computeDistanceToActualBaseline(TextBaseline baseline) { if (child != null) { return child.getDistanceToActualBaseline(baseline); } return base.computeDistanceToActualBaseline(baseline); } protected override void performLayout() { if (child != null) { child.layout(constraints, parentUsesSize: true); size = child.size; } else { performResize(); } } protected override bool hitTestChildren(BoxHitTestResult result, Offset position = null) { if (child != null) { return child.hitTest(result, position); } return false; } public override void applyPaintTransform(RenderObject child, Matrix4 transform) { } public override void paint(PaintingContext context, Offset offset) { if (child != null) { context.paintChild(child, offset); } } } {% endmacro %} {{ RenderProxyBoxMixin('RenderObjectWithChildMixinRenderBox') }} public abstract class RenderProxyBoxMixinRenderObjectWithChildMixinRenderBoxRenderStack: RenderProxyBoxMixinRenderObjectWithChildMixinRenderBox { } }