OSDN Git Service

Version 0.6.141, fix X.UI.ScrollBox.
[pettanr/clientJs.git] / 0.6.x / js / 20_ui / 08_Box.js
index dfe2e15..0a3ad33 100644 (file)
@@ -1,15 +1,15 @@
 \r
-X.UI.Layout.Canvas = X.UI.Layout.create( {\r
+var XUI_Layout_Canvas = X[ 'UI' ][ 'Layout' ][ 'Canvas' ] = XUI_createLayout( {\r
        name : 'CanvasLayout',\r
        \r
        overrideAttrsForSelf : {\r
                selectable  : false,\r
-               role        : [ 0, X.UI.Dirty.CLEAN, X.UI.Attr.USER.UINODE, X.UI.Attr.Type.INIT_ONLY | X.UI.Attr.Type.LIST, 'none,chrome,container' ],\r
+               role        : [ 0, XUI_Dirty.CLEAN, XUI_Attr_USER.UINODE, XUI_Attr_Type.INIT_ONLY | XUI_Attr_Type.LIST, 'none,chrome,container' ],\r
                \r
-               width       : [ '100%',         X.UI.Dirty.LAYOUT, X.UI.Attr.USER.LAYOUT, X.UI.Attr.Type.LENGTH | X.UI.Attr.Type.PERCENT ],\r
-               maxWidth    : [ X.UI.Attr.AUTO, X.UI.Dirty.LAYOUT, X.UI.Attr.USER.LAYOUT, X.UI.Attr.Type.LENGTH | X.UI.Attr.Type.PERCENT ],\r
-               height      : [ 0,              X.UI.Dirty.LAYOUT, X.UI.Attr.USER.LAYOUT, X.UI.Attr.Type.LENGTH | X.UI.Attr.Type.PERCENT ],\r
-               maxHeight   : [ X.UI.Attr.AUTO, X.UI.Dirty.LAYOUT, X.UI.Attr.USER.LAYOUT, X.UI.Attr.Type.LENGTH | X.UI.Attr.Type.PERCENT ]\r
+               width       : [ '100%',         XUI_Dirty.LAYOUT, XUI_Attr_USER.LAYOUT, XUI_Attr_Type.LENGTH | XUI_Attr_Type.PERCENT ],\r
+               maxWidth    : [ XUI_Attr_AUTO, XUI_Dirty.LAYOUT, XUI_Attr_USER.LAYOUT, XUI_Attr_Type.LENGTH | XUI_Attr_Type.PERCENT ],\r
+               height      : [ 0,              XUI_Dirty.LAYOUT, XUI_Attr_USER.LAYOUT, XUI_Attr_Type.LENGTH | XUI_Attr_Type.PERCENT ],\r
+               maxHeight   : [ XUI_Attr_AUTO, XUI_Dirty.LAYOUT, XUI_Attr_USER.LAYOUT, XUI_Attr_Type.LENGTH | XUI_Attr_Type.PERCENT ]\r
        },\r
        \r
        overrideAttrsForChild : {\r
@@ -24,7 +24,7 @@ X.UI.Layout.Canvas = X.UI.Layout.create( {
 \r
                data.preMesure( w, h );\r
                \r
-               if( isNeedsDetection && ( data.boxWidth === X.UI.Attr.AUTO || data.boxHeight === X.UI.Attr.AUTO ) ) return false;\r
+               if( isNeedsDetection && ( data.boxWidth === XUI_Attr_AUTO || data.boxHeight === XUI_Attr_AUTO ) ) return false;\r
                \r
                _x = data.contentL;\r
                _y = data.contentT;\r
@@ -37,23 +37,26 @@ X.UI.Layout.Canvas = X.UI.Layout.create( {
                                node.calculate( false, _x, _y, _w, _h );\r
                        };\r
                } else\r
-               if( data.contentHeight === X.UI.Attr.AUTO ){\r
-                       data.contentHeight = data.minContentHeight !== X.UI.Attr.AUTO ? data.minContentHeight : 0;\r
+               if( data.contentHeight === XUI_Attr_AUTO ){\r
+                       data.contentHeight = data.minContentHeight !== XUI_Attr_AUTO ? data.minContentHeight : 0;\r
                };\r
                \r
                data.postMesure();\r
-               data.updateLayout( x + data.boxX, y + data.boxY );\r
-               \r
+\r
+               if( !isNeedsDetection ){\r
+                       data.boxX += x;\r
+                       data.boxY += y;                 \r
+               };\r
                return true;\r
        }\r
 });\r
 \r
 \r
-X.UI._Box = X.UI._AbstractUINode.inherits(\r
+var XUI_Box = XUI_AbstractUINode.inherits(\r
        'X.UI._Box',\r
-       X_Class.PRIVATE_DATA | X_Class.SUPER_ACCESS, // 現状 super 指定がないとconstructor未定擬時に親のconstructor が使われない\r
+       X_Class.PRIVATE_DATA, // 現状 super 指定がないとconstructor未定擬時に親のconstructor が使われない\r
        {\r
-               supportAttrs    : XUI_Attr_createAttrDef( X.UI._AbstractUINode.prototype.supportAttrs, X.UI.Layout.Canvas.overrideAttrsForSelf ),\r
+               supportAttrs    : XUI_Attr_createAttrDef( XUI_AbstractUINode.prototype.supportAttrs, XUI_Layout_Canvas.overrideAttrsForSelf ),\r
                \r
                layout          : null,\r
                uinodes         : null,\r
@@ -63,8 +66,8 @@ X.UI._Box = X.UI._AbstractUINode.inherits(
                pointerChildren : true,\r
                through         : false,\r
 \r
-               scrollingX      : 0,\r
-               scrollingY      : 0,\r
+               scrollingX      : 0, // TODO 現在のスクロール位置\r
+               scrollingY      : 0, // TODO \r
 \r
                Constructor : function( layout, args ){\r
                        var i = 0,\r
@@ -97,7 +100,7 @@ X.UI._Box = X.UI._AbstractUINode.inherits(
                                if( arg[ 'instanceOf' ] && arg[ 'instanceOf' ]( Node ) ){\r
                                        //this.layout = arg;\r
                                } else\r
-                               if( arg[ 'instanceOf' ] && arg[ 'instanceOf' ]( X.UI.Layout.Base ) ){\r
+                               if( arg[ 'instanceOf' ] && arg[ 'instanceOf' ]( XUI_LayoutBase ) ){\r
                                        //this.layout = arg;\r
                                } else\r
                                if( X_Type_isObject( arg ) ){\r
@@ -133,7 +136,7 @@ X.UI._Box = X.UI._AbstractUINode.inherits(
                        };\r
                        \r
                        this.phase = 1;\r
-                       this.User[ 'dispatch' ]( { type : X.UI.Event.INIT } );\r
+                       this.User[ 'dispatch' ]( { type : XUI_Event.INIT } );\r
                },\r
                \r
                addToParent : function( parentXNode ){\r
@@ -150,7 +153,7 @@ X.UI._Box = X.UI._AbstractUINode.inherits(
                        };\r
                        \r
                        this.phase = 2;\r
-                       this.User[ 'dispatch' ]( { type : X.UI.Event.ADDED } );\r
+                       this.User[ 'dispatch' ]( { type : XUI_Event.ADDED } );\r
                },\r
                \r
        /* Rellay */\r
@@ -163,7 +166,7 @@ X.UI._Box = X.UI._AbstractUINode.inherits(
                                };                              \r
                        };\r
                        \r
-                       X.UI._AbstractUINode.prototype.creationComplete.apply( this, arguments );\r
+                       XUI_AbstractUINode.prototype.creationComplete.apply( this, arguments );\r
                },\r
                \r
                calculate : function( isNeedsDetection, x, y, w, h ){\r
@@ -171,6 +174,17 @@ X.UI._Box = X.UI._AbstractUINode.inherits(
                        this.phase = 4;\r
                        return ret;\r
                },\r
+       \r
+               updateLayout : function(){\r
+                       var uinodes = this.uinodes, i, l;\r
+\r
+                       if( uinodes && ( l = uinodes.length ) ){\r
+                               for( i = 0; i < l; ++i ){\r
+                                       uinodes[ i ].updateLayout();\r
+                               };      \r
+                       };\r
+                       XUI_AbstractUINode.prototype.updateLayout.call( this );\r
+               },\r
                \r
                capcher : function( x, y ){\r
                        var uinodes, child, _x, _y, hit, i;\r
@@ -287,11 +301,11 @@ X.UI._Box = X.UI._AbstractUINode.inherits(
 \r
 X.UI.Box = X.UI.AbstractUINode.inherits(\r
        'Box',\r
-       X_Class.SUPER_ACCESS,\r
-       X.UI._Box,\r
+       X_Class.NONE,\r
+       XUI_Box,\r
        {\r
                Constructor : function(){\r
-                       X_Class_newPrivate( this, X.UI.Layout.Canvas, arguments );\r
+                       X_Class_newPrivate( this, XUI_Layout_Canvas, arguments );\r
                },\r
                \r
                add : function( node /* , node, node ... */ ){\r
@@ -357,7 +371,7 @@ X.UI.Box.presets = function(){
                arg = args[ i ];\r
                if( !arg ) continue;\r
                // レイアウトの preset ができるのは layout が未定義な Box だけ\r
-               if( !shadow.prototype.layout && arg[ 'instanceOf' ] && arg[ 'instanceOf' ]( X.UI.Layout.Base ) ){\r
+               if( !shadow.prototype.layout && arg[ 'instanceOf' ] && arg[ 'instanceOf' ]( XUI_LayoutBase ) ){\r
                        layout = arg;\r
                } else\r
                if( ( klassDef = X_Class_getClassDef( arg ) ) && klassDef.isPrivate ){\r
@@ -381,7 +395,7 @@ X.UI.Box.presets = function(){
                \r
                klass = this.inherits( privateKlass );\r
                privateKlass.prototype.supportAttrs = supports,\r
-               privateKlass.prototype.attrClass    = X.UI.Attr.preset( privateKlass.prototype.attrClass, supports, attrs );\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
                \r
@@ -391,7 +405,7 @@ X.UI.Box.presets = function(){
                                {\r
                                        layout       : layout,\r
                                        supportAttrs : supports,\r
-                                       attrClass    : X.UI.Attr.preset( shadow.prototype.attrClass, supports, attrs )\r
+                                       attrClass    : XUI_Attr_preset( shadow.prototype.attrClass, supports, attrs )\r
                                }\r
                        )\r
                );              \r