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

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

Issue 1168113005: ShrinkWrap the Stocks menu (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: more worky 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
« no previous file with comments | « sky/sdk/lib/framework/rendering/block.dart ('k') | sky/sdk/lib/framework/rendering/paragraph.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 42d0c3f18a6c035724e08657c78657a74ef30a9f..089075d2a09d185a7b661c63098ff796d4e686bf 100644
--- a/sky/sdk/lib/framework/rendering/box.dart
+++ b/sky/sdk/lib/framework/rendering/box.dart
@@ -329,6 +329,40 @@ class RenderConstrainedBox extends RenderProxyBox {
String debugDescribeSettings(String prefix) => '${super.debugDescribeSettings(prefix)}${prefix}additionalConstraints: ${additionalConstraints}\n';
}
+class RenderShrinkWrapWidth extends RenderProxyBox {
+ RenderShrinkWrapWidth({ RenderBox child }) : super(child);
+
+ BoxConstraints _getInnerConstraints(BoxConstraints constraints) {
+ double width = child.getMaxIntrinsicWidth(constraints);
+ assert(width == constraints.constrainWidth(width));
+ return new BoxConstraints(minWidth: width,
+ maxWidth: width,
+ minHeight: constraints.minHeight,
+ maxHeight: constraints.maxHeight);
+ }
+
+ double getMinIntrinsicWidth(BoxConstraints constraints) {
+ return child.getMaxIntrinsicWidth(constraints);
+ }
+
+ double getMaxIntrinsicWidth(BoxConstraints constraints) {
+ return child.getMaxIntrinsicWidth(constraints);
+ }
+
+ double getMinIntrinsicHeight(BoxConstraints constraints) {
+ return child.getMinIntrinsicHeight(_getInnerConstraints(constraints));
+ }
+
+ double getMaxIntrinsicHeight(BoxConstraints constraints) {
+ return child.getMaxIntrinsicHeight(_getInnerConstraints(constraints));
+ }
+
+ void performLayout() {
+ child.layout(_getInnerConstraints(constraints));
+ size = child.size;
+ }
+}
+
class RenderClip extends RenderProxyBox {
RenderClip({ RenderBox child }) : super(child);
@@ -361,27 +395,31 @@ class RenderPadding extends RenderBox with RenderObjectWithChildMixin<RenderBox>
}
double getMinIntrinsicWidth(BoxConstraints constraints) {
+ double totalPadding = padding.left + padding.right;
if (child != null)
- return child.getMinIntrinsicWidth(constraints.deflate(padding));
- return constraints.constrainWidth(padding.left + padding.right);
+ return child.getMinIntrinsicWidth(constraints.deflate(padding)) + totalPadding;
+ return constraints.constrainWidth(totalPadding);
}
double getMaxIntrinsicWidth(BoxConstraints constraints) {
+ double totalPadding = padding.left + padding.right;
if (child != null)
- return child.getMaxIntrinsicWidth(constraints.deflate(padding));
- return constraints.constrainWidth(padding.left + padding.right);
+ return child.getMaxIntrinsicWidth(constraints.deflate(padding)) + totalPadding;
+ return constraints.constrainWidth(totalPadding);
}
double getMinIntrinsicHeight(BoxConstraints constraints) {
+ double totalPadding = padding.top + padding.bottom;
if (child != null)
- return child.getMinIntrinsicHeight(constraints.deflate(padding));
- return constraints.constrainHeight(padding.top + padding.bottom);
+ return child.getMinIntrinsicHeight(constraints.deflate(padding)) + totalPadding;
+ return constraints.constrainHeight(totalPadding);
}
double getMaxIntrinsicHeight(BoxConstraints constraints) {
+ double totalPadding = padding.top + padding.bottom;
if (child != null)
- return child.getMaxIntrinsicHeight(constraints.deflate(padding));
- return constraints.constrainHeight(padding.top + padding.bottom);
+ return child.getMaxIntrinsicHeight(constraints.deflate(padding)) + totalPadding;
+ return constraints.constrainHeight(totalPadding);
}
void performLayout() {
« no previous file with comments | « sky/sdk/lib/framework/rendering/block.dart ('k') | sky/sdk/lib/framework/rendering/paragraph.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698