X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=0.6.x%2Fjs%2Fui%2F06_AbstractUINode.js;h=73d9c4bb6788a84683db200ab8261067a3227f55;hb=46d3fdf2559c59963e53ff6136c3fd58cd8f7a6d;hp=0897a62511805b993eb6535cd2af81b49519ffac;hpb=a93316a3916f7aca87b1cf6e4488382b749eca76;p=pettanr%2FclientJs.git diff --git a/0.6.x/js/ui/06_AbstractUINode.js b/0.6.x/js/ui/06_AbstractUINode.js index 0897a62..73d9c4b 100644 --- a/0.6.x/js/ui/06_AbstractUINode.js +++ b/0.6.x/js/ui/06_AbstractUINode.js @@ -25,13 +25,6 @@ var _AbstractUINode = X.EventDispatcher.inherits( reserveEvents : null, gesture : null, - x : 0, - y : 0, - - t : 0, // top - l : 0, // left - b : 0, // bottom - r : 0, // right absoluteX : 0, absoluteY : 0, @@ -69,27 +62,14 @@ var _AbstractUINode = X.EventDispatcher.inherits( // :hover, :focus, :disabled initialize : function( root, rootData, parent, parentData ){ - var events = this.reserveEvents, - l, i; - this.root = root; this.rootData = rootData; - this.hoverList = rootData.hoverList; this.parent = parent; this.parentData = parentData; //this.xnode = X.Dom.Node.create( 'div' ); this.phase = 1; this.dispatch( { type : X.UI.Event.INIT } ); - - // html 要素が親に追加されるまで控えていたイベントの登録 - if( events && ( l = events.length ) ){ - for( i = 0; i < l; ++i ){ - this.listen.apply( this, events[ i ] ); - }; - events.length = 0; - delete this.reserveEvents; - }; }, addToParent : function( parentElement ){ @@ -100,8 +80,20 @@ var _AbstractUINode = X.EventDispatcher.inherits( }, creationComplete : function(){ + var events = this.reserveEvents, + l, i; + this.phase = 3; this.User.dispatch( { type : X.UI.Event.CREATION_COMPLETE } ); + + // html 要素が親に追加されるまで控えていたイベントの登録 + if( events && ( l = events.length ) ){ + for( i = 0; i < l; ++i ){ + this.listen.apply( this, events[ i ] ); + }; + events.length = 0; + delete this.reserveEvents; + }; }, /* @@ -423,8 +415,8 @@ var _AbstractUINode = X.EventDispatcher.inherits( * X.Dom.BoxModel の情報を引きながら top,left,width,height,padding,border の設定 */ updateLayout : function( x, y ){ - x += this.boxX; - y += this.boxY; + this.boxX = x; + this.boxY = y; this.xnode .css( 'left', x ? x + 'em' : 0 ) .css( 'top', y ? y + 'em' : 0 ) @@ -749,11 +741,12 @@ var _AbstractUINode = X.EventDispatcher.inherits( capcher : function( x, y ){ if( this.pointerDisabled ) return false; - x -= this.x; - y -= this.y; + x -= this.boxX; + y -= this.boxY; if( 0 <= x && x < this.boxWidth && 0 <= y && y < this.boxHeight ){ - !this.hovering && ( this.hoverList[ this.hoverList.length ] = this ); + + !this.hovering && ( this.rootData.hoverList[ this.rootData.hoverList.length ] = this ); this.rootData.targetNodeData = this; return true; }; @@ -775,6 +768,7 @@ var _AbstractUINode = X.EventDispatcher.inherits( this.gesture.listen( type ); }; } else { + console.log( type ) root = this.rootData; counter = root.eventCounter; if( counter[ type ] ){ @@ -951,11 +945,11 @@ var AbstractUINode = X.Class.create( }, getX : function(){ // dirty の場合、rootData.calculate - return X.Class._getPrivate( this ).x; + return X.Class._getPrivate( this ).boxX; }, getY : function(){ // dirty の場合、rootData.calculate - return X.Class._getPrivate( this ).y; + return X.Class._getPrivate( this ).boxY; }, getAbsoluteX : function(){ // dirty の場合、rootData.calculate