| Index: sky/specs/style.md
|
| diff --git a/sky/specs/style.md b/sky/specs/style.md
|
| index 214750bcc861a016ec8b5d3f334309b2ec44e330..5770a47e6532034b27096deffb4ced9a358d46f0 100644
|
| --- a/sky/specs/style.md
|
| +++ b/sky/specs/style.md
|
| @@ -496,8 +496,10 @@ taking into account shadow trees and child distribution, and the tree
|
| rooted at the document's RenderNode.
|
|
|
| If you come across a node that doesn't have an assigned RenderNode,
|
| -then create one and mark it "isNew", and place it in the appropriate
|
| -place in the RenderTree tree, after any nodes marked isGhost.
|
| +then create one, placing it in the appropriate place in the RenderTree
|
| +tree, after any nodes marked isGhost=true, with ownerLayoutManager
|
| +pointing to the parent RenderNode's layoutManager, and then, if
|
| +autoreap is false on the ownerLayoutManager, mark it "isNew".
|
|
|
| For each element, if the node's needsManager is true, call
|
| getLayoutManager() on the element, and if that's not null, and if the
|
| @@ -522,6 +524,11 @@ be faster.)
|
| When an Element is to be removed from its parent, regardless of the
|
| above, the node's renderNode attribute should be nulled out.
|
|
|
| +When a RenderNode is added with isNew=true, call its parent
|
| +RenderNode's LayoutManager's childAdded() callback. When a a
|
| +RenderNode has its isGhost property set to true, then call it's parent
|
| +RenderNode's LayoutManager's childRemoved() callback.
|
| +
|
|
|
| ```javascript
|
| callback any ValueResolver (any value, String propertyName, RenderNode node, Float containerWidth, Float containerHeight);
|
| @@ -668,6 +675,10 @@ class LayoutManager : EventTarget {
|
| virtual void release(RenderNode victim);
|
| // called when the RenderNode was removed from the tree
|
|
|
| + virtual void childAdded(RenderNode child);
|
| + virtual void childRemoved(RenderNode child);
|
| + // called when a child has its isNew or isGhost attributes set respectively
|
| +
|
| void setChildPosition(child, x, y); // sets child.x, child.y
|
| void setChildX(child, y); // sets child.x
|
| void setChildY(child, y); // sets child.y
|
|
|