Shoot, you don't like the new method names suggested in Issue 166? ;) michael
On Wed, Sep 1, 2010 at 2:46 PM, <[email protected]> wrote: > Revision: 1067 > Author: allain.lalonde > Date: Wed Sep 1 12:45:28 2010 > Log: JS: Adding moveToFront and moveToBack to PNode > http://code.google.com/p/piccolo2d/source/detail?r=1067 > > Modified: > /piccolo2d.js/trunk/piccolo2d.js > /piccolo2d.js/trunk/test.html > > ======================================= > --- /piccolo2d.js/trunk/piccolo2d.js Wed Sep 1 12:01:18 2010 > +++ /piccolo2d.js/trunk/piccolo2d.js Wed Sep 1 12:45:28 2010 > @@ -509,6 +509,32 @@ > > getScale: function() { > return this.transform.getScale(); > + }, > + > + moveToFront: function() { > + if (this.parent && this.parent.children.length > 1) { > + this.parent.children = this.parent.children.remove(this); > + this.parent.children.push(this); > + > + this.invalidatePaint(); > + } > + return this; > + }, > + > + moveToBack: function() { > + if (this.parent && this.parent.children.length > 1) { > + var newSiblings = [this]; > + for (var i=0, n = this.parent.children.length; i<n; i++) { > + if (this.parent.children[i] != this) { > + newSiblings.push(this.parent.children[i]); > + } > + } > + > + this.parent.children = newSiblings; > + > + this.invalidatePaint(); > + } > + return this; > } > }); > > @@ -743,10 +769,10 @@ > function dispatchEvent(type, event, pickedNodes) { > var currentNode, listener; > > - for (var nodeIndex = 0; nodeIndex < pickedNodes.length; > nodeIndex += 1) { > + for (var nodeIndex = 0, pickedNodeCount = > pickedNodes.length; nodeIndex < pickedNodeCount; nodeIndex += 1) { > currentNode = pickedNodes[nodeIndex]; > while (currentNode) { > - for (var i = 0; i < currentNode.listeners.length; i > += 1) { > + for (var i = 0, listenerCount = > currentNode.listeners.length; i < listenerCount; i += 1) { > listener = currentNode.listeners[i]; > if (listener[type]) { > listener[type]({ > ======================================= > --- /piccolo2d.js/trunk/test.html Wed Sep 1 12:01:18 2010 > +++ /piccolo2d.js/trunk/test.html Wed Sep 1 12:45:28 2010 > @@ -465,6 +465,36 @@ > testNode.getFullBounds(); > ok(layoutChildrenCalled, "layoutChildren was not called"); > }); > + > + test("Move to front places child node at end of its parent's > children", function() { > + var a = new PNode(); > + var b = new PNode(); > + var parent = new PNode(); > + parent.addChild(a); > + parent.addChild(b); > + a.moveToFront(); > + same(parent.children[1], a); > + }); > + > + test("Move to back places child node at front of its parent's > children", function() { > + var a = new PNode(); > + var b = new PNode(); > + var parent = new PNode(); > + parent.addChild(a); > + parent.addChild(b); > + b.moveToBack(); > + same(parent.children[0], b); > + }); > + > + test("Move to front does nothing if child has no parent", > function() { > + var a = new PNode(); > + a.moveToFront(); > + }); > + > + test("Move to back does nothing if child has no parent", function() > { > + var a = new PNode(); > + a.moveToBack(); > + }); > } > > function testPRoot() { > > -- > Piccolo2D Developers Group: > http://groups.google.com/group/piccolo2d-dev?hl=en -- Piccolo2D Developers Group: http://groups.google.com/group/piccolo2d-dev?hl=en
