| Index: sky/sdk/lib/framework/rendering/box.dart
|
| diff --git a/sky/sdk/lib/framework/rendering/box.dart b/sky/sdk/lib/framework/rendering/box.dart
|
| index f40d2bc6e0b123f5ee766fdfd3d4a96d2e53be9d..b019cb4ed23a9bf2495b94253b662b83c844f952 100644
|
| --- a/sky/sdk/lib/framework/rendering/box.dart
|
| +++ b/sky/sdk/lib/framework/rendering/box.dart
|
| @@ -127,13 +127,20 @@ abstract class RenderBox extends RenderObject {
|
| child.parentData = new BoxParentData();
|
| }
|
|
|
| - // override this to report what dimensions you would have if you
|
| - // were laid out with the given constraints this can walk the tree
|
| - // if it must, but it should be as cheap as possible; just get the
|
| - // dimensions and nothing else (e.g. don't calculate hypothetical
|
| - // child positions if they're not needed to determine dimensions)
|
| - Size getIntrinsicDimensions(BoxConstraints constraints) {
|
| - return constraints.constrain(Size.zero);
|
| + double getMinIntrinsicWidth(BoxConstraints constraints) {
|
| + return constraints.constrainWidth(0.0);
|
| + }
|
| +
|
| + double getMaxIntrinsicWidth(BoxConstraints constraints) {
|
| + return constraints.constrainWidth(0.0);
|
| + }
|
| +
|
| + double getMinIntrinsicHeight(BoxConstraints constraints) {
|
| + return constraints.constrainHeight(0.0);
|
| + }
|
| +
|
| + double getMaxIntrinsicHeight(BoxConstraints constraints) {
|
| + return constraints.constrainHeight(0.0);
|
| }
|
|
|
| BoxConstraints get constraints => super.constraints as BoxConstraints;
|
| @@ -167,10 +174,28 @@ abstract class RenderProxyBox extends RenderBox with RenderObjectWithChildMixin<
|
| this.child = child;
|
| }
|
|
|
| - Size getIntrinsicDimensions(BoxConstraints constraints) {
|
| + double getMinIntrinsicWidth(BoxConstraints constraints) {
|
| if (child != null)
|
| - return child.getIntrinsicDimensions(constraints);
|
| - return super.getIntrinsicDimensions(constraints);
|
| + return child.getMinIntrinsicWidth(constraints);
|
| + return super.getMinIntrinsicWidth(constraints);
|
| + }
|
| +
|
| + double getMaxIntrinsicWidth(BoxConstraints constraints) {
|
| + if (child != null)
|
| + return child.getMaxIntrinsicWidth(constraints);
|
| + return super.getMaxIntrinsicWidth(constraints);
|
| + }
|
| +
|
| + double getMinIntrinsicHeight(BoxConstraints constraints) {
|
| + if (child != null)
|
| + return child.getMinIntrinsicHeight(constraints);
|
| + return super.getMinIntrinsicHeight(constraints);
|
| + }
|
| +
|
| + double getMaxIntrinsicHeight(BoxConstraints constraints) {
|
| + if (child != null)
|
| + return child.getMaxIntrinsicHeight(constraints);
|
| + return super.getMaxIntrinsicHeight(constraints);
|
| }
|
|
|
| void performLayout() {
|
| @@ -214,8 +239,20 @@ class RenderSizedBox extends RenderProxyBox {
|
| markNeedsLayout();
|
| }
|
|
|
| - Size getIntrinsicDimensions(BoxConstraints constraints) {
|
| - return constraints.constrain(_desiredSize);
|
| + double getMinIntrinsicWidth(BoxConstraints constraints) {
|
| + return constraints.constrainWidth(_desiredSize.width);
|
| + }
|
| +
|
| + double getMaxIntrinsicWidth(BoxConstraints constraints) {
|
| + return constraints.constrainWidth(_desiredSize.width);
|
| + }
|
| +
|
| + double getMinIntrinsicHeight(BoxConstraints constraints) {
|
| + return constraints.constrainHeight(_desiredSize.height);
|
| + }
|
| +
|
| + double getMaxIntrinsicHeight(BoxConstraints constraints) {
|
| + return constraints.constrainHeight(_desiredSize.height);
|
| }
|
|
|
| void performLayout() {
|
| @@ -245,10 +282,28 @@ class RenderConstrainedBox extends RenderProxyBox {
|
| markNeedsLayout();
|
| }
|
|
|
| - Size getIntrinsicDimensions(BoxConstraints constraints) {
|
| - if (child == null)
|
| - return constraints.constrain(Size.zero);
|
| - return child.getIntrinsicDimensions(constraints.apply(_additionalConstraints));
|
| + double getMinIntrinsicWidth(BoxConstraints constraints) {
|
| + if (child != null)
|
| + return child.getMinIntrinsicWidth(constraints.apply(_additionalConstraints));
|
| + return constraints.constrainWidth(0.0);
|
| + }
|
| +
|
| + double getMaxIntrinsicWidth(BoxConstraints constraints) {
|
| + if (child != null)
|
| + return child.getMaxIntrinsicWidth(constraints.apply(_additionalConstraints));
|
| + return constraints.constrainWidth(0.0);
|
| + }
|
| +
|
| + double getMinIntrinsicHeight(BoxConstraints constraints) {
|
| + if (child != null)
|
| + return child.getMinIntrinsicHeight(constraints.apply(_additionalConstraints));
|
| + return constraints.constrainHeight(0.0);
|
| + }
|
| +
|
| + double getMaxIntrinsicHeight(BoxConstraints constraints) {
|
| + if (child != null)
|
| + return child.getMaxIntrinsicHeight(constraints.apply(_additionalConstraints));
|
| + return constraints.constrainHeight(0.0);
|
| }
|
|
|
| void performLayout() {
|
| @@ -294,12 +349,28 @@ class RenderPadding extends RenderBox with RenderObjectWithChildMixin<RenderBox>
|
| markNeedsLayout();
|
| }
|
|
|
| - Size getIntrinsicDimensions(BoxConstraints constraints) {
|
| - assert(padding != null);
|
| - constraints = constraints.deflate(padding);
|
| - if (child == null)
|
| - return super.getIntrinsicDimensions(constraints);
|
| - return child.getIntrinsicDimensions(constraints);
|
| + double getMinIntrinsicWidth(BoxConstraints constraints) {
|
| + if (child != null)
|
| + return child.getMinIntrinsicWidth(constraints.deflate(padding));
|
| + return constraints.constrainWidth(padding.left + padding.right);
|
| + }
|
| +
|
| + double getMaxIntrinsicWidth(BoxConstraints constraints) {
|
| + if (child != null)
|
| + return child.getMaxIntrinsicWidth(constraints.deflate(padding));
|
| + return constraints.constrainWidth(padding.left + padding.right);
|
| + }
|
| +
|
| + double getMinIntrinsicHeight(BoxConstraints constraints) {
|
| + if (child != null)
|
| + return child.getMinIntrinsicHeight(constraints.deflate(padding));
|
| + return constraints.constrainHeight(padding.top + padding.bottom);
|
| + }
|
| +
|
| + double getMaxIntrinsicHeight(BoxConstraints constraints) {
|
| + if (child != null)
|
| + return child.getMaxIntrinsicHeight(constraints.deflate(padding));
|
| + return constraints.constrainHeight(padding.top + padding.bottom);
|
| }
|
|
|
| void performLayout() {
|
|
|