Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(12)

Unified Diff: sky/sdk/lib/rendering/box.dart

Issue 1189603003: Remove RenderSizedBox. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: sky/sdk/lib/rendering/box.dart
diff --git a/sky/sdk/lib/rendering/box.dart b/sky/sdk/lib/rendering/box.dart
index 96228fccf27f527cc00e14c881387ed197da8812..e973944128b7251372e3e7b5e5a890bb44cf3f27 100644
--- a/sky/sdk/lib/rendering/box.dart
+++ b/sky/sdk/lib/rendering/box.dart
@@ -72,6 +72,14 @@ class BoxConstraints {
minHeight = size.height,
maxHeight = size.height;
+ BoxConstraints.tightFor({
+ double width,
+ double height
+ }): minWidth = width != null ? width : 0.0,
+ maxWidth = width != null ? width : double.INFINITY,
+ minHeight = height != null ? height : 0.0,
+ maxHeight = height != null ? height : double.INFINITY;
+
BoxConstraints.loose(Size size)
: minWidth = 0.0,
maxWidth = size.width,
@@ -101,29 +109,30 @@ class BoxConstraints {
BoxConstraints apply(BoxConstraints constraints) {
return new BoxConstraints(
- minWidth: math.max(minWidth, constraints.minWidth),
- maxWidth: math.min(maxWidth, constraints.maxWidth),
- minHeight: math.max(minHeight, constraints.minHeight),
- maxHeight: math.min(maxHeight, constraints.maxHeight));
+ minWidth: clamp(min: constraints.minWidth, max: constraints.maxWidth, value: minWidth),
+ maxWidth: clamp(min: constraints.minWidth, max: constraints.maxWidth, value: maxWidth),
+ minHeight: clamp(min: constraints.minHeight, max: constraints.maxHeight, value: minHeight),
+ maxHeight: clamp(min: constraints.minHeight, max: constraints.maxHeight, value: maxHeight)
+ );
}
BoxConstraints applyWidth(double width) {
- return new BoxConstraints(minWidth: math.max(minWidth, width),
- maxWidth: math.min(maxWidth, width),
+ return new BoxConstraints(minWidth: math.max(math.min(maxWidth, width), minWidth),
+ maxWidth: math.max(math.min(maxWidth, width), minWidth),
minHeight: minHeight,
maxHeight: maxHeight);
}
- BoxConstraints applyMinWidth(double width) {
- return new BoxConstraints(minWidth: math.max(minWidth, width),
- maxWidth: maxWidth,
+ BoxConstraints applyMinWidth(double newMinWidth) {
+ return new BoxConstraints(minWidth: math.max(minWidth, newMinWidth),
+ maxWidth: math.max(maxWidth, newMinWidth),
minHeight: minHeight,
maxHeight: maxHeight);
}
- BoxConstraints applyMaxWidth(double width) {
+ BoxConstraints applyMaxWidth(double newMaxWidth) {
return new BoxConstraints(minWidth: minWidth,
- maxWidth: math.min(maxWidth, width),
+ maxWidth: math.min(maxWidth, newMaxWidth),
minHeight: minHeight,
maxHeight: maxHeight);
}
@@ -131,22 +140,22 @@ class BoxConstraints {
BoxConstraints applyHeight(double height) {
return new BoxConstraints(minWidth: minWidth,
maxWidth: maxWidth,
- minHeight: math.max(minHeight, height),
- maxHeight: math.min(maxHeight, height));
+ minHeight: math.max(math.min(maxHeight, height), minHeight),
+ maxHeight: math.max(math.min(maxHeight, height), minHeight));
}
- BoxConstraints applyMinHeight(double height) {
+ BoxConstraints applyMinHeight(double newMinHeight) {
return new BoxConstraints(minWidth: minWidth,
maxWidth: maxWidth,
- minHeight: math.max(minHeight, height),
- maxHeight: maxHeight);
+ minHeight: math.max(minHeight, newMinHeight),
+ maxHeight: math.max(maxHeight, newMinHeight));
}
- BoxConstraints applyMaxHeight(double height) {
+ BoxConstraints applyMaxHeight(double newMaxHeight) {
return new BoxConstraints(minWidth: minWidth,
maxWidth: maxWidth,
minHeight: minHeight,
- maxHeight: math.min(maxHeight, height));
+ maxHeight: math.min(maxHeight, newMaxHeight));
}
final double minWidth;
@@ -345,50 +354,6 @@ class RenderProxyBox extends RenderBox with RenderObjectWithChildMixin<RenderBox
}
-class RenderSizedBox extends RenderProxyBox {
-
- RenderSizedBox({
- RenderBox child,
- Size desiredSize: Size.infinite
- }) : super(child), _desiredSize = desiredSize {
- assert(desiredSize != null);
- }
-
- Size _desiredSize;
- Size get desiredSize => _desiredSize;
- void set desiredSize (Size value) {
- assert(value != null);
- if (_desiredSize == value)
- return;
- _desiredSize = value;
- markNeedsLayout();
- }
-
- 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() {
- size = constraints.constrain(_desiredSize);
- if (child != null)
- child.layout(new BoxConstraints.tight(size));
- }
-
- String debugDescribeSettings(String prefix) => '${super.debugDescribeSettings(prefix)}${prefix}desiredSize: ${desiredSize}\n';
-}
-
class RenderConstrainedBox extends RenderProxyBox {
RenderConstrainedBox({
RenderBox child,
@@ -409,34 +374,34 @@ class RenderConstrainedBox extends RenderProxyBox {
double getMinIntrinsicWidth(BoxConstraints constraints) {
if (child != null)
- return child.getMinIntrinsicWidth(constraints.apply(_additionalConstraints));
+ return child.getMinIntrinsicWidth(_additionalConstraints.apply(constraints));
return constraints.constrainWidth(0.0);
}
double getMaxIntrinsicWidth(BoxConstraints constraints) {
if (child != null)
- return child.getMaxIntrinsicWidth(constraints.apply(_additionalConstraints));
+ return child.getMaxIntrinsicWidth(_additionalConstraints.apply(constraints));
return constraints.constrainWidth(0.0);
}
double getMinIntrinsicHeight(BoxConstraints constraints) {
if (child != null)
- return child.getMinIntrinsicHeight(constraints.apply(_additionalConstraints));
+ return child.getMinIntrinsicHeight(_additionalConstraints.apply(constraints));
return constraints.constrainHeight(0.0);
}
double getMaxIntrinsicHeight(BoxConstraints constraints) {
if (child != null)
- return child.getMaxIntrinsicHeight(constraints.apply(_additionalConstraints));
+ return child.getMaxIntrinsicHeight(_additionalConstraints.apply(constraints));
return constraints.constrainHeight(0.0);
}
void performLayout() {
if (child != null) {
- child.layout(constraints.apply(_additionalConstraints), parentUsesSize: true);
+ child.layout(_additionalConstraints.apply(constraints), parentUsesSize: true);
size = child.size;
} else {
- performResize();
+ size = _additionalConstraints.apply(constraints).constrain(Size.zero);
}
}

Powered by Google App Engine
This is Rietveld 408576698