-X.UI.Attr = {\r
- AUTO : 1/0,//Number.POSITIVE_INFINITY,\r
- FLOOR : new Function( 'v', 'return 0 <= v ? v | 0 : -( -v | 0 )' ),\r
- \r
- USER : {\r
- XNODE : 0,\r
- UINODE : 1,\r
- LAYOUT : 2\r
+var XUI_Attr_AUTO = 1/0,//Number.POSITIVE_INFINITY,\r
+ XUI_Attr_FLOOR = new Function( 'v', 'return 0 <= v ? v | 0 : -( -v | 0 )' ),\r
+ XUI_Attr_USER = {\r
+ XNODE : 0, // 値は xnode.css にコピーされます。\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
+ XUI_Attr_Type = {\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
+ OBJECT : 32768\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
+ XUI_Attr_Option = {\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
- 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( 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
- },\r
- \r
- CSS3 : {\r
+ XUI_Attr_CSS3 = {\r
opacity : true,\r
bgColorAlpha : true,\r
bgGradient : true,\r
textShadowBlur : true,\r
textShadowAlpha : true\r
},\r
- \r
- Rename : {\r
- bgColor : 'background-color',\r
+ XUI_Attr_Rename = {\r
+ bgColor : 'backgroundColor',\r
fontColor : 'color',\r
fontBold : 'fontWeight',\r
fontItalic : 'fontStyle',\r
fontSmallCaps : 'fontVariant'\r
- }\r
-};\r
+ },\r
\r
/*\r
* 0: 初期値 : undefined は不可!\r
* 3: 受け付けるデータ型\r
* 4: 選択方式の場合、その候補\r
*/\r
-X.UI.Attr.Support = X.UI.Attr.createAttrDef( false,\r
+ XUI_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
+ className : [ '', XUI_Dirty.CLEAN, XUI_Attr_USER.UINODE, XUI_Attr_Type.DEFAULT_ONLY | XUI_Attr_Type.STRING ],\r
+ pointerHoverClass : [ '', XUI_Dirty.CLEAN, XUI_Attr_USER.UINODE, XUI_Attr_Type.DEFAULT_ONLY | XUI_Attr_Type.STRING ],\r
+ pointerDownClass : [ null, XUI_Dirty.CLEAN, XUI_Attr_USER.UINODE, XUI_Attr_Type.DEFAULT_ONLY | XUI_Attr_Type.STRING ],\r
+ invalidLayoutColor: [ null, XUI_Dirty.CLEAN, XUI_Attr_USER.UINODE, XUI_Attr_Type.DEFAULT_ONLY | XUI_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
- selectable : [ false, X.UI.Dirty.CLEAN, X.UI.Attr.USER.UINODE, X.UI.Attr.Type.INIT_ONLY | X.UI.Attr.Type.BOOLEAN ],\r
+ dataFeild : [ '', XUI_Dirty.CLEAN, XUI_Attr_USER.UINODE, XUI_Attr_Type.INIT_ONLY | XUI_Attr_Type.STRING ],\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
- tooltip : [ null, X.UI.Dirty.CLEAN, X.UI.Attr.USER.UINODE, X.UI.Attr.Type.STRING ],\r
+ role : [ 1, XUI_Dirty.CLEAN, XUI_Attr_USER.UINODE, XUI_Attr_Type.INIT_ONLY | XUI_Attr_Type.LIST, 'none,chrome' ],\r
+ selectable : [ false, XUI_Dirty.CLEAN, XUI_Attr_USER.UINODE, XUI_Attr_Type.INIT_ONLY | XUI_Attr_Type.BOOLEAN ],\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
- padding : [ 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 ],\r
+ visible : [ true, XUI_Dirty.LAYOUT, XUI_Attr_USER.UINODE, XUI_Attr_Type.BOOLEAN ],\r
+ pointerEnabled : [ false, XUI_Dirty.CLEAN, XUI_Attr_USER.UINODE, XUI_Attr_Type.BOOLEAN ],\r
+ pointerChildren : [ true, XUI_Dirty.CLEAN, XUI_Attr_USER.UINODE, XUI_Attr_Type.BOOLEAN ],\r
+ cursor : [ 1, XUI_Dirty.CLEAN, XUI_Attr_USER.UINODE, XUI_Attr_Type.LIST, XUI_Attr_Option.CURSOR ],\r
+ tooltip : [ '', XUI_Dirty.CLEAN, XUI_Attr_USER.UINODE, XUI_Attr_Type.STRING ],\r
\r
- width : [ 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
- minWidth : [ 0, 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 | X.UI.Attr.Type.AUTO ],\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
- 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
+ borderWidth : [ 0, XUI_Dirty.LAYOUT, XUI_Attr_USER.LAYOUT, XUI_Attr_Type.QUARTET | XUI_Attr_Type.LENGTH | XUI_Attr_Type.PERCENT ], // em [ top, right, bottom, left ]\r
+ padding : [ 0, XUI_Dirty.LAYOUT, XUI_Attr_USER.LAYOUT, XUI_Attr_Type.QUARTET | XUI_Attr_Type.LENGTH | XUI_Attr_Type.PERCENT ],\r
+ \r
+ width : [ XUI_Attr_AUTO, XUI_Dirty.LAYOUT, XUI_Attr_USER.LAYOUT, XUI_Attr_Type.LENGTH | XUI_Attr_Type.PERCENT | XUI_Attr_Type.AUTO ],\r
+ minWidth : [ 0, 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 | XUI_Attr_Type.AUTO ],\r
+ height : [ XUI_Attr_AUTO, XUI_Dirty.LAYOUT, XUI_Attr_USER.LAYOUT, XUI_Attr_Type.LENGTH | XUI_Attr_Type.PERCENT | XUI_Attr_Type.AUTO ],\r
+ minHeight : [ 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 | XUI_Attr_Type.AUTO ],\r
+ sizing : [ 1, XUI_Dirty.LAYOUT, XUI_Attr_USER.LAYOUT, XUI_Attr_Type.LIST, XUI_Attr_Option.BOX_SIZING ],\r
+ left : [ null, XUI_Dirty.LAYOUT, XUI_Attr_USER.LAYOUT, XUI_Attr_Type.LENGTH | XUI_Attr_Type.PERCENT | XUI_Attr_Type.MINUS_LENGTH | XUI_Attr_Type.MINUS_PERCENT ],\r
+ top : [ null, XUI_Dirty.LAYOUT, XUI_Attr_USER.LAYOUT, XUI_Attr_Type.LENGTH | XUI_Attr_Type.PERCENT | XUI_Attr_Type.MINUS_LENGTH | XUI_Attr_Type.MINUS_PERCENT ],\r
+ bottom : [ null, XUI_Dirty.LAYOUT, XUI_Attr_USER.LAYOUT, XUI_Attr_Type.LENGTH | XUI_Attr_Type.PERCENT | XUI_Attr_Type.MINUS_LENGTH | XUI_Attr_Type.MINUS_PERCENT ],\r
+ right : [ null, XUI_Dirty.LAYOUT, XUI_Attr_USER.LAYOUT, XUI_Attr_Type.LENGTH | XUI_Attr_Type.PERCENT | XUI_Attr_Type.MINUS_LENGTH | XUI_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
- bgColor : [ 0xFFFFFF, X.UI.Dirty.PAINT, X.UI.Attr.USER.XNODE, X.UI.Attr.Type.COLOR ], // color, none\r
+ borderColor : [ 0x0, XUI_Dirty.PAINT, XUI_Attr_USER.XNODE, XUI_Attr_Type.QUARTET | XUI_Attr_Type.COLOR ], // color [ top, right, bottom, left ]\r
+ borderStyle : [ 1, XUI_Dirty.PAINT, XUI_Attr_USER.XNODE, XUI_Attr_Type.QUARTET | XUI_Attr_Type.LIST, XUI_Attr_Option.BORDER_STYLE ], // string [ top, right, bottom, left ]\r
+ bgColor : [ 0xFFFFFF, XUI_Dirty.PAINT, XUI_Attr_USER.XNODE, XUI_Attr_Type.COLOR ], // color, none\r
\r
- fontColor : [ 0x0, X.UI.Dirty.PAINT, X.UI.Attr.USER.XNODE, X.UI.Attr.Type.COLOR ],\r
- fontFamily : [ null, X.UI.Dirty.FONT, X.UI.Attr.USER.XNODE, X.UI.Attr.Type.FONT_NAME ],\r
- fontSize : [ 1, X.UI.Dirty.FONT, X.UI.Attr.USER.XNODE, X.UI.Attr.Type.LENGTH | X.UI.Attr.Type.PERCENT ],\r
- fontBold : [ false, X.UI.Dirty.FONT, X.UI.Attr.USER.XNODE, X.UI.Attr.Type.BOOLEAN, 'bold' ],\r
- fontItalic : [ false, X.UI.Dirty.FONT, X.UI.Attr.USER.XNODE, X.UI.Attr.Type.BOOLEAN, 'italic' ],\r
- fontSmallCaps : [ false, X.UI.Dirty.FONT, X.UI.Attr.USER.XNODE, X.UI.Attr.Type.BOOLEAN, 'small-caps' ],\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
+ fontColor : [ 0x0, XUI_Dirty.PAINT, XUI_Attr_USER.XNODE, XUI_Attr_Type.COLOR ],\r
+ fontFamily : [ null, XUI_Dirty.FONT, XUI_Attr_USER.XNODE, XUI_Attr_Type.FONT_NAME ],\r
+ fontSize : [ 1, XUI_Dirty.FONT, XUI_Attr_USER.XNODE, XUI_Attr_Type.LENGTH | XUI_Attr_Type.PERCENT ],\r
+ fontBold : [ false, XUI_Dirty.FONT, XUI_Attr_USER.XNODE, XUI_Attr_Type.BOOLEAN, 'bold' ],\r
+ fontItalic : [ false, XUI_Dirty.FONT, XUI_Attr_USER.XNODE, XUI_Attr_Type.BOOLEAN, 'italic' ],\r
+ fontSmallCaps : [ false, XUI_Dirty.FONT, XUI_Attr_USER.XNODE, XUI_Attr_Type.BOOLEAN, 'small-caps' ],\r
+ lineHeight : [ 1, XUI_Dirty.FONT, XUI_Attr_USER.XNODE, XUI_Attr_Type.NUMERICAL ], // percent\r
+ letterSpacing : [ 0, XUI_Dirty.FONT, XUI_Attr_USER.XNODE, XUI_Attr_Type.LENGTH ],\r
+ wordSpacing : [ 0, XUI_Dirty.FONT, XUI_Attr_USER.XNODE, XUI_Attr_Type.LENGTH ],\r
+ textAlign : [ 1, XUI_Dirty.FONT, XUI_Attr_USER.XNODE, XUI_Attr_Type.LIST, XUI_Attr_Option.ALIGN ],\r
+ textDecoration : [ 1, XUI_Dirty.FONT, XUI_Attr_USER.XNODE, XUI_Attr_Type.LIST, XUI_Attr_Option.TEXT_DECORATION ],\r
+ textTransform : [ 1, XUI_Dirty.FONT, XUI_Attr_USER.XNODE, XUI_Attr_Type.LIST, XUI_Attr_Option.TEXT_TRANSFORM ]\r
}\r
-);\r
+),\r
\r
/*\r
* 共通する attr 指定を prototype に設定しながら拡張できる、属性データ保持クラス\r
*/\r
\r
-X.UI.attrClassProto = null;\r
+XUI_attrClassProto = null,\r
+\r
+XUI_AttrClass = X_Class_create( 'XUI_AttrClass', X_Class.POOL_OBJECT );\r
\r
-X.UI.AttrClass = X.Class.create( 'X.UI.AttrClass', X.Class.POOL_OBJECT );\r
+/*\r
+ * 'none,chrome,container' を受け取ったら、\r
+ * {\r
+ * 'none' : 1,\r
+ * 'chrome' : 2,\r
+ * 'container' : 3,\r
+ * 1 : 'none',\r
+ * 2 : 'chrome',\r
+ * 3 : 'container'\r
+ * } こんな object を返す。\r
+ */\r
+function XUI_createChecker( str ){\r
+ var ret = {},\r
+ ary = str.split( ',' ),\r
+ l = ary.length,\r
+ i = 0, v;\r
+ for( ; i < l; ){\r
+ v = ary[ i ];\r
+ ret[ v ] = ++i;\r
+ ret[ i ] = v;\r
+ };\r
+ return ret;\r
+};\r
\r
+ function XUI_Attr_createAttrDef( base, defs ){\r
+ var F = base ? X_Object_copy( 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 ] & XUI_Attr_Type.QUARTET ? 4 :\r
+ def[ 3 ] & XUI_Attr_Type.COMBI ? 2 : 1;\r
+ } else {\r
+ def.No = base[ p ].No;\r
+ };\r
+ if( def[ 3 ] & XUI_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
-X.UI.Attr.copy = function( proto, supports ){\r
+function XUI_Attr_copy( proto, supports ){\r
var support, p;\r
\r
for( p in supports ){\r
+ //if( X_EMPTY_OBJECT[ p ] ) continue;\r
if( p === '_last' ) continue;\r
support = supports[ p ];\r
proto[ support.No ] = support[ 0 ];\r
- if( support[ 3 ] & X.UI.Attr.Type.QUARTET ){\r
+ if( support[ 3 ] & XUI_Attr_Type.QUARTET ){\r
proto[ support.No + 1 ] = support[ 0 ];\r
proto[ support.No + 2 ] = support[ 0 ];\r
proto[ support.No + 3 ] = support[ 0 ];\r
} else\r
- if( support[ 3 ] & X.UI.Attr.Type.COMBI ){\r
+ if( support[ 3 ] & XUI_Attr_Type.COMBI ){\r
proto[ support.No + 1 ] = support[ 0 ];\r
};\r
};\r
};\r
\r
-X.UI.Attr.copy( X.UI.AttrClass.prototype, X.UI.Attr.Support );\r
+XUI_Attr_copy( XUI_AttrClass.prototype, XUI_Attr_Support );\r
\r
-X.UI.Attr.preset = function( baseKlass, opt_supports, opt_attrs ){\r
+function XUI_Attr_preset( baseKlass, opt_supports, opt_attrs ){\r
var klass = baseKlass.inherits(),\r
proto = klass.prototype,\r
+ supports = proto.usableAttrs || opt_supports,\r
p;\r
\r
// 属性プリセット\r
- X.UI.Attr.copy( proto, opt_supports );\r
+ XUI_Attr_copy( proto, opt_supports );\r
\r
// setAttr に書き換え\r
- X.UI.attrClassProto = proto;\r
+ XUI_attrClassProto = proto;\r
for( p in opt_attrs ){\r
- opt_supports[ p ] && X.UI._AbstractUINode.prototype.setAttr( p, opt_supports[ p ], opt_attrs[ p ] );\r
+ //if( X_EMPTY_OBJECT[ p ] ) continue;\r
+ supports[ p ] && XUI_AbstractUINode.prototype.setAttr( p, supports[ p ], opt_attrs[ p ] );\r
};\r
- X.UI.attrClassProto = null;\r
+ XUI_attrClassProto = null;\r
return klass;\r
};\r