OSDN Git Service

Version 0.6.149, fix X.Audio & X.UI.
[pettanr/clientJs.git] / 0.6.x / js / 20_ui / 08_Box.js
index 0a3ad33..1d01e5e 100644 (file)
@@ -54,7 +54,7 @@ var XUI_Layout_Canvas = X[ 'UI' ][ 'Layout' ][ 'Canvas' ] = XUI_createLayout( {
 \r
 var XUI_Box = XUI_AbstractUINode.inherits(\r
        'X.UI._Box',\r
-       X_Class.PRIVATE_DATA, // 現状 super 指定がないとconstructor未定擬時に親のconstructor が使われない\r
+       X_Class.NONE,\r
        {\r
                supportAttrs    : XUI_Attr_createAttrDef( XUI_AbstractUINode.prototype.supportAttrs, XUI_Layout_Canvas.overrideAttrsForSelf ),\r
                \r
@@ -69,7 +69,7 @@ var XUI_Box = XUI_AbstractUINode.inherits(
                scrollingX      : 0, // TODO 現在のスクロール位置\r
                scrollingY      : 0, // TODO \r
 \r
-               Constructor : function( layout, args ){\r
+               Constructor : function( user, layout, args ){\r
                        var i = 0,\r
                                l = args.length || 1,\r
                                j = -1,\r
@@ -77,10 +77,12 @@ var XUI_Box = XUI_AbstractUINode.inherits(
                        \r
                        //if( !args.length ) args = [ args ];\r
                        \r
-                       if( !this.User[ 'instanceOf' ]( X.UI.Box ) ){\r
+                       if( !user[ 'instanceOf' ]( X.UI.Box ) ){\r
                                //throw new Error( 'Box を継承したインスタンスだけが _Box のオーナーになれます' );\r
                        };                      \r
                        \r
+                       this.User   = user;\r
+                       \r
                        this.xnode  = X_Doc_create( 'div' );\r
                        \r
                        // すでに定義されていればそちらを採用\r
@@ -90,7 +92,7 @@ var XUI_Box = XUI_AbstractUINode.inherits(
                        for( ; i < l; ++i ){\r
                                arg = args[ i ];\r
                                if( arg[ 'instanceOf' ] && arg[ 'instanceOf' ]( X.UI.AbstractUINode ) ){\r
-                                       _data = X_Class_getPrivate( arg );\r
+                                       _data = X_Pair_get( arg );\r
                                        if( !uinodes ) this.uinodes = uinodes = [];\r
                                        uinodes[ ++j ] = _data;\r
                                        if( _data.parent ){\r
@@ -227,7 +229,7 @@ var XUI_Box = XUI_AbstractUINode.inherits(
 \r
                        //console.log( '### AddAt ' + this.phase )\r
                        for( l = _uinodes.length; i < l; ++i ){\r
-                               data = X_Class_getPrivate( _uinodes[ i ] );\r
+                               data = X_Pair_get( _uinodes[ i ] );\r
                                _p1  = p1 && data.phase < 1;\r
                                _p2  = p2 && data.phase < 2;\r
                                _p1 && data.initialize( this.root, this.rootData, this.User, this );\r
@@ -253,7 +255,7 @@ var XUI_Box = XUI_AbstractUINode.inherits(
 \r
                        //console.log( '### AddAt ' + this.phase )\r
                        for( ; i; ){\r
-                               data = X_Class_getPrivate( _uinodes[ --i ] );\r
+                               data = X_Pair_get( _uinodes[ --i ] );\r
                                if( ( n = uinodes.indexOf( data ) ) !== -1 ){\r
                                        uinodes.splice( n, 1 );\r
                                        data._remove();\r
@@ -302,32 +304,31 @@ var XUI_Box = XUI_AbstractUINode.inherits(
 X.UI.Box = X.UI.AbstractUINode.inherits(\r
        'Box',\r
        X_Class.NONE,\r
-       XUI_Box,\r
        {\r
                Constructor : function(){\r
-                       X_Class_newPrivate( this, XUI_Layout_Canvas, arguments );\r
+                       X_Pair_create( this, XUI_Box( this, XUI_Layout_Canvas, arguments ) );\r
                },\r
                \r
                add : function( node /* , node, node ... */ ){\r
-                       X_Class_getPrivate( this ).addAt( this.numNodes() + 1, Array.prototype.slice.call( arguments ) );\r
+                       X_Pair_get( this ).addAt( this.numNodes() + 1, Array.prototype.slice.call( arguments ) );\r
                        return this;\r
                },\r
                addAt : function( index, node /* , node, node ... */ ){\r
                        if( index < 0 ) index = 0;\r
-                       X_Class_getPrivate( this ).addAt( arguments[ 0 ], Array.prototype.slice.call( arguments, 1 ) );\r
+                       X_Pair_get( this ).addAt( arguments[ 0 ], Array.prototype.slice.call( arguments, 1 ) );\r
                        return this;\r
                },\r
                remove : function( node /* , node, node ... */ ){\r
-                       X_Class_getPrivate( this )[ 'remove' ]( Array.prototype.slice.call( arguments ) );\r
+                       X_Pair_get( this )[ 'remove' ]( Array.prototype.slice.call( arguments ) );\r
                        return this;\r
                },\r
                removeAt : function( from, length ){\r
-                       X_Class_getPrivate( this ).removeAt( from, length );\r
+                       X_Pair_get( this ).removeAt( from, length );\r
                        return this;\r
                },\r
                getNodesByClass : function( klass ){\r
                        var ret     = [],\r
-                               uinodes = X_Class_getPrivate( this ).uinodes,\r
+                               uinodes = X_Pair_get( this ).uinodes,\r
                                i, l, node;\r
                        if( !uinodes || uinodes.length === 0 ) return ret;\r
                        for( i = 0, l = uinodes.length; i < l; ++i ){\r
@@ -340,16 +341,16 @@ X.UI.Box = X.UI.AbstractUINode.inherits(
                        return this.getNodeAt( 0 );\r
                },\r
                getLastChild : function(){\r
-                       var uinodes = X_Class_getPrivate( this ).uinodes;\r
+                       var uinodes = X_Pair_get( this ).uinodes;\r
                        return uinodes && uinodes.length && uinodes[ uinodes.length - 1 ].User || null;\r
                },\r
                getNodeAt : function( index ){\r
                        if( index < 0 ) return null;\r
-                       var uinodes = X_Class_getPrivate( this ).uinodes;\r
+                       var uinodes = X_Pair_get( this ).uinodes;\r
                        return uinodes && uinodes[ index ].User || null;\r
                },\r
                numNodes : function(){\r
-                       var uinodes = X_Class_getPrivate( this ).uinodes;\r
+                       var uinodes = X_Pair_get( this ).uinodes;\r
                        return uinodes && uinodes.length || 0;\r
                }\r
        }\r
@@ -391,10 +392,13 @@ X.UI.Box.presets = function(){
        };\r
        \r
        if( privateKlass ){\r
+               /*\r
+                * スーパークラスの属性定義リストをレイアウトの持つ属性定義で上書きした新しい属性定義リストを作る。\r
+                */\r
                supports = XUI_Attr_createAttrDef( privateKlass.prototype.supportAttrs, layout.overrideAttrsForSelf );\r
                \r
                klass = this.inherits( privateKlass );\r
-               privateKlass.prototype.supportAttrs = supports,\r
+               privateKlass.prototype.supportAttrs = supports;\r
                privateKlass.prototype.attrClass    = XUI_Attr_preset( privateKlass.prototype.attrClass, supports, attrs );\r
        } else {\r
                supports = XUI_Attr_createAttrDef( shadow.prototype.supportAttrs, layout.overrideAttrsForSelf );\r