OSDN Git Service

bug fixes superCall, merge X.UI.Gesture to X.UI.AbstructUINode.
[pettanr/clientJs.git] / 0.6.x / js / 20_ui / 08_Box.js
index 3fb51e4..0aa8008 100644 (file)
@@ -24,7 +24,7 @@ var XUI_Layout_Canvas = X[ 'UI' ][ 'Layout' ][ 'Canvas' ] = XUI_createLayout( {
 \r
                data.preMesure( w, h );\r
                \r
-               console.log( w + ' > ' + data.boxWidth );\r
+               //console.log( w + ' > ' + data.boxWidth );\r
                \r
                //  data.boxWidth と data.boxHeight のどちらかでも Infinity\r
                if( isNeedsDetection && data.boxWidth + data.boxHeight === XUI_Attr_AUTO ) return false;\r
@@ -35,7 +35,7 @@ var XUI_Layout_Canvas = X[ 'UI' ][ 'Layout' ][ 'Canvas' ] = XUI_createLayout( {
                _h = data.contentHeight;\r
 \r
                if( ( uinodes = data.uinodes ) && ( l = uinodes.length ) ){\r
-                       console.log( _w + ' x ' + _h + ' l:' + l );\r
+                       //console.log( _w + ' x ' + _h + ' l:' + l );\r
                        for( i = 0; i < l; ++i ){\r
                                node = uinodes[ i ];\r
                                node.calculate( false, _x, _y, _w, _h );\r
@@ -70,8 +70,8 @@ var XUI_Box = XUI_AbstractUINode.inherits(
                pointerChildren : true,\r
                through         : false,\r
 \r
-               scrollingX      : 0, // TODO 現在のスクロール位置\r
-               scrollingY      : 0, // TODO \r
+               scrollXEm       : 0,\r
+               scrollYEm       : 0,\r
 \r
                Constructor : function( user, layout, args ){\r
                        var i = 0,\r
@@ -83,7 +83,7 @@ var XUI_Box = XUI_AbstractUINode.inherits(
                        \r
                        if( !user[ 'instanceOf' ]( X.UI.Box ) ){\r
                                //throw new Error( 'Box を継承したインスタンスだけが _Box のオーナーになれます' );\r
-                       };                      \r
+                       };\r
                        \r
                        this.User   = user;\r
                        \r
@@ -123,47 +123,35 @@ var XUI_Box = XUI_AbstractUINode.inherits(
        /* Rellay */\r
                initialize : function( root, rootData, parent, parentData ){\r
                        var uinodes = this.uinodes,\r
-                               i       = uinodes && uinodes.length;\r
-                       this.root       = root;\r
-                       this.rootData   = rootData;\r
-                       this.parent     = parent;\r
-                       this.parentData = parentData;\r
+                               l       = uinodes && uinodes.length, i = 0;\r
                        \r
-                       if( i ){\r
-                               for( ; i; ){\r
-                                       uinodes[ --i ].initialize( root, rootData, this.User, this );\r
-                               };                              \r
+                       for( ; i < l; ++i ){\r
+                               uinodes[ i ].initialize( root, rootData, this.User, this );\r
                        };\r
                        \r
-                       this.phase = 1;\r
-                       this.User[ 'dispatch' ]( { type : XUI_Event.INIT } );\r
+                       XUI_AbstractUINode.prototype.initialize.apply( this, arguments );\r
                },\r
                \r
                addToParent : function( parentXNode ){\r
                        var uinodes = this.uinodes,\r
                                l       = uinodes && uinodes.length,\r
-                               i;\r
+                               i = 0;\r
 \r
-                       parentXNode && parentXNode[ 'append' ]( this.xnode );\r
-                       \r
-                       if( l ){\r
-                               for( i = 0; i < l; ++i ){\r
-                                       uinodes[ i ].addToParent( this.xnode );\r
-                               };\r
+                       for( ; i < l; ++i ){\r
+                               uinodes[ i ].addToParent( this.xnode );\r
                        };\r
                        \r
-                       this.phase = 2;\r
-                       this.User[ 'dispatch' ]( { type : XUI_Event.ADDED } );\r
+                       XUI_AbstractUINode.prototype.addToParent.apply( this, arguments );\r
                },\r
                \r
        /* Rellay */\r
                creationComplete : function(){\r
                        var uinodes = this.uinodes,\r
-                               i       = uinodes && uinodes.length;\r
-                       if( i ){\r
-                               for( ; i; ){\r
-                                       uinodes[ --i ].creationComplete();\r
-                               };                              \r
+                               l       = uinodes && uinodes.length,\r
+                               i = 0;\r
+                               \r
+                       for( ; i < l; ++i ){\r
+                               uinodes[ i ].creationComplete();\r
                        };\r
                        \r
                        XUI_AbstractUINode.prototype.creationComplete.apply( this, arguments );\r
@@ -188,13 +176,15 @@ var XUI_Box = XUI_AbstractUINode.inherits(
                \r
                capcher : function( x, y ){\r
                        var uinodes, child, _x, _y, hit, i;\r
+                       \r
                        if( this.pointerDisabled ) return false;\r
+\r
                        delete this.hitChildData;\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
+                               _x = x - this.scrollXEm;\r
+                               _y = y - this.scrollYEm;\r
                                for( ; i; ){\r
                                        child = uinodes[ --i ];\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
@@ -205,18 +195,20 @@ var XUI_Box = XUI_AbstractUINode.inherits(
                                };\r
                        };\r
                        if( this.through ){\r
-                               this.hitChildData && !this.hovering && ( this.rootData.hoverList[ this.rootData.hoverList.length ] = this );\r
+                               this.hitChildData && !this.hovering && ( XUI_UINODES_HOVER[ XUI_UINODES_HOVER.length ] = this );\r
                                return !!this.hitChildData;\r
                        };\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
+                       ( this.hitChildData || hit ) && !this.hovering && ( XUI_UINODES_HOVER[ XUI_UINODES_HOVER.length ] = this );\r
+                       if( hit && this.hitChildData === null ){\r
+                               XUI_uinodeTarget = this;\r
+                       };\r
                        return hit || !!this.hitChildData;\r
                },\r
                \r
                addAt : function( index, _uinodes ){\r
                        //console.log( '# AddAt ' + this.phase )\r
-                       var uinodes = this.uinodes,\r
+                       var uinodes = this.uinodes || ( this.uinodes = [] ),\r
                                num     = uinodes.length,\r
                                p1      = 1 <= this.phase,\r
                                p2      = 2 <= this.phase,\r
@@ -307,18 +299,18 @@ X.UI.Box = X.UI.AbstractUINode.inherits(
                },\r
                \r
                add : function( /* node, node, node ... */ ){\r
-                       X_Pair_get( this ).addAt( this.numNodes() + 1, X_Object_cloneArray( arguments ) );\r
+                       X_Pair_get( this ).addAt( this.numNodes() + 1, X_Array_copy( arguments ) );\r
                        return this;\r
                },\r
                addAt : function( index /* , node , node, node ... */ ){\r
                        var nodes;\r
                        if( index < 0 ) index = 0;\r
-                       nodes = X_Object_cloneArray( arguments );\r
+                       nodes = X_Array_copy( arguments );\r
                        X_Pair_get( this ).addAt( nodes.shift(), nodes );\r
                        return this;\r
                },\r
                remove : function( /* node, node, node ... */ ){\r
-                       X_Pair_get( this )[ 'remove' ]( X_Object_cloneArray( arguments ) );\r
+                       X_Pair_get( this )[ 'remove' ]( X_Array_copy( arguments ) );\r
                        return this;\r
                },\r
                removeAt : function( from, length ){\r
@@ -354,7 +346,7 @@ X.UI.Box = X.UI.AbstractUINode.inherits(
                },\r
                \r
                clone : function( opt_cloneListener ){\r
-                       var clone   = XUI_AbstractUINode.prototype.clone.call( this,  opt_cloneListener ),\r
+                       var clone   = X.UI.AbstractUINode.prototype.clone.call( this,  opt_cloneListener ),\r
                                uinodes = X_Pair_get( this ).uinodes,\r
                                i       = 0,\r
                                l       = uinodes && uinodes.length,\r