OSDN Git Service

Version 0.6.138, working X.UI.ScrollBox!, fix Node.prev & Node.next.
[pettanr/clientJs.git] / 0.6.x / js / 20_ui / 02_XUI_Attr.js
index 0ae487f..846a2e2 100644 (file)
@@ -4,61 +4,36 @@ X.UI.Attr = {
        \r
        USER : {\r
                XNODE  : 0,\r
-               UINODE : 1,\r
+               UINODE : 1, // 値は _uinode にコピーされます。\r
                LAYOUT : 2\r
        },\r
        \r
        Type : {\r
-               LIST              :    0,\r
-               LENGTH            :    1, // '1.5em'\r
-               MINUS_LENGTH      :    2,\r
-               PERCENT           :    4, // '90%', 0.0 ~ 1.0 こういう指定はできない!\r
-               MINUS_PERCENT     :    8,\r
-               NUMERICAL         :   16, // 1.1 (lineHeight only)\r
-               AUTO              :   32, // 'auto'\r
-               COLOR             :   64, // 0x000000 ~ 0xFFFFFF, RED, #000000 ~ #FFFFFF, #000 ~ #FFF\r
-               URL               :  128,\r
-               STRING            :  128,\r
-               FONT_NAME         :  256,\r
-               BOOLEAN           :  512,\r
-               COMBI             : 1024,\r
-               QUARTET           : 2048,\r
-               DEFAULT_ONLY      : 4096,\r
-               INIT_ONLY         : 8192\r
+               LIST              : 16384,\r
+               LENGTH            :     1, // '1.5em'\r
+               MINUS_LENGTH      :     2,\r
+               PERCENT           :     4, // '90%', 0.0 ~ 1.0 こういう指定はできない!\r
+               MINUS_PERCENT     :     8,\r
+               NUMERICAL         :    16, // 1.1 (lineHeight only)\r
+               AUTO              :    32, // 'auto'\r
+               COLOR             :    64, // 0x000000 ~ 0xFFFFFF, RED, #000000 ~ #FFFFFF, #000 ~ #FFF\r
+               URL               :   128,\r
+               STRING            :   128,\r
+               FONT_NAME         :   256,\r
+               BOOLEAN           :   512,\r
+               COMBI             :  1024,\r
+               QUARTET           :  2048,\r
+               DEFAULT_ONLY      :  4096,\r
+               INIT_ONLY         :  8192\r
        },\r
        \r
        Option : {\r
-               BORDER_STYLE      : X.UI.Util.createChecker( 'none,hidden,dotted,dashed,solid,double,groove,ridge,inset,outset' ),\r
-               ALIGN             : X.UI.Util.createChecker( 'left,center,right,justify' ),\r
-               TEXT_DECORATION   : X.UI.Util.createChecker( 'none,underline,overline,line-through,blink' ),\r
-               TEXT_TRANSFORM    : X.UI.Util.createChecker( 'none,capitalize,lowercase,uppercase' ),\r
-               BOX_SIZING        : X.UI.Util.createChecker( 'content,padding,border' ),\r
-               CURSOR            : X.UI.Util.createChecker( 'pointer,wait' )\r
-       },\r
-       \r
-       createAttrDef : function( base, defs ){\r
-               var F = base ? X_Object_clone( base ) : {},\r
-                       z = base ? base._last : 0,\r
-                       n = 1,\r
-                       p, def;\r
-               \r
-               // 属性定義の上書き\r
-               for( p in defs ){\r
-                       if( X_EMPTY_OBJECT[ p ] ) continue;\r
-                       if( p === '_last' ) continue;\r
-                       if( !X_Type_isArray( def = defs[ p ] ) ) continue;\r
-                       F[ p ] = def;\r
-                       if( !base || !X_Type_isArray( base[ p ] ) ){\r
-                               def.No = z += n;\r
-                               // add\r
-                               n = def[ 3 ] & X.UI.Attr.Type.QUARTET ? 4 :\r
-                                   def[ 3 ] & X.UI.Attr.Type.COMBI   ? 2 : 1;\r
-                       } else {\r
-                               def.No = base[ p ].No;\r
-                       };\r
-               };\r
-               F._last = z;\r
-               return F;\r
+               BORDER_STYLE      : 'none,hidden,dotted,dashed,solid,double,groove,ridge,inset,outset',\r
+               ALIGN             : 'left,center,right,justify',\r
+               TEXT_DECORATION   : 'none,underline,overline,line-through,blink',\r
+               TEXT_TRANSFORM    : 'none,capitalize,lowercase,uppercase',\r
+               BOX_SIZING        : 'content,padding,border',\r
+               CURSOR            : 'pointer,wait'\r
        },\r
        \r
        CSS3 : {\r
@@ -84,6 +59,34 @@ X.UI.Attr = {
        }\r
 };\r
 \r
+       function XUI_Attr_createAttrDef( base, defs ){\r
+               var F = base ? X_Object_clone( base ) : {},\r
+                       z = base ? base._last : 0,\r
+                       n = 1,\r
+                       p, def;\r
+               \r
+               // 属性定義の上書き\r
+               for( p in defs ){\r
+                       if( X_EMPTY_OBJECT[ p ] ) continue;\r
+                       if( p === '_last' ) continue;\r
+                       if( !X_Type_isArray( def = defs[ p ] ) ) continue;\r
+                       F[ p ] = def;\r
+                       if( !base || !X_Type_isArray( base[ p ] ) ){\r
+                               def.No = z += n;\r
+                               // add\r
+                               n = def[ 3 ] & X.UI.Attr.Type.QUARTET ? 4 :\r
+                                   def[ 3 ] & X.UI.Attr.Type.COMBI   ? 2 : 1;\r
+                       } else {\r
+                               def.No = base[ p ].No;\r
+                       };\r
+                       if( def[ 3 ] & X.UI.Attr.Type.LIST && X_Type_isString( def[ 4 ] ) ){\r
+                               def[ 4 ] = XUI_createChecker( def[ 4 ] );\r
+                       };\r
+               };\r
+               F._last = z;\r
+               return F;\r
+       };\r
+\r
 /*\r
  * 0: 初期値 : undefined は不可!\r
  * 1: dirty\r
@@ -91,20 +94,20 @@ X.UI.Attr = {
  * 3: 受け付けるデータ型\r
  * 4: 選択方式の場合、その候補\r
  */\r
-X.UI.Attr.Support = X.UI.Attr.createAttrDef( false,\r
+X.UI.Attr.Support = XUI_Attr_createAttrDef( 0,\r
 {\r
        className         : [ null,           X.UI.Dirty.CLEAN,  X.UI.Attr.USER.UINODE, X.UI.Attr.Type.DEFAULT_ONLY | X.UI.Attr.Type.STRING ],\r
        pointerHoverClass : [ null,           X.UI.Dirty.CLEAN,  X.UI.Attr.USER.UINODE, X.UI.Attr.Type.DEFAULT_ONLY | X.UI.Attr.Type.STRING ],\r
        pointerDownClass  : [ null,           X.UI.Dirty.CLEAN,  X.UI.Attr.USER.UINODE, X.UI.Attr.Type.DEFAULT_ONLY | X.UI.Attr.Type.STRING ],\r
        invalidLayoutColor: [ null,           X.UI.Dirty.CLEAN,  X.UI.Attr.USER.UINODE, X.UI.Attr.Type.DEFAULT_ONLY | X.UI.Attr.Type.COLOR ],\r
        \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' ],\r
+       role              : [ 1,              X.UI.Dirty.CLEAN,  X.UI.Attr.USER.UINODE, X.UI.Attr.Type.INIT_ONLY | X.UI.Attr.Type.LIST, 'none,chrome' ],\r
        selectable        : [ false,          X.UI.Dirty.CLEAN,  X.UI.Attr.USER.UINODE, X.UI.Attr.Type.INIT_ONLY | X.UI.Attr.Type.BOOLEAN ],\r
        \r
        visible           : [ true,           X.UI.Dirty.LAYOUT, X.UI.Attr.USER.UINODE, X.UI.Attr.Type.BOOLEAN ],\r
        pointerEnabled    : [ false,          X.UI.Dirty.CLEAN,  X.UI.Attr.USER.UINODE, X.UI.Attr.Type.BOOLEAN ],\r
        pointerChildren   : [ true,           X.UI.Dirty.CLEAN,  X.UI.Attr.USER.UINODE, X.UI.Attr.Type.BOOLEAN ],\r
-       cursor            : [ null,           X.UI.Dirty.CLEAN,  X.UI.Attr.USER.UINODE, X.UI.Attr.Type.LIST, X.UI.Attr.Option.CURSOR ],\r
+       cursor            : [ 1,              X.UI.Dirty.CLEAN,  X.UI.Attr.USER.UINODE, X.UI.Attr.Type.LIST, X.UI.Attr.Option.CURSOR ],\r
        tooltip           : [ null,           X.UI.Dirty.CLEAN,  X.UI.Attr.USER.UINODE, X.UI.Attr.Type.STRING ],\r
        \r
        borderWidth       : [ 0,              X.UI.Dirty.LAYOUT, X.UI.Attr.USER.LAYOUT, X.UI.Attr.Type.QUARTET | X.UI.Attr.Type.LENGTH | X.UI.Attr.Type.PERCENT  ], // em [ top, right, bottom, left ]\r
@@ -116,14 +119,14 @@ X.UI.Attr.Support = X.UI.Attr.createAttrDef( false,
        height            : [ X.UI.Attr.AUTO, X.UI.Dirty.LAYOUT, X.UI.Attr.USER.LAYOUT, X.UI.Attr.Type.LENGTH | X.UI.Attr.Type.PERCENT | X.UI.Attr.Type.AUTO ],\r
        minHeight         : [ 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 | X.UI.Attr.Type.AUTO ],\r
-       sizing            : [ 0,              X.UI.Dirty.LAYOUT, X.UI.Attr.USER.LAYOUT, X.UI.Attr.Type.LIST, X.UI.Attr.Option.BOX_SIZING ],\r
+       sizing            : [ 1,              X.UI.Dirty.LAYOUT, X.UI.Attr.USER.LAYOUT, X.UI.Attr.Type.LIST, X.UI.Attr.Option.BOX_SIZING ],\r
        left              : [ null,           X.UI.Dirty.LAYOUT, X.UI.Attr.USER.LAYOUT, X.UI.Attr.Type.LENGTH | X.UI.Attr.Type.PERCENT | X.UI.Attr.Type.MINUS_LENGTH | X.UI.Attr.Type.MINUS_PERCENT ],\r
        top               : [ null,           X.UI.Dirty.LAYOUT, X.UI.Attr.USER.LAYOUT, X.UI.Attr.Type.LENGTH | X.UI.Attr.Type.PERCENT | X.UI.Attr.Type.MINUS_LENGTH | X.UI.Attr.Type.MINUS_PERCENT ],\r
        bottom            : [ null,           X.UI.Dirty.LAYOUT, X.UI.Attr.USER.LAYOUT, X.UI.Attr.Type.LENGTH | X.UI.Attr.Type.PERCENT | X.UI.Attr.Type.MINUS_LENGTH | X.UI.Attr.Type.MINUS_PERCENT ],\r
        right             : [ null,           X.UI.Dirty.LAYOUT, X.UI.Attr.USER.LAYOUT, X.UI.Attr.Type.LENGTH | X.UI.Attr.Type.PERCENT | X.UI.Attr.Type.MINUS_LENGTH | X.UI.Attr.Type.MINUS_PERCENT ],  \r
 \r
        borderColor       : [ 0x0,            X.UI.Dirty.PAINT,  X.UI.Attr.USER.XNODE,  X.UI.Attr.Type.QUARTET | X.UI.Attr.Type.COLOR   ], // color [ top, right, bottom, left ]\r
-       borderStyle       : [ 0,              X.UI.Dirty.PAINT,  X.UI.Attr.USER.XNODE,  X.UI.Attr.Type.QUARTET | X.UI.Attr.Type.LIST, X.UI.Attr.Option.BORDER_STYLE ], // string [ top, right, bottom, left ]\r
+       borderStyle       : [ 1,              X.UI.Dirty.PAINT,  X.UI.Attr.USER.XNODE,  X.UI.Attr.Type.QUARTET | X.UI.Attr.Type.LIST, X.UI.Attr.Option.BORDER_STYLE ], // string [ top, right, bottom, left ]\r
        bgColor           : [ 0xFFFFFF,       X.UI.Dirty.PAINT,  X.UI.Attr.USER.XNODE,  X.UI.Attr.Type.COLOR     ], // color, none\r
 \r
        fontColor         : [ 0x0,            X.UI.Dirty.PAINT,  X.UI.Attr.USER.XNODE, X.UI.Attr.Type.COLOR     ],\r
@@ -135,9 +138,9 @@ X.UI.Attr.Support = X.UI.Attr.createAttrDef( false,
        lineHeight        : [ 1,              X.UI.Dirty.FONT,   X.UI.Attr.USER.XNODE, X.UI.Attr.Type.NUMERICAL ], // percent\r
        letterSpacing     : [ 0,              X.UI.Dirty.FONT,   X.UI.Attr.USER.XNODE, X.UI.Attr.Type.LENGTH    ],\r
        wordSpacing       : [ 0,              X.UI.Dirty.FONT,   X.UI.Attr.USER.XNODE, X.UI.Attr.Type.LENGTH    ],\r
-       textAlign         : [ 0,              X.UI.Dirty.FONT,   X.UI.Attr.USER.XNODE, X.UI.Attr.Type.LIST, X.UI.Attr.Option.ALIGN           ],\r
-       textDecoration    : [ 0,              X.UI.Dirty.FONT,   X.UI.Attr.USER.XNODE, X.UI.Attr.Type.LIST, X.UI.Attr.Option.TEXT_DECORATION ],\r
-       textTransform     : [ 0,              X.UI.Dirty.FONT,   X.UI.Attr.USER.XNODE, X.UI.Attr.Type.LIST, X.UI.Attr.Option.TEXT_TRANSFORM  ]\r
+       textAlign         : [ 1,              X.UI.Dirty.FONT,   X.UI.Attr.USER.XNODE, X.UI.Attr.Type.LIST, X.UI.Attr.Option.ALIGN           ],\r
+       textDecoration    : [ 1,              X.UI.Dirty.FONT,   X.UI.Attr.USER.XNODE, X.UI.Attr.Type.LIST, X.UI.Attr.Option.TEXT_DECORATION ],\r
+       textTransform     : [ 1,              X.UI.Dirty.FONT,   X.UI.Attr.USER.XNODE, X.UI.Attr.Type.LIST, X.UI.Attr.Option.TEXT_TRANSFORM  ]\r
 }\r
 );\r
 \r