\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
}\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
* 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
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
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