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

Side by Side Diff: sky/sdk/lib/framework/layout2.dart

Issue 1157033006: DO NOT COMMIT - fn port to RenderNode, work in progress, does not work (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: fix adam's review comments Created 5 years, 7 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 unified diff | Download patch
« no previous file with comments | « sky/sdk/lib/framework/fn2.dart ('k') | sky/sdk/lib/framework/layouts/block.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 'node.dart'; 5 import 'node.dart';
6 import 'dart:sky' as sky; 6 import 'dart:sky' as sky;
7 7
8 // ABSTRACT LAYOUT 8 // ABSTRACT LAYOUT
9 9
10 class ParentData { 10 class ParentData {
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
94 return true; 94 return true;
95 } 95 }
96 void markNeedsLayout() { 96 void markNeedsLayout() {
97 assert(!_debugDoingLayout); 97 assert(!_debugDoingLayout);
98 assert(!_debugDoingPaint); 98 assert(!_debugDoingPaint);
99 if (_needsLayout) { 99 if (_needsLayout) {
100 assert(debugAncestorsAlreadyMarkedNeedsLayout()); 100 assert(debugAncestorsAlreadyMarkedNeedsLayout());
101 return; 101 return;
102 } 102 }
103 _needsLayout = true; 103 _needsLayout = true;
104 assert(parent is RenderNode); 104 if (_relayoutSubtreeRoot != null) {
105 if (_relayoutSubtreeRoot != null) 105 assert(parent is RenderNode);
106 parent.markNeedsLayout(); 106 parent.markNeedsLayout();
107 else 107 } else {
108 _nodesNeedingLayout.add(this); 108 _nodesNeedingLayout.add(this);
109 }
109 } 110 }
110 static void flushLayout() { 111 static void flushLayout() {
111 _debugDoingLayout = true; 112 _debugDoingLayout = true;
112 List<RenderNode> dirtyNodes = _nodesNeedingLayout; 113 List<RenderNode> dirtyNodes = _nodesNeedingLayout;
113 _nodesNeedingLayout = new List<RenderNode>(); 114 _nodesNeedingLayout = new List<RenderNode>();
114 dirtyNodes..sort((a, b) => a.depth - b.depth)..forEach((node) { 115 dirtyNodes..sort((a, b) => a.depth - b.depth)..forEach((node) {
115 if (node._needsLayout && node.attached) 116 if (node._needsLayout && node.attached)
116 node._doLayout(); 117 node._doLayout();
117 }); 118 });
118 _debugDoingLayout = false; 119 _debugDoingLayout = false;
(...skipping 455 matching lines...) Expand 10 before | Expand all | Expand 10 after
574 }) { 575 }) {
575 if (newOrientation != orientation) { 576 if (newOrientation != orientation) {
576 if (orientation != null && root != null) 577 if (orientation != null && root != null)
577 root.rotate(oldAngle: orientation, newAngle: newOrientation, time: timeF orRotation); 578 root.rotate(oldAngle: orientation, newAngle: newOrientation, time: timeF orRotation);
578 _orientation = newOrientation; 579 _orientation = newOrientation;
579 } 580 }
580 if ((newWidth != width) || (newHeight != height)) { 581 if ((newWidth != width) || (newHeight != height)) {
581 _width = newWidth; 582 _width = newWidth;
582 _height = newHeight; 583 _height = newHeight;
583 relayout(); 584 relayout();
585 } else {
586 layoutDone();
584 } 587 }
585 } 588 }
586 589
587 void relayout() { 590 void relayout() {
588 if (root != null) { 591 if (root != null) {
589 root.layout(new BoxConstraints( 592 root.layout(new BoxConstraints(
590 minWidth: width, 593 minWidth: width,
591 maxWidth: width, 594 maxWidth: width,
592 minHeight: height, 595 minHeight: height,
593 maxHeight: height 596 maxHeight: height
594 )); 597 ));
595 assert(root.width == width); 598 assert(root.width == width);
596 assert(root.height == height); 599 assert(root.height == height);
597 } 600 }
601 layoutDone();
598 } 602 }
599 603
600 void rotate({ int oldAngle, int newAngle, Duration time }) { 604 void rotate({ int oldAngle, int newAngle, Duration time }) {
601 assert(false); // nobody tells the screen to rotate, the whole rotate() danc e is started from our layout() 605 assert(false); // nobody tells the screen to rotate, the whole rotate() danc e is started from our layout()
602 } 606 }
603 607
604 bool hitTest(HitTestResult result, { double x, double y }) { 608 bool hitTest(HitTestResult result, { double x, double y }) {
605 if (x < 0.0 || x >= width || y < 0.0 || y >= height) 609 if (x < 0.0 || x >= width || y < 0.0 || y >= height)
606 return false; 610 return false;
607 if (root != null) { 611 if (root != null) {
(...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after
889 893
890 void hitTestChildren(HitTestResult result, { double x, double y }) { 894 void hitTestChildren(HitTestResult result, { double x, double y }) {
891 defaultHitTestChildren(result, x: x, y: y); 895 defaultHitTestChildren(result, x: x, y: y);
892 } 896 }
893 897
894 void paint(RenderNodeDisplayList canvas) { 898 void paint(RenderNodeDisplayList canvas) {
895 super.paint(canvas); 899 super.paint(canvas);
896 defaultPaint(canvas); 900 defaultPaint(canvas);
897 } 901 }
898 } 902 }
OLDNEW
« no previous file with comments | « sky/sdk/lib/framework/fn2.dart ('k') | sky/sdk/lib/framework/layouts/block.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698