Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 library node; | |
| 2 | |
| 3 class Node { | |
| 4 | |
| 5 // nodes always have an order greater than their ancestors'. | |
| 6 // there's no guarantee regarding order between siblings | |
| 7 | |
| 8 int _order = 0; | |
|
ojan
2015/04/23 20:28:32
bikeshed: I might call this _treeDepth. It took me
Hixie
2015/04/23 20:45:13
Makes sense. It's not quite the depth (e.g. if you
ojan
2015/04/23 21:12:36
Hmmm...then I think I don't understand what this d
| |
| 9 int get order => _order; | |
| 10 void reorderChild(Node child) { // internal, do not call | |
| 11 assert(child._attached == _attached); | |
| 12 if (child._order <= _order) { | |
| 13 child._order = _order + 1; | |
| 14 child.reorderChildren(); | |
| 15 } | |
| 16 } | |
| 17 void reorderChildren() { // internal, do not call | |
| 18 // override this in subclasses with child nodes | |
| 19 // simply call reorderChild(child) for each child | |
| 20 } | |
| 21 | |
| 22 bool _attached = false; | |
| 23 bool get attached => _attached; | |
| 24 void attach() { | |
| 25 // override this in subclasses with child nodes | |
| 26 // simply call attach() for each child then call your superclass | |
| 27 _attached = true; | |
| 28 attachChildren(); | |
| 29 } | |
| 30 attachChildren() { } // workaround for lack of inter-class mixins in Dart | |
| 31 void detach() { | |
| 32 // override this in subclasses with child nodes | |
| 33 // simply call detach() for each child then call your superclass | |
| 34 _attached = false; | |
| 35 detachChildren(); | |
| 36 } | |
| 37 detachChildren() { } // workaround for lack of inter-class mixins in Dart | |
| 38 | |
| 39 void setAsChild(RenderNode child) { // only for use by subclasses | |
| 40 assert(child != null); | |
| 41 if (attached) | |
| 42 child.attach(); | |
| 43 reorderChild(child); | |
| 44 } | |
| 45 void dropChild(RenderNode child) { // only for use by subclasses | |
| 46 assert(child != null); | |
| 47 assert(child.attached == attached); | |
| 48 if (attached) | |
| 49 child.detach(); | |
| 50 } | |
| 51 | |
| 52 } | |
| OLD | NEW |