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 import 'dart:sky' as sky; | 6 import 'dart:sky' as sky; |
7 import 'package:sky/framework/app.dart'; | 7 import 'package:sky/framework/app.dart'; |
8 import 'package:sky/framework/layout2.dart'; | 8 import 'package:sky/framework/layout2.dart'; |
9 | 9 |
10 const double kTwoPi = 2 * math.PI; | 10 const double kTwoPi = 2 * math.PI; |
(...skipping 380 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
391 _child = value; | 391 _child = value; |
392 adoptChild(_child); | 392 adoptChild(_child); |
393 markNeedsLayout(); | 393 markNeedsLayout(); |
394 } | 394 } |
395 | 395 |
396 void setParentData(RenderNode child) { | 396 void setParentData(RenderNode child) { |
397 if (child.parentData is! SectorParentData) | 397 if (child.parentData is! SectorParentData) |
398 child.parentData = new SectorParentData(); | 398 child.parentData = new SectorParentData(); |
399 } | 399 } |
400 | 400 |
401 BoxDimensions getIntrinsicDimensions(BoxConstraints constraints) { | 401 sky.Size getIntrinsicDimensions(BoxConstraints constraints) { |
402 if (child == null) | 402 if (child == null) |
403 return new BoxDimensions.withConstraints(constraints, width: 0.0, height:
0.0); | 403 return constraints.constrain(new sky.Size(0.0, 0.0)); |
404 assert(child is RenderSector); | 404 assert(child is RenderSector); |
405 assert(child.parentData is SectorParentData); | 405 assert(child.parentData is SectorParentData); |
406 assert(!constraints.isInfinite); | 406 assert(!constraints.isInfinite); |
407 double maxChildDeltaRadius = math.min(constraints.maxWidth, constraints.maxH
eight) / 2.0 - innerRadius; | 407 double maxChildDeltaRadius = math.min(constraints.maxWidth, constraints.maxH
eight) / 2.0 - innerRadius; |
408 SectorDimensions childDimensions = child.getIntrinsicDimensions(new SectorCo
nstraints(maxDeltaRadius: maxChildDeltaRadius), innerRadius); | 408 SectorDimensions childDimensions = child.getIntrinsicDimensions(new SectorCo
nstraints(maxDeltaRadius: maxChildDeltaRadius), innerRadius); |
409 double dimension = (innerRadius + childDimensions.deltaRadius) * 2.0; | 409 double dimension = (innerRadius + childDimensions.deltaRadius) * 2.0; |
410 return new BoxDimensions.withConstraints(constraints, width: dimension, heig
ht: dimension); | 410 return constraints.constrain(new sky.Size(dimension, dimension)); |
411 } | 411 } |
412 | 412 |
413 void performLayout() { | 413 void performLayout() { |
414 if (child == null) { | 414 if (child == null) { |
415 size = constraints.constrain(new sky.Size(0.0, 0.0)); | 415 size = constraints.constrain(new sky.Size(0.0, 0.0)); |
416 } else { | 416 } else { |
417 assert(child is RenderSector); | 417 assert(child is RenderSector); |
418 assert(!constraints.isInfinite); | 418 assert(!constraints.isInfinite); |
419 double maxChildDeltaRadius = math.min(constraints.maxWidth, constraints.ma
xHeight) / 2.0 - innerRadius; | 419 double maxChildDeltaRadius = math.min(constraints.maxWidth, constraints.ma
xHeight) / 2.0 - innerRadius; |
420 assert(child.parentData is SectorParentData); | 420 assert(child.parentData is SectorParentData); |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
496 rootCircle.add(new RenderSolidColor(0xFF0000FF, desiredDeltaTheta: kTwoPi * 0.
4)); | 496 rootCircle.add(new RenderSolidColor(0xFF0000FF, desiredDeltaTheta: kTwoPi * 0.
4)); |
497 var stack = new RenderSectorSlice(padding: 2.0); | 497 var stack = new RenderSectorSlice(padding: 2.0); |
498 stack.add(new RenderSolidColor(0xFFFFFF00, desiredDeltaRadius: 20.0)); | 498 stack.add(new RenderSolidColor(0xFFFFFF00, desiredDeltaRadius: 20.0)); |
499 stack.add(new RenderSolidColor(0xFFFF9000, desiredDeltaRadius: 20.0)); | 499 stack.add(new RenderSolidColor(0xFFFF9000, desiredDeltaRadius: 20.0)); |
500 stack.add(new RenderSolidColor(0xFF00FF00)); | 500 stack.add(new RenderSolidColor(0xFF00FF00)); |
501 rootCircle.add(stack); | 501 rootCircle.add(stack); |
502 | 502 |
503 var root = new RenderBoxToRenderSectorAdapter(innerRadius: 50.0, child: rootCi
rcle); | 503 var root = new RenderBoxToRenderSectorAdapter(innerRadius: 50.0, child: rootCi
rcle); |
504 app = new AppView(root); | 504 app = new AppView(root); |
505 } | 505 } |
OLD | NEW |