};\r
\r
data.postMesure();\r
- data.updateLayout( x, y );\r
+ data.updateLayout( x + data.boxX, y + data.boxY );\r
}\r
});\r
\r
\r
-var _Box = _AbstractUINode.inherits(\r
- '_Box',\r
+X.UI._Box = X.UI._AbstractUINode.inherits(\r
+ 'X.UI._Box',\r
X.Class.PRIVATE_DATA | X.Class.SUPER_ACCESS, // 現状 super 指定がないとconstructor未定擬時に親のconstructor が使われない\r
{\r
layout : null,\r
pointerChildren : true,\r
through : false,\r
\r
+ scrollingX : 0,\r
+ scrollingY : 0,\r
+\r
Constructor : function( layout, args ){\r
var i = 0,\r
l = args.length,\r
j = -1,\r
uinodes, arg, _data, attrs, support;\r
\r
- if( !this.User.instanceOf( Box ) ){\r
+ if( !this.User.instanceOf( X.UI.Box ) ){\r
//throw new Error( 'Box を継承したインスタンスだけが _Box のオーナーになれます' );\r
}; \r
\r
\r
for( ; i < l; ++i ){\r
arg = args[ i ];\r
- if( arg.instanceOf && arg.instanceOf( AbstractUINode ) ){\r
+ if( arg.instanceOf && arg.instanceOf( X.UI.AbstractUINode ) ){\r
_data = X.Class._getPrivate( arg );\r
if( !uinodes ) this.uinodes = uinodes = [];\r
uinodes[ ++j ] = _data;\r
i = uinodes && uinodes.length;\r
this.root = root;\r
this.rootData = rootData;\r
- this.hoverList = rootData.hoverList;\r
this.parent = parent;\r
this.parentData = parentData;\r
//this.xnode = X.Dom.Node.create( 'div' );\r
}; \r
};\r
\r
- this.phase = 3;\r
- this.User.dispatch( { type : X.UI.Event.CREATION_COMPLETE } );\r
+ X.UI._AbstractUINode.prototype.creationComplete.apply( this, arguments );\r
},\r
\r
calculate : function( isNeedsDetection, x, y, w, h ){\r
var uinodes, child, _x, _y, hit, i;\r
if( this.pointerDisabled ) return false;\r
delete this.hitChildData;\r
- x -= this.x;\r
- y -= this.y;\r
- if( this.pointerChildren && ( uinodes = this.uinodes ) ){\r
+ x -= this.boxX;\r
+ y -= this.boxY;\r
+ if( this.pointerChildren && ( uinodes = this.uinodes ) && ( i = uinodes.length ) ){\r
_x = x - this.scrollingX;\r
_y = y - this.scrollingY;\r
- for( i = uinodes.length; i; ){\r
+ for( ; i; ){\r
child = uinodes[ --i ];\r
- if( !child.pointerDisabled && child.l <= _x && _x < child.r && child.t <= _y && _y < child.b && child.capcher( _x, _y ) ){\r
+ if( !child.pointerDisabled && child.boxX <= _x && _x < child.boxX + child.boxWidth && child.boxY <= _y && _y < child.boxY + child.boxHeight && child.capcher( _x, _y ) ){\r
+ //console.log( 'hit child ' + _x + ' ' + _y + ' boxX:' + child.boxX + ' boxY:' + child.boxY );\r
this.hitChildData = child;\r
break;\r
};\r
};\r
};\r
if( this.through ){\r
- this.hitChildData && !this.hovering && ( this.hoverList[ this.hoverList.length ] = this );\r
+ this.hitChildData && !this.hovering && ( this.rootData.hoverList[ this.rootData.hoverList.length ] = this );\r
return !!this.hitChildData;\r
};\r
- hit = 0 <= x && x < this.w && 0 <= y && y < this.h;\r
- ( this.hitChildData || hit ) && !this.hovering && ( this.hoverList[ this.hoverList.length ] = this );\r
+ hit = 0 <= x && x < this.boxWidth && 0 <= y && y < this.boxHeight;\r
+ ( this.hitChildData || hit ) && !this.hovering && ( this.rootData.hoverList[ this.rootData.hoverList.length ] = this );\r
if( hit && this.hitChildData === null ) this.rootData.targetNodeData = this;\r
return hit || !!this.hitChildData;\r
},\r
_p2 && data.addToParent( this.xnode );\r
uinodes[ uinodes.length ] = data; \r
};\r
- //p3 && data.phase < 3 && data.afterAddition();\r
- p3 && data.phase < 4 && data.creationComplete();\r
+ p3 && data.phase < 3 && data.creationComplete();\r
};\r
4 <= this.phase && this.rootData.reserveCalc();\r
},\r
}\r
);\r
\r
-var Box = AbstractUINode.inherits(\r
+X.UI.Box = X.UI.AbstractUINode.inherits(\r
'Box',\r
X.Class.SUPER_ACCESS,\r
- _Box,\r
+ X.UI._Box,\r
{\r
Constructor : function(){\r
X.Class._newPrivate( this, X.UI.Layout.Canvas, arguments );\r
* layout が設定されている Box のサブクラスに対して、layout を指定できない.\r
* \r
*/\r
-Box.presets = function(){\r
+X.UI.Box.presets = function(){\r
var args = arguments,\r
i = 0,\r
l = args.length, \r
); \r
};\r
\r
- klass.presets = this.presets || Box.presets;\r
+ klass.presets = this.presets || X.UI.Box.presets;\r
\r
return klass;\r
};\r