OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 import 'dart:math' as math; | 5 import 'dart:math' as math; |
6 | 6 |
7 import 'box.dart'; | 7 import 'box.dart'; |
8 import 'object.dart'; | 8 import 'object.dart'; |
9 | 9 |
10 class StackParentData extends BoxParentData with ContainerParentDataMixin<Render
Box> { | 10 class StackParentData extends BoxParentData with ContainerParentDataMixin<Render
Box> { |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
63 RenderBox child = firstChild; | 63 RenderBox child = firstChild; |
64 while (child != null) { | 64 while (child != null) { |
65 assert(child.parentData is StackParentData); | 65 assert(child.parentData is StackParentData); |
66 if (!child.parentData.isPositioned) { | 66 if (!child.parentData.isPositioned) { |
67 hasNonPositionedChildren = true; | 67 hasNonPositionedChildren = true; |
68 width = math.max(width, child.getMaxIntrinsicWidth(constraints)); | 68 width = math.max(width, child.getMaxIntrinsicWidth(constraints)); |
69 } | 69 } |
70 child = child.parentData.nextSibling; | 70 child = child.parentData.nextSibling; |
71 } | 71 } |
72 if (!hasNonPositionedChildren) | 72 if (!hasNonPositionedChildren) |
73 return constraints.constrainWidth(double.INFINITY); | 73 return constraints.constrainWidth(); |
74 assert(width == constraints.constrainWidth(width)); | 74 assert(width == constraints.constrainWidth(width)); |
75 return width; | 75 return width; |
76 } | 76 } |
77 | 77 |
78 double getMinIntrinsicHeight(BoxConstraints constraints) { | 78 double getMinIntrinsicHeight(BoxConstraints constraints) { |
79 double height = constraints.minHeight; | 79 double height = constraints.minHeight; |
80 RenderBox child = firstChild; | 80 RenderBox child = firstChild; |
81 while (child != null) { | 81 while (child != null) { |
82 assert(child.parentData is StackParentData); | 82 assert(child.parentData is StackParentData); |
83 if (!child.parentData.isPositioned) | 83 if (!child.parentData.isPositioned) |
(...skipping 10 matching lines...) Expand all Loading... |
94 RenderBox child = firstChild; | 94 RenderBox child = firstChild; |
95 while (child != null) { | 95 while (child != null) { |
96 assert(child.parentData is StackParentData); | 96 assert(child.parentData is StackParentData); |
97 if (!child.parentData.isPositioned) { | 97 if (!child.parentData.isPositioned) { |
98 hasNonPositionedChildren = true; | 98 hasNonPositionedChildren = true; |
99 height = math.max(height, child.getMaxIntrinsicHeight(constraints)); | 99 height = math.max(height, child.getMaxIntrinsicHeight(constraints)); |
100 } | 100 } |
101 child = child.parentData.nextSibling; | 101 child = child.parentData.nextSibling; |
102 } | 102 } |
103 if (!hasNonPositionedChildren) | 103 if (!hasNonPositionedChildren) |
104 return constraints.constrainHeight(double.INFINITY); | 104 return constraints.constrainHeight(); |
105 assert(height == constraints.constrainHeight(height)); | 105 assert(height == constraints.constrainHeight(height)); |
106 return height; | 106 return height; |
107 } | 107 } |
108 | 108 |
109 double getDistanceToActualBaseline(TextBaseline baseline) { | 109 double getDistanceToActualBaseline(TextBaseline baseline) { |
110 return defaultGetDistanceToHighestActualBaseline(baseline); | 110 return defaultGetDistanceToHighestActualBaseline(baseline); |
111 } | 111 } |
112 | 112 |
113 void performLayout() { | 113 void performLayout() { |
114 bool hasNonPositionedChildren = false; | 114 bool hasNonPositionedChildren = false; |
(...skipping 18 matching lines...) Expand all Loading... |
133 } | 133 } |
134 | 134 |
135 child = parentData.nextSibling; | 135 child = parentData.nextSibling; |
136 } | 136 } |
137 | 137 |
138 if (hasNonPositionedChildren) | 138 if (hasNonPositionedChildren) |
139 size = new Size(width, height); | 139 size = new Size(width, height); |
140 else | 140 else |
141 size = constraints.constrain(Size.infinite); | 141 size = constraints.constrain(Size.infinite); |
142 | 142 |
143 assert(size.width < double.INFINITY); | 143 assert(!size.isInfinite); |
144 assert(size.height < double.INFINITY); | |
145 assert(size.width == constraints.constrainWidth(width)); | 144 assert(size.width == constraints.constrainWidth(width)); |
146 assert(size.height == constraints.constrainHeight(height)); | 145 assert(size.height == constraints.constrainHeight(height)); |
147 | 146 |
148 BoxConstraints innerConstraints = new BoxConstraints.loose(size); | 147 BoxConstraints innerConstraints = new BoxConstraints.loose(size); |
149 | 148 |
150 child = firstChild; | 149 child = firstChild; |
151 while (child != null) { | 150 while (child != null) { |
152 assert(child.parentData is StackParentData); | 151 assert(child.parentData is StackParentData); |
153 final StackParentData parentData = child.parentData; | 152 final StackParentData parentData = child.parentData; |
154 | 153 |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
193 } | 192 } |
194 | 193 |
195 void hitTestChildren(HitTestResult result, { Point position }) { | 194 void hitTestChildren(HitTestResult result, { Point position }) { |
196 defaultHitTestChildren(result, position: position); | 195 defaultHitTestChildren(result, position: position); |
197 } | 196 } |
198 | 197 |
199 void paint(RenderCanvas canvas) { | 198 void paint(RenderCanvas canvas) { |
200 defaultPaint(canvas); | 199 defaultPaint(canvas); |
201 } | 200 } |
202 } | 201 } |
OLD | NEW |