--- /dev/null
+X.Css = {};\r
+\r
+X.Css.Type = {\r
+ LENGTH : 1,\r
+ PERCENT : 2,\r
+ COLOR : 4,\r
+ U_DECIMAL : 8,\r
+ NUMERICAL : 16,\r
+ BOOLEAN : 32,\r
+ QUARTET : 64,\r
+ URL : 128,\r
+ FONT_NAME : 256,\r
+ LIST : 512,\r
+ AUTO : 1024,\r
+ COMBI : 2048\r
+};\r
+\r
+var AUTO = Number.POSITIVE_INFINITY;\r
+var FULL = X.Css; // something unigue value;\r
+var FLOOR = Math.floor;\r
--- /dev/null
+X.Css.Option = {\r
+ BORDER_STYLE : 'none,hidden,dotted,dashed,solid,double,groove,ridge,inset,outset'.split(','),\r
+ POSITION_X : 'left,center,right'.split(','),\r
+ POSITION_Y : 'top,center,bottom'.split(','),\r
+ ALIGN : 'left,center,right,justify'.split(','),\r
+ TEXT_DECORATION : 'none,underline,overline,line-through,blink'.split(','),\r
+ TEXT_TRANSFORM : 'none,capitalize,lowercase,uppercase'.split(','),\r
+ WIDTH_HEIGHT : [ 'auto' ],\r
+ BOX_SIZING : 'content-box,padding-box,border-box'.split(',') // ,margin-box\r
+};
\ No newline at end of file
--- /dev/null
+X.Css.Dirty = {\r
+ CLEAN : 0,\r
+ PAINT : 1, // 再描画のみ必要\r
+ REFLOW : 2, // レイアウト(ボックスサイズ)の再計算が必要\r
+ FONT : 3, // フォントサイズが変更された\r
+ CONTENT_UPDATE : 4 // コンテンツが変更された\r
+};
\ No newline at end of file
--- /dev/null
+X.Css.Attr = {\r
+ borderWidth : [ X.Css.Dirty.REFLOW, 0, X.Css.Type.QUARTET | X.Css.Type.LENGTH ], // em [ top, right, bottom, left ]\r
+ borderColor : [ X.Css.Dirty.PAINT, 4, X.Css.Type.QUARTET | X.Css.Type.COLOR ], // color [ top, right, bottom, left ]\r
+ borderStyle : [ X.Css.Dirty.PAINT, 8, X.Css.Type.QUARTET | X.Css.Type.LIST, X.Css.Option.BORDER_STYLE ], // string [ top, right, bottom, left ]\r
+ cornerRadius : [ X.Css.Dirty.PAINT, 12, X.Css.Type.QUARTET | X.Css.Type.LENGTH | X.Css.Type.PERCENT ], // em, px [ top, right, bottom, left ]\r
+ bgColor : [ X.Css.Dirty.PAINT, 16, X.Css.Type.COLOR ], // color\r
+ bgAlpha : [ X.Css.Dirty.PAINT, 17, X.Css.Type.U_DECIMAL ], // 0 - 1\r
+ bgImgUrl : [ X.Css.Dirty.PAINT, 18, X.Css.Type.URL ], // url\r
+ bgImgRepeatX : [ X.Css.Dirty.PAINT, 19, X.Css.Type.BOOLEAN ], // true / false\r
+ bgImgRepeatY : [ X.Css.Dirty.PAINT, 20, X.Css.Type.BOOLEAN ], // true / false\r
+ bgImgPositionX : [ X.Css.Dirty.PAINT, 21, X.Css.Type.LENGTH | X.Css.Type.PERCENT | X.Css.Type.LIST, X.Css.Option.POSITION_X ], // em %, px, string\r
+ bgImgPositionY : [ X.Css.Dirty.PAINT, 22, X.Css.Type.LENGTH | X.Css.Type.PERCENT | X.Css.Type.LIST, X.Css.Option.POSITION_Y ], // em %, px, string\r
+ shadowColor : [ X.Css.Dirty.PAINT, 23, X.Css.Type.COLOR ], // color\r
+ shadowAlpha : [ X.Css.Dirty.PAINT, 24, X.Css.Type.U_DECIMAL ], // 0 - 1\r
+ shadowOffsetX : [ X.Css.Dirty.PAINT, 25, X.Css.Type.LENGTH ], // em\r
+ shadowOffsetY : [ X.Css.Dirty.PAINT, 26, X.Css.Type.LENGTH ], // em\r
+ shadowBlur : [ X.Css.Dirty.PAINT, 27, X.Css.Type.LENGTH ], // em\r
+ shadowSpread : [ X.Css.Dirty.PAINT, 28, X.Css.Type.LENGTH ], // em\r
+ shadowInset : [ X.Css.Dirty.PAINT, 29, X.Css.Type.BOOLEAN ], // true / false\r
+ \r
+ color : [ X.Css.Dirty.PAINT, 30, X.Css.Type.COLOR ], // color\r
+ fontFamily : [ X.Css.Dirty.FONT, 31, X.Css.Type.FONT_NAME ], // string\r
+ fontSize : [ X.Css.Dirty.FONT, 32, X.Css.Type.LENGTH | X.Css.Type.PERCENT ], // em, %\r
+ bold : [ X.Css.Dirty.FONT, 33, X.Css.Type.BOOLEAN ], // true / false\r
+ italic : [ X.Css.Dirty.FONT, 34, X.Css.Type.BOOLEAN ], // true / false\r
+ lineHeight : [ X.Css.Dirty.FONT, 35, X.Css.Type.LENGTH | X.Css.Type.PERCENT | X.Css.Type.NUMERICAL ], // em, %, \r
+ letterSpacing : [ X.Css.Dirty.FONT, 36, X.Css.Type.LENGTH ], // em\r
+ wordSpacing : [ X.Css.Dirty.FONT, 37, X.Css.Type.LENGTH ],\r
+ align : [ X.Css.Dirty.FONT, 38, X.Css.Type.LIST, X.Css.Type.ALIGN ],\r
+ decoration : [ X.Css.Dirty.PAINT, 39, X.Css.Type.LIST, X.Css.Type.TEXT_DECORATION ],\r
+ transform : [ X.Css.Dirty.FONT, 40, X.Css.Type.LIST, X.Css.Type.TEXT_TRANSFORM ],\r
+ textShadowColor : [ X.Css.Dirty.PAINT, 41, X.Css.Type.COLOR ],\r
+ textShadowOffsetX : [ X.Css.Dirty.PAINT, 42, X.Css.Type.LENGTH ],\r
+ textShadowOffsetY : [ X.Css.Dirty.PAINT, 43, X.Css.Type.LENGTH ],\r
+ shadowBlur : [ X.Css.Dirty.PAINT, 44, X.Css.Type.LENGTH ],\r
+ \r
+ width : [ X.Css.Dirty.REFLOW, 45, X.Css.Type.LENGTH | X.Css.Type.PERCENT, X.Css.Option.WIDTH_HEIGHT ],\r
+ minWidth : [ X.Css.Dirty.REFLOW, 46, X.Css.Type.LENGTH | X.Css.Type.PERCENT ],\r
+ maxWidth : [ X.Css.Dirty.REFLOW, 47, X.Css.Type.LENGTH | X.Css.Type.PERCENT ],\r
+ height : [ X.Css.Dirty.REFLOW, 48, X.Css.Type.LENGTH | X.Css.Type.PERCENT, X.Css.Option.WIDTH_HEIGHT ],\r
+ minHeight : [ X.Css.Dirty.REFLOW, 49, X.Css.Type.LENGTH | X.Css.Type.PERCENT ],\r
+ maxHeight : [ X.Css.Dirty.REFLOW, 50, X.Css.Type.LENGTH | X.Css.Type.PERCENT ],\r
+ padding : [ X.Css.Dirty.REFLOW, 51, X.Css.Type.QUARTET | X.Css.Type.LENGTH | X.Css.Type.PERCENT ],\r
+ margin : [ X.Css.Dirty.REFLOW, 55, X.Css.Type.QUARTET | X.Css.Type.LENGTH | X.Css.Type.PERCENT ],\r
+ sizing : [ X.Css.Dirty.REFLOW, 59, X.Css.Type.LIST, X.Css.Option.BOX_SIZING ],\r
+ pageBox : [ X.Css.Dirty.REFLOW, 60, X.Css.Type.BOOLEAN ], // true / false\r
+ left : [ X.Css.Dirty.REFLOW, 61, X.Css.Type.LENGTH | X.Css.Type.PERCENT ],\r
+ top : [ X.Css.Dirty.REFLOW, 62, X.Css.Type.LENGTH | X.Css.Type.PERCENT ],\r
+ bottom : [ X.Css.Dirty.REFLOW, 63, X.Css.Type.LENGTH | X.Css.Type.PERCENT ],\r
+ right : [ X.Css.Dirty.REFLOW, 64, X.Css.Type.LENGTH | X.Css.Type.PERCENT ]\r
+};\r
+\r
+X.Css.Attr.x = X.Css.Attr.left;\r
+X.Css.Attr.y = X.Css.Attr.top;
\ No newline at end of file
--- /dev/null
+X.Css.AttrNo = ( function(){\r
+ var ret = {},\r
+ obj = X.Css.Attr,\r
+ max = 0,\r
+ p, no;\r
+ for( p in obj ){\r
+ ret[ p ] = no = obj[ p ][ 1 ];\r
+ if( max < no ) max = no;\r
+ };\r
+ ret.max = max;\r
+ return ret;\r
+})();\r
this.styleData.initialize();\r
\r
this.phase = 1;\r
- this.User.dispatch( { type : X.ViewEvent.INIT } );\r
+ this.User.dispatch( { type : X.View.Event.INIT } );\r
},\r
\r
addToParent : function( parentElement ){\r
};\r
\r
this.phase = 2;\r
- this.User.dispatch( { type : X.ViewEvent.ADDED } );\r
+ this.User.dispatch( { type : X.View.Event.ADDED } );\r
},\r
\r
/* Rellay */\r
this.styleData.afterAddition();\r
\r
this.phase = 3;\r
- this.User.dispatch( { type : X.ViewEvent.CREATION_COMPLETE } );\r
+ this.User.dispatch( { type : X.View.Event.CREATION_COMPLETE } );\r
},\r
\r
calculate : function( x, y, w, h ){\r
dragdrop : false,\r
tooltip : null,\r
\r
+ _content : null,\r
+ updateContent : false,\r
+ \r
+ elmWrap : null,\r
+ elmExtend : null,\r
+ textNode : null,\r
+ boxWidth : 0,\r
+ boxHeight : 0,\r
+ contentL : 0,\r
+ contentT : 0,\r
+ contentR : 0,\r
+ contentB : 0,\r
+ boxSizingOffsetLR : 0,\r
+ boxSizingOffsetTB : 0, \r
+ contentWidth : 0,\r
+ minContentWidth : 0,\r
+ maxContentWidth : AUTO,\r
+ lastContentWidth : -1,\r
+ contentHeight : 0,\r
+ minContentHeight : 0,\r
+ maxContentHeight : AUTO,\r
+ \r
// :hover, :focus, :disabled\r
\r
initialize : function( root, rootData, parent, parentData, parentElement ){\r
this.styleData.initialize();\r
\r
this.phase = 1;\r
- this.User.dispatch( { type : X.ViewEvent.INIT } );\r
+ this.User.dispatch( { type : X.View.Event.INIT } );\r
},\r
\r
addToParent : function( parentElement ){\r
parentElement && parentElement.appendChild( this.rawElement );\r
\r
this.phase = 2;\r
- this.User.dispatch( { type : X.ViewEvent.ADDED } );\r
+ this.User.dispatch( { type : X.View.Event.ADDED } );\r
},\r
\r
/* Rellay\r
this.styleData.afterAddition();\r
\r
this.phase = 3;\r
- this.User.dispatch( { type : X.ViewEvent.CREATION_COMPLETE } );\r
+ this.User.dispatch( { type : X.View.Event.CREATION_COMPLETE } );\r
}, */\r
\r
creationComplete : function(){\r
},\r
\r
dispatch : function( e ){\r
- var xve = X.ViewEvent,\r
+ var xve = X.View.Event,\r
ret = X.EventDispatcher.prototype.dispatch.call( this.User, e ),\r
type = e.type;\r
- if( ret & X.Cancel.MONOPOLY && !this.hitChildData && ( xve.POINTER_MOVE === type || type === xve.FILE_DRAG ) ){\r
+ if( ret & X.Callback.MONOPOLY && !this.hitChildData && ( xve.POINTER_MOVE === type || type === xve.FILE_DRAG ) ){\r
this.rootData.monopolyNodeData = this;\r
return ret;\r
};\r
this.rootData.monopolyNodeData = null;\r
- if( xve._NO_BUBLEUP < type && this.parentData && ret & X.Cancel.STOP_PROPAGATION === 0 && ret & X.Cancel.STOP_NOW === 0 ) return this.parentData.dispatch( e );\r
+ if( xve._NO_BUBLEUP < type && this.parentData && ret & X.Callback.STOP_PROPAGATION === 0 && ret & X.Callback.STOP_NOW === 0 ) return this.parentData.dispatch( e );\r
return ret;\r
},\r
\r
delete this.rawStyle;\r
};\r
delete this.phase;\r
- }\r
+ },\r
//killed\r
+ \r
+ \r
+ content : function( v ){\r
+ if( Type.isString( v ) === true ){\r
+ if( !this.textNode || this.textNode.data !== v ){\r
+ this._content = v;\r
+ this.updateContent = true;\r
+ };\r
+ return this.User;\r
+ } else\r
+ if( v === null ){\r
+ if( this._content !== v && this.textNode ){\r
+ this.updateContent = true;\r
+ };\r
+ delete this._content;\r
+ return this.User;\r
+ };\r
+ if( this._content || this._content === null ) return this._content;\r
+ if( this.textNode ) return this.textNode.data;\r
+ return null;\r
+ },\r
+ paint : function( dirty ){\r
+ var content = this._content,\r
+ style = this.styleData; \r
+ if( this.updateContent === true || ( style && style.hasPaint === true ) ){\r
+ if( !this.elmWrap ){\r
+ this.elmWrap = DOM.createDiv();\r
+ this.__parent.addDisplayElement( this );\r
+ };\r
+ dirty !== 0 && this.commitStyle(); \r
+ if( this.updateContent === true ){\r
+ if( content !== null ){\r
+ if( !this.textNode ){\r
+ this.textNode = DOM.cerateText();\r
+ this.elmWrap.appendChild( this.textNode );\r
+ };\r
+ this.textNode.data = content; \r
+ } else\r
+ if( this.textNode ){\r
+ DOM.correct( this.textNode );\r
+ delete this.textNode;\r
+ delete this.contentWidth;\r
+ delete this.conetntHeight;\r
+ delete this.scrollWidth; \r
+ delete this.scrollHeight;\r
+ }; \r
+ };\r
+ } else\r
+ if( this.elmWrap && content === null && ( !style || style.hasPaint === false ) ){\r
+ this.__parent.removeDisplayElement( this );\r
+ DOM.correct( this.elmWrap );\r
+ delete this.contentWidth;\r
+ delete this.conetntHeight;\r
+ };\r
+ },\r
+ commitStyle : function(){\r
+ var css;\r
+ if( this.elmWrap ){\r
+ css = this.styleData ? this.styleData.cssText( this ) : '';\r
+ if( this.contentWidth !== AUTO ) css += 'width:' + this.contentWidth + 'px';\r
+ if( this.contentHeight !== AUTO ) css += 'height:' + this.contentHeight + 'px';\r
+ this.elmWrap.style.cssText = css;\r
+ };\r
+ },\r
+ /*\r
+ * 親の サイズを元に自身のサイズを計算していく\r
+ */\r
+ preMesure : function( allowW, allowH ){\r
+ var style = this.styleData,\r
+ styles, calc, box, min, max,\r
+ contentW, contentH, allowSize, boxMinus,\r
+ paddingT, paddingR, paddingB, paddingL,\r
+ borderT, borderR, borderB, borderL;//,\r
+ //marginT, marginR, marginB, marginL;\r
+\r
+ if( style ){\r
+ styles = style.data;\r
+ calc = _AbstractDisplayNode.calcValue;\r
+ box = styles[ X.Css.AttrNo.sizing ];\r
+ \r
+ // Width が確定するパターン\r
+ // 自身が constraintW の場合 親が AUTO ではない\r
+ // 自身が constraintW でない場合自身が AUTO はなくかつ親 が AUTO の場合 or 自身は % でない\r
+ if( style.constraintW ? allowW !== AUTO : !style.autoWidth && ( allowW !== AUTO || !style.percentWidth ) ){\r
+ if( style.constraintW ){ // 制約レイアウト\r
+ contentW = allowW - calc( styles[ X.Css.AttrNo.left ], allowW ) - calc( styles[ X.Css.AttrNo.right ], allowW );\r
+ } else {\r
+ contentW = _AbstractDisplayNode.finalValue( styles[ X.Css.AttrNo.width ], styles[ X.Css.AttrNo.minWidth ], styles[ X.Css.AttrNo.maxWidth ], allowW ); \r
+ };\r
+ paddingR = calc( styles[ X.Css.AttrNo.padding + 1 ], allowW );\r
+ paddingL = calc( styles[ X.Css.AttrNo.padding + 3 ], allowW );\r
+ borderR = styles[ X.Css.AttrNo.border + 1 ];\r
+ borderL = styles[ X.Css.AttrNo.margin + 3 ];\r
+ // marginR = calc( styles[ X.Css.AttrNo.margin + 1 ], allowW );\r
+ // marginL = calc( styles[ X.Css.AttrNo.margin + 3 ], allowW );\r
+ boxMinus = 0;\r
+ switch( box ){\r
+ //case 3 : // margin-box\r
+ // boxMinus = - marginR - marginL;\r
+ case 2 : // border-box\r
+ boxMinus -= borderR + borderL;\r
+ case 1 : // padding-box\r
+ boxMinus -= paddingR + paddingL;\r
+ // case 0 : // content-box\r
+ };\r
+ this.contentL = /* marginL + */ borderL + paddingL;\r
+ this.contentR = /* marginR + */ borderR + paddingR; \r
+ this.contentWidth = contentW + boxMinus;\r
+ this.boxWidth = contentW - boxMinus + this.contentL + this.contentR;\r
+ this.boxSizingOffsetLR = boxMinus;\r
+ } else {\r
+ this.boxWidth = this.contentWidth = AUTO;\r
+ min = styles[ X.Css.AttrNo.minWidth ];\r
+ max = styles[ X.Css.AttrNo.maxWidth ];\r
+ this.minContentWidth = 1 <= min ? min : 0;\r
+ this.maxContentWidth = 1 <= max ? max : AUTO;\r
+ delete this.boxSizingOffsetLR;\r
+ };\r
+ \r
+ // Height\r
+ if( style.constraintH ? allowH !== AUTO : !style.autoHeight && ( allowH !== AUTO || !style.percentHeight ) ){\r
+ if( style.constraintH ){ // 制約レイアウト\r
+ contentH = allowH - calc( styles[ X.Css.AttrNo.top ], allowH ) - calc( styles[ X.Css.AttrNo.bottom ], allowH );\r
+ } else {\r
+ contentH = _AbstractDisplayNode.finalValue( styles[ X.Css.AttrNo.height ], styles[ X.Css.AttrNo.minHeight ], styles[ X.Css.AttrNo.maxHeight ], allowH );\r
+ };\r
+ allowSize = styles[ X.Css.AttrNo.pageBox ] === true ? allowH : allowW;\r
+ paddingT = calc( styles[ X.Css.AttrNo.padding + 0 ], allowSize );// paddingTRBL の % 指定は 最大幅に対して TB でも幅に対して\r
+ paddingB = calc( styles[ X.Css.AttrNo.padding + 2 ], allowSize );\r
+ borderT = styles[ X.Css.AttrNo.border + 0 ];\r
+ borderB = styles[ X.Css.AttrNo.border + 2 ];\r
+ // marginT = calc( styles[ X.Css.AttrNo.margin + 0 ], allowSize );// marginTRBL の % 指定は 最大幅に対して TB でも幅に対して\r
+ // marginB = calc( styles[ X.Css.AttrNo.margin + 2 ], allowSize );\r
+ this.boxHeight = contentH;\r
+ boxMinus = 0;\r
+ switch( box ){\r
+ // case 3 : // margin-box\r
+ // boxMinus = - marginT - marginR;\r
+ case 2 : // border-box\r
+ boxMinus = borderT + borderB;\r
+ case 1 : // padding-box\r
+ boxMinus -= paddingT + paddingB;\r
+ // case 0 : // content-box\r
+ }; \r
+ this.contentT = /* marginT + */ borderT + paddingT;\r
+ this.conetntB = /* marginB + */ borderB + paddingB; \r
+ this.contentHeight = contentH + boxMinus;\r
+ this.boxHeight = contentH - boxMinus + this.contentT + this.conetntB;\r
+ this.boxSizingOffsetTB = boxMinus;\r
+ } else {\r
+ this.boxHeight = this.contentHeight = AUTO;\r
+ min = styles[ X.Css.AttrNo.minHeight ];\r
+ max = styles[ X.Css.AttrNo.maxHeight ];\r
+ this.minContentHeight = 1 <= min ? min : 0;\r
+ this.maxContentHeight = 1 <= max ? max : AUTO;\r
+ delete this.boxSizingOffsetTB;\r
+ };\r
+ } else {\r
+ this.boxWidth = this.contentWidth = allowW;\r
+ this.boxHeight = this.contentHeight = allowH;\r
+ delete this.minContentHeight;\r
+ delete this.maxContentHeight;\r
+ delete this.contentL;\r
+ delete this.contentT;\r
+ delete this.contentR;\r
+ delete this.contentB;\r
+ };\r
+ },\r
+ \r
+ /**\r
+ * 要素の追加・削除\r
+ * 1. ペイントがある // 予約のみ\r
+ * 2. コンテンツがある // 予約のみ *\r
+ * 3. コンテンツを削除 // 予約のみ\r
+ * 4. 要素を削除 // 予約のみ\r
+ * \r
+ * コンテンツの再計算\r
+ * 0. 要素追加して css セット\r
+ * 1. コンテンツの変更\r
+ * 2. font 指定の変更\r
+ * 3. contentWidth の変更 (コンテンツの高さの再計算) 前回の contentWidth の保持\r
+ * \r
+ * contentSize, scrollSize の決定\r
+ */\r
+ _mesure : function( dirty ){\r
+ var content = this._content,\r
+ root = this.rootData,\r
+ style = this.styleData,\r
+ w = this.contentWidth,\r
+ h = this.contentHeight;\r
+ switch( this.updateContent === true ? X.Css.Dirty.CONTENT : dirty ){\r
+ case X.Css.Dirty.CONTENT : // コンテンツが変更された\r
+ this.paint( 0 );\r
+ this.lastContentWidth = -1;\r
+ case X.Css.Dirty.FONT : // フォントサイズが変更された\r
+ this.commitStyle();\r
+ case X.Css.Dirty.REFLOW : // レイアウトの再計算が必要\r
+ /* http://web-designs.seesaa.net/article/188400668.html\r
+ * min-width の値が max-width の値より大きい場合は、max-width の値は min-width の値に設定される。\r
+ * \r
+ * テキストノードがあり\r
+ * 1. contentWidth === AUTO\r
+ * style を更新して contentWidth の決定\r
+ * min or max に引っかかったら style 更新\r
+ * contentHeight === AUTO の場合\r
+ * textHeight の決定\r
+ * contentHeight !== AUTO の場合 scrollHeight のみ更新\r
+ * 2. contentHeight === AUTO かつ \r
+ * コンテンツの高さの再取得が必要( contentWidth が最終計測時の contentWidth と一致 かつ フォント・コンテンツに変更無し の場合再取得不要)\r
+ * style を更新して contentHeight の決定\r
+ * 必要でない\r
+ * 3. content のサイズがすでに決定している\r
+ * コンテンツの高さの再取得が必要\r
+ * 必要でない\r
+ */ \r
+ if( this.textNode ){\r
+ if( w === AUTO ){\r
+ w = this.contentWidth = this.elm.offsetWidth;\r
+ this.scrollWidth = w + this.contentL + this.contentR;\r
+ if( this.maxContentWidth < w - this.boxSizingOffsetLR ) this.contentWidth = this.maxContentWidth + this.boxSizingOffsetLR;\r
+ if( w - this.boxSizingOffsetLR < this.minContentWidth ) this.contentWidth = this.minContentWidth + this.boxSizingOffsetLR;\r
+ this.lastContentWidth = this.contentWidth;\r
+ \r
+ w !== this.contentWidth && this.commitStyle();\r
+ \r
+ if( h === AUTO ){\r
+ h = this.conetntHeight = this.elm.offsetHeight;\r
+ this.scrollHeight = h + this.contentT + this.contentB;\r
+ if( this.maxContentHeight < h - this.boxSizingOffsetTB ) this.contentHeight = this.maxContentHeight + this.boxSizingOffsetTB;\r
+ if( h - this.boxSizingOffsetTB < this.minContentHeight ) this.contentHeight = this.minContentHeight + this.boxSizingOffsetTB;\r
+ } else {\r
+ this.scrollHeight = this.elm.offsetHeight + this.contentT + this.contentB;\r
+ };\r
+ } else\r
+ if( h === AUTO ){\r
+ if( w !== this.lastContentWidth || dirty !== X.Css.Dirty.REFLOW ){\r
+ this.commitStyle();\r
+ this.lastContentWidth = w;\r
+ h = this.conetntHeight = this.elm.offsetHeight;\r
+ this.scrollWidth = w + this.contentL + this.contentR;\r
+ this.scrollHeight = h + this.contentT + this.contentB;\r
+ if( this.maxContentHeight < h - this.boxSizingOffsetTB ) this.contentHeight = this.maxContentHeight + this.boxSizingOffsetTB;\r
+ if( h - this.boxSizingOffsetTB < this.minContentHeight ) this.contentHeight = this.minContentHeight + this.boxSizingOffsetTB; \r
+ } else {\r
+ this.scrollWidth = w + this.contentL + this.contentR;\r
+ this.scrollHeight = h + this.contentT + this.contentB;\r
+ root.paintReserve( this );\r
+ };\r
+ } else {\r
+ if( dirty !== X.Css.Dirty.REFLOW ){\r
+ this.commitStyle();\r
+ this.scrollWidth = this.elm.offsetWidth + this.contentL + this.contentR;\r
+ this.scrollHeight = this.elm.offsetHeight + this.contentT + this.contentB;\r
+ } else {\r
+ root.paintReserve( this );\r
+ this.scrollWidth = w + this.contentL + this.contentR;\r
+ this.scrollHeight = h + this.contentT + this.contentB;\r
+ };\r
+ }; \r
+ } else {\r
+ if( w === AUTO ) this.contentWidth = w = 0 < this.minContentWidth ? this.minContentWidth : 0;\r
+ if( h === AUTO ) this.contentHeight = h = 0 < this.minContentHeight ? this.minContentHeight : 0;\r
+ this.scrollWidth = w + this.contentL + this.contentR;\r
+ this.scrollHeight = h + this.contentT + this.contentB;\r
+ root.paintReserve( this ); \r
+ };\r
+ break; \r
+ case X.Css.Dirty.PAINT : // 再描画のみ必要\r
+ root.paintReserve( this );\r
+ break; \r
+ };\r
+ },\r
+ /**\r
+ * 自身のコンテンツサイズを元に AUTO な width, height を確定していく\r
+ */\r
+ postMesure : function(){\r
+ var style = this.styleData,\r
+ styles, calc, box,\r
+ contentW, contentH,\r
+ contentSize, contentPlus,\r
+ paddingT, paddingR, paddingB, paddingL,\r
+ borderT, borderR, borderB, borderL,\r
+ min, max;\r
+ if( style ){\r
+ styles = style.data;\r
+ calc = _AbstractDisplayNode.advancedCalcValue;\r
+ contentW = this.contentWidth;\r
+ box = styles[ X.Css.AttrNo.sizing ];\r
+ \r
+ // Width\r
+ if( this.boxWidth === AUTO ){\r
+ paddingR = calc( styles[ X.Css.AttrNo.padding + 1 ], contentW ); \r
+ paddingL = calc( styles[ X.Css.AttrNo.padding + 3 ], contentW ); \r
+ borderR = styles[ X.Css.AttrNo.border + 1 ]; \r
+ borderL = styles[ X.Css.AttrNo.border + 3 ]; \r
+ //marginR = calc( styles[ X.Css.AttrNo.margin + 1 ], contentW );\r
+ //marginL = calc( styles[ X.Css.AttrNo.margin + 3 ], contentW );\r
+ contentPlus = 0;\r
+ switch( box ){\r
+ //case 3 : // margin-box\r
+ // contentPlus = ( marginR + marginL );\r
+ case 2 : // border-box\r
+ contentPlus = borderR + borderL;\r
+ case 1 : // padding-box\r
+ contentPlus += paddingR + paddingL;\r
+ // case 0 : // content-box\r
+ };\r
+ contentW += contentPlus;\r
+ if( !style.constraintW ){\r
+ min = styles[ X.Css.AttrNo.minWidth ];\r
+ max = styles[ X.Css.AttrNo.maxWidth ];\r
+ if( contentW < min && 1 <= min && contentPlus < min ){\r
+ this.contentWidth = min - contentPlus;\r
+ } else\r
+ if( max < contentW && 1 <= max && contentPlus < max ){\r
+ this.contentWidth = max - contentPlus;\r
+ };\r
+ };\r
+ this.contentL = /* marginL + */ borderL + paddingL;\r
+ this.contentR = /* marginR + */ borderR + paddingR;\r
+ this.boxWidth = this.contentWidth + this.contentL + this.contentR;\r
+ };\r
+ // Height\r
+ if( this.boxHeight === AUTO ){\r
+ contentH = this.contentHeight;\r
+ contentSize = styles[ X.Css.AttrNo.pageBox ] === true ? contentH : contentW;\r
+ paddingT = calc( styles[ X.Css.AttrNo.padding + 0 ], contentSize );// paddingTRBL の % 指定は 最大幅に対して TB でも幅に対して\r
+ paddingB = calc( styles[ X.Css.AttrNo.padding + 2 ], contentSize );\r
+ borderT = styles[ X.Css.AttrNo.border + 0 ];\r
+ borderB = styles[ X.Css.AttrNo.border + 2 ];\r
+ //marginT = calc( styles[ X.Css.AttrNo.margin + 0 ], contentSize );// marginTRBL の % 指定は 最大幅に対して TB でも幅に対して\r
+ //marginB = calc( styles[ X.Css.AttrNo.margin + 2 ], contentSize );\r
+ contentPlus = 0;\r
+ switch( box ){\r
+ //case 3 : // margin-box\r
+ //contentPlus = ( marginT + marginB );\r
+ case 2 : // border-box\r
+ contentPlus = borderT + borderB;\r
+ case 1 : // padding-box\r
+ contentPlus += paddingT + paddingB;\r
+ // case 0 : // content-box\r
+ };\r
+ contentH += contentPlus;\r
+ if( !style.constraintH ){\r
+ min = styles[ X.Css.AttrNo.minHeight ];\r
+ max = styles[ X.Css.AttrNo.maxHeight ];\r
+ if( contentH < min && 1 <= min && contentPlus < min ){\r
+ this.contentHeight = min - contentPlus;\r
+ } else\r
+ if( max < contentH && 1 <= max && contentPlus < max ){\r
+ this.contentHeight = max - contentPlus;\r
+ };\r
+ };\r
+ this.contentT = marginT + borderT + paddingT;\r
+ this.contentB = marginB + borderB + paddingB; \r
+ this.boxHeight = this.contentHeight + this.contentT + this.contentB;\r
+ }; \r
+ } else {\r
+ this.boxWidth = this.contentWidth;\r
+ this.boxHeight = this.contentHeight;\r
+ delete this.minContentHeight;\r
+ delete this.maxContentHeight;\r
+ delete this.contentL;\r
+ delete this.contentT;\r
+ delete this.contentR;\r
+ delete this.contentB;\r
+ };\r
+ }\r
}\r
);\r
\r
+_AbstractDisplayNode.finalValue = function( styleValue, styleMin, styleMax, srcValue ){\r
+ var calc = _AbstractDisplayNode.calcValue,\r
+ v = calc( styleValue, srcValue ),\r
+ min = calc( styleMin, srcValue ),\r
+ max = calc( styleMax, srcValue );\r
+ if( v < min ) return min;\r
+ if( max < v ) return max;\r
+ return v;\r
+};\r
+_AbstractDisplayNode.calcValue = function( styleValue, srcValue ){\r
+ switch( styleValue ){\r
+ case 0 :\r
+ return 0;\r
+ case AUTO :\r
+ return AUTO;\r
+ case FULL :\r
+ return srcValue; // 100%\r
+ default :\r
+ if( 1 <= styleValue ) return styleValue; // legth\r
+ if( -1 < styleValue ) return FLOOR( srcValue * styleValue ); // %\r
+ };\r
+ return styleValue; // - length\r
+};\r
+_AbstractDisplayNode.advancedCalcValue = function( styleValue, srcValue ){\r
+ switch( styleValue ){\r
+ case 0 :\r
+ return 0;\r
+ case AUTO :\r
+ return srcValue;\r
+ case FULL :\r
+ throw new Error( 'advancedCalcValue FULL' ); \r
+ // return ; // 100%\r
+ default :\r
+ if( 1 <= styleValue ) return styleValue; \r
+ if( -1 < styleValue ) return FLOOR( ( srcValue / ( 1 - styleValue ) ) * styleValue ); // %\r
+ };\r
+ return styleValue; // - length\r
+};\r
+\r
+\r
var AbstractDisplayNode = X.EventDispatcher.inherits(\r
'AbstractDisplayNode',\r
X.Class.ABSTRACT | X.Class.SUPER_ACCESS,\r
},\r
listen : function( type, arg1, arg2 ){\r
var root, data, events, counter;\r
- if( X.ViewEvent._START_POINTER <= type && type <= X.ViewEvent._END_POINTER ){\r
+ if( X.View.Event._START_POINTER <= type && type <= X.View.Event._END_POINTER ){\r
data = X.Class._getPrivate( this );\r
if( data.phase < 3 ){\r
if( !( events = data.reserveEvents ) ) data.reserveEvents = events = [];\r
++counter[ type ];\r
} else {\r
counter[ type ] = 1;\r
- X.DomEvent.add( root.elmMouseCatch, X.ViewEvent.IdToName[ type ], eventRellay ); \r
+ X.DomEvent.add( root.elmMouseCatch, X.View.Event.IdToName[ type ], eventRellay ); \r
};\r
};\r
return X.EventDispatcher.prototype.listen.apply( this, arguments );\r
},\r
unlisten : function( type, arg1, arg2 ){\r
var root, data, events, i, ev, counter;\r
- if( X.ViewEvent._START_POINTER <= type && type <= X.ViewEvent._END_POINTER ){\r
+ if( X.View.Event._START_POINTER <= type && type <= X.View.Event._END_POINTER ){\r
data = X.Class._getPrivate( this );\r
if( data.phase < 3 ){\r
if( !( events = data.reserveEvents ) ) return this;\r
if( !counter[ type ] ) return this;\r
--counter[ type ];\r
if( counter[ type ] === 0 ){\r
- X.DomEvent.remove( root.elmMouseCatch, X.ViewEvent.IdToName[ type ], eventRellay );\r
+ X.DomEvent.remove( root.elmMouseCatch, X.View.Event.IdToName[ type ], eventRellay );\r
delete counter[ type ];\r
};\r
};\r
return this;\r
},\r
getX : function(){\r
+ // dirty の場合、rootData.calculate\r
return X.Class._getPrivate( this ).x;\r
},\r
getY : function(){\r
+ // dirty の場合、rootData.calculate\r
return X.Class._getPrivate( this ).y;\r
},\r
getAbsoluteX : function(){\r
+ // dirty の場合、rootData.calculate\r
return X.Class._getPrivate( this ).absoluteX;\r
},\r
getAbsoluteY: function(){\r
+ // dirty の場合、rootData.calculate\r
return X.Class._getPrivate( this ).absoluteY;\r
},\r
getWidth : function(){\r
+ // dirty の場合、rootData.calculate\r
return X.Class._getPrivate( this ).w;\r
},\r
getHeight : function(){\r
+ // dirty の場合、rootData.calculate\r
return X.Class._getPrivate( this ).h;\r
+ },\r
+ scrollTo : function( x, y ){\r
+ X.Class._getPrivate( this ).scrollTo( x, y );\r
+ },\r
+ getScrollX : function( v ){\r
+ // dirty の場合、rootData.calculate\r
+ return X.Class._getPrivate( this ).scrollX( v );\r
+ },\r
+ getScrollY : function( v ){\r
+ // dirty の場合、rootData.calculate\r
+ return X.Class._getPrivate( this ).scrollY( v );\r
+ },\r
+ disabled : function( v ){\r
+ return X.Class._getPrivate( this ).disabled( v );\r
+ },\r
+ cursor : function( v ){\r
+ return X.Class._getPrivate( this ).cursor( v );\r
}\r
}\r
);
\ No newline at end of file
},
name : function( v ){
- var elm;
+ var sp = ' ', sp2 = ' ', elm;
if( this._name !== v ){
- if( !v || !v.length ){
+ if( !v ){
delete this._name;
v = '';
} else {
- this._name = v;
+ // cleanup
+ while( v.indexOf( sp2 ) !== -1 ){ v = v.split( sp2 ).join( sp ); };
+ while( 0 < v.length && v.charAt( 0 ) === sp ){ v = v.substr( 1 ); };
+ while( 0 < v.length && v.lastIndexOf( sp ) === 0 ){ --v.length; };
+
+ if( !v.length ){
+ delete this._name;
+ v = '';
+ } else {
+ this._name = v;
+ };
};
if( elm = this.nodeData.rawElement ){
elm.className = v;
},
addName : function( _names ){
var sp = ' ',
- names;
- if( this.hasName( _names ) === false ){
- names = this._name;
- if( !names.length ){
- return this.name( _names );
- };
- names = names.split( sp );
- names[ names.length ] = _names;
- return this.name( names.join( sp ) );
+ names, _name, i;
+ if( !this._name || !this._name.length ) return this.name( _names );
+ _names = _names.split( sp );
+ for( i = _names.length; i; ){
+ if( ( _name = _names[ --i ] ) !== '' && this.hasName( _name ) === false ){
+ if( !names ) names = this._name.split( sp );
+ names[ names.length ] = _name;
+ };
};
- return this.User;
+ return this.name( names.join( sp ) );
},
removeName : function( _names ){
var sp = ' ',
names = this._name,
- name, i, index;
- if( !names.length ) return this.User;
+ i, index;
+ if( !names || !names.length ) return this.User;
names = names.split( sp );
_names = _names.split( sp );
for( i = _names.length; i; ){
- name = _names[ --i ];
- name !== '' && ( index = names.indexOf( name ) ) !== -1 && names.splice( index, 1 );
+ ( index = names.indexOf( _names[ --i ] ) ) !== -1 && names.splice( index, 1 );
};
return this.name( names.join( sp ) );
},
hasName : function( _names ){
- var names = this._name,
- name, i;
- if( !names ) return false;
+ var names = this._name, i;
+ if( !names || !names.length ) return false;
names = names.split( ' ' );
_names = _names.split( ' ' );
for( i = _names.length; i; ){
- name = _names[ --i ];
- if( name !== '' && names.indexOf( name ) === -1 ) return false;
+ if( names.indexOf( _names[ --i ] ) === -1 ) return false;
};
return true;
},
},
REMOVE = {
role : 0
- },
- p;
+ }, p;
for( p in v ){
if( REMOVE[ p ] === 0 ) continue;
};
// ScrollBarManager.update( this );
+ },
+
+ /*
+ * opt_unit は getter のみ
+ */
+ attr : function( prop, v, opt_unit ){
+ var update = prop[ 0 ],
+ propID = prop[ 1 ],
+ type = prop[ 2 ],
+ list = prop[ 3 ],
+ length = !!( type & X.Css.Type.LENGTH ),
+ percent = !!( type & X.Css.Type.PERCENT ),
+ color = !!( type & X.Css.Type.COLOR ),
+ uDecimal = !!( type & X.Css.Type.U_DECIMAL ),
+ numerical = !!( type & X.Css.Type.NUMERICAL ),
+ flag = !!( type & X.Css.Type.BOOLEAN ),
+ quartet = !!( type & X.Css.Type.QUARTET ),
+ url = !!( type & X.Css.Type.URL ),
+ fontName = !!( type & X.Css.Type.FONT_NAME ),
+ //list = !!( type & X.Css.Type.LIST ),
+ combi = !!( type & X.Css.Type.COMBI ),
+ data = this.data,
+ _v = -1,
+ i, l, nodes, root;
+ /*
+ * Setter
+ */
+ if( v !== undefined ){
+ if( Type.isNumber( v ) === true ){
+ if( numerical === false ){
+ if( uDecimal === false || v < 0 || 1 < v ) throw new Error( '' );
+ };
+ } else
+ if( Type.isBoolean( v ) === true ){
+ if( flag === false ) throw new Error( '' );
+ } else
+ if( Type.isString( v ) === true ){
+ if( url === false && fontName === false ){
+ if( v.indexOf( ' ' ) !== -1 ){
+ v = v.split( ' ' );
+ } else {
+ if( length === false && percent === false && color === false ) throw new Error( '' );
+ };
+ };
+ };
+ if( Type.isArray( v ) === true ){
+ if( v.length <= 4 && quartet === true ){
+ type ^= X.Css.Type.QUARTET;
+ } else
+ if( v.length === 2 && combi === true ){
+ type ^= X.Css.Type.COMBI;
+ } else {
+ throw new Error( '' );
+ };
+ switch( v.length ){
+ case 1 :
+ this.attr( [ propID , type, list ], v[ 0 ] );
+ this.attr( [ ++propID, type, list ], v[ 0 ] );
+ this.attr( [ ++propID, type, list ], v[ 0 ] );
+ this.attr( [ ++propID, type, list ], v[ 0 ] );
+ break;
+ case 2 :
+ this.attr( [ propID , type, list ], v[ 0 ] );
+ this.attr( [ ++propID, type, list ], v[ 1 ] );
+ this.attr( [ ++propID, type, list ], v[ 0 ] );
+ this.attr( [ ++propID, type, list ], v[ 1 ] );
+ break;
+ case 3 :
+ this.attr( [ propID , type, list ], v[ 0 ] );
+ this.attr( [ ++propID, type, list ], v[ 1 ] );
+ this.attr( [ ++propID, type, list ], v[ 2 ] );
+ this.attr( [ ++propID, type, list ], v[ 1 ] );
+ break;
+ case 4 :
+ this.attr( [ propID , type, list ], v[ 0 ] );
+ this.attr( [ ++propID, type, list ], v[ 1 ] );
+ this.attr( [ ++propID, type, list ], v[ 2 ] );
+ this.attr( [ ++propID, type, list ], v[ 3 ] );
+ break;
+ default :
+ };
+ return this.User;
+ };
+ switch( update ){
+ case X.Css.Dirty.REFLOW :
+ delete this.layoutCssText;
+ break;
+ case X.Css.Dirty.PAINT :
+ delete this.colorCssText;
+ break;
+ case X.Css.Dirty.FONT :
+ delete this.fontCssText;
+ };
+
+ if( this.dirty < update ){
+ this.dirty = update;
+ roots = this.rootList;
+ for( i = 0, l = roots.length; i < l; ++i ){
+ root = roots[ i ];
+ if( root.dirty < update ) root.dirty = update;
+ };
+ };
+
+ if( list ) _v = list.indexOf( v );
+ data[ propID ] = _v !== -1 ? _v : v;
+
+ switch( propID ){
+ case X.Css.AttrNo.left :
+ case X.Css.AttrNo.right :
+ this.constraintW = Type.isNumber( data[ X.Css.AttrNo.left ] ) || Type.isNumber( data[ X.Css.AttrNo.right ] );
+ break;
+ case X.Css.AttrNo.top :
+ case X.Css.AttrNo.bottom :
+ this.constraintH = Type.isNumber( data[ X.Css.AttrNo.top ] ) || Type.isNumber( data[ X.Css.AttrNo.bottom ] );
+ break;
+ case X.Css.AttrNo.width :
+ this.autoWidth = v === AUTO;
+ this.percentWidth = v === FULL || v < 1;
+ break;
+ case X.Css.AttrNo.height :
+ this.autoHeight = v === AUTO;
+ this.percentHeight = v === FULL || v < 1;
+ break;
+ };
+ return this.User;
+ };
+ /*
+ * Getter
+ */
+ v = data[ propID ];
+ // Unit
+ if( quartet === true ) return [ v, data[ ++propID ], data[ ++propID ], data[ ++propID ] ];
+ if( combi === true ) return [ v, data[ ++propID ] ];
+ if( list && Type.isNumber( v ) === true ) return list[ v ];
+ return v;
+ },
+ __cssText : function(){
+ if( this.fontCssText === null ) this.fontCssText = this.createFontCssText();
+ if( this.layoutCssText === null ) this.layoutCssText = this.createLayoutCssText();
+ if( this.colorCssText === null ) this.colorCssText = this.createColorCssText();
+ return [ this.fontCssText, this.colorCssText, this.layoutCssText ].join( ';' );
+ },
+ createFontCssText : function(){
+ var data = this.data,
+ css = [],
+ v;
+ if( v = data[ X.Css.AttrNo.fontFamily ] ) css[ 0 ] = 'font-family:' + v;
+ if( v = data[ X.Css.AttrNo.fontSize ] ) css[ css.length ] = 'font-size:' + v;
+ if( v = data[ X.Css.AttrNo.bold ] ) css[ css.length ] = 'font-weight:bold';
+ if( v = data[ X.Css.AttrNo.italic ] ) css[ css.length ] = 'font-style:italic';
+ if( v = data[ X.Css.AttrNo.lineHeight ] ) css[ css.length ] = 'line-height:' + v;
+ if( v = data[ X.Css.AttrNo.letterSpacing ] ) css[ css.length ] = 'letter-spacing:' + v;
+ if( v = data[ X.Css.AttrNo.wordSpacing ] ) css[ css.length ] = 'word-spacing:' + v;
+ if( v = data[ X.Css.AttrNo.align ] ) css[ css.length ] = 'text-align:' + X.Css.Option.ALIGN[ v ];
+ if( v = data[ X.Css.AttrNo.transform ] ) css[ css.length ] = 'text-transform:' + X.Css.Option.TEXT_TRANSFORM[ v ];
+ return css.join( ';' );
+ },
+ createLayoutCssText : function(){
+
+ },
+ createColorCssText : function(){
+ var data = this.data,
+ css = [],
+ v, x, y, c, b;
+ if( v = data[ X.Css.AttrNo.borderColor ] ) css[ 0 ] = 'border-color:' + v;
+ if( v = data[ X.Css.AttrNo.borderStyle + 0 ] ) css[ css.length ] = 'border-top-style:' + X.Css.Option.BORDER_STYLE[ v ];
+ if( v = data[ X.Css.AttrNo.borderStyle + 1 ] ) css[ css.length ] = 'border-right-style:' + X.Css.Option.BORDER_STYLE[ v ];
+ if( v = data[ X.Css.AttrNo.borderStyle + 2 ] ) css[ css.length ] = 'border-bottom-style:' + X.Css.Option.BORDER_STYLE[ v ];
+ if( v = data[ X.Css.AttrNo.borderStyle + 3 ] ) css[ css.length ] = 'border-left-style:' + X.Css.Option.BORDER_STYLE[ v ];
+ if( v = data[ X.Css.AttrNo.cornerRadius + 0 ] ) css[ css.length ] = 'corner-radius-top:' + v;
+ if( v = data[ X.Css.AttrNo.cornerRadius + 1 ] ) css[ css.length ] = 'corner-radius-right:' + v;
+ if( v = data[ X.Css.AttrNo.cornerRadius + 2 ] ) css[ css.length ] = 'border-radius-bottom:' + v;
+ if( v = data[ X.Css.AttrNo.cornerRadius + 3 ] ) css[ css.length ] = 'border-radius-left:' + v;
+ if( v = data[ X.Css.AttrNo.bgColor ] ) css[ css.length ] = 'background-color:' + v;
+ // X.Css.AttrNo.bgAlpha
+ if( v = data[ X.Css.AttrNo.bgImgUrl ] ) css[ css.length ] = 'background-image:url(' + v + ')';
+ x = data[ X.Css.AttrNo.bgImgRepeatX ];
+ y = data[ X.Css.AttrNo.bgImgRepeatY ];
+ if( x && y ){
+ css[ css.length ] = 'background-repeat:repeat';
+ } else
+ if( x ){
+ css[ css.length ] = 'background-repeat:repeat-x';
+ } else
+ if( y ){
+ css[ css.length ] = 'background-repeat:repeat-y';
+ };
+ x = data[ X.Css.AttrNo.bgImgPositionX ];
+ y = data[ X.Css.AttrNo.bgImgPositionY ];
+ if( x && y ){
+ css[ css.length ] = 'background-position:' + x + ' ' + y;
+ } else
+ if( x ){
+ css[ css.length ] = 'background-position:' + x + ' 0';
+ } else
+ if( y ){
+ css[ css.length ] = 'background-position:0 ' + y;
+ };
+ if( v = data[ X.Css.AttrNo.color ] ) css[ css.length ] = 'color:' + v;
+ if( v = data[ X.Css.AttrNo.decoration ] ) css[ css.length ] = 'text-decoration:' + X.Css.Option.TEXT_DECORATION[ v ];
+ x = data[ X.Css.AttrNo.textShadowOffsetX ];
+ y = data[ X.Css.AttrNo.textShadowOffsetY ];
+ b = data[ X.Css.AttrNo.textShadowBlur ];
+ c = data[ X.Css.AttrNo.textShadowColor ];
+ if( c || x || y || b ){
+ css[ css.length ] = 'text-shadow:' + x + ' ' + y + ' ' + b + ' ' + c;
+ };
+ /*
+ X.Css.AttrNo.shadowColor = [ X.Css.Dirty.PAINT, 23, X.Css.Type.COLOR ]; // color
+ X.Css.AttrNo.shadowAlpha = [ X.Css.Dirty.PAINT, 24, X.Css.Type.U_DECIMAL ]; // 0 - 1
+ X.Css.AttrNo.shadowOffsetX = [ X.Css.Dirty.PAINT, 25, X.Css.Type.LENGTH ]; // em
+ X.Css.AttrNo.shadowOffsetY = [ X.Css.Dirty.PAINT, 26, X.Css.Type.LENGTH ]; // em
+ X.Css.AttrNo.shadowBlur = [ X.Css.Dirty.PAINT, 27, X.Css.Type.LENGTH ]; // em
+ X.Css.AttrNo.shadowSpread = [ X.Css.Dirty.PAINT, 28, X.Css.Type.LENGTH ]; // em
+ X.Css.AttrNo.shadowInset = [ X.Css.Dirty.PAINT, 29, X.Css.Type.BOOLEAN ]; // true / false
+ */
+ return css.join( ';' );
}
}
);
Constructor : function( node, nodeData ){
X.Class._newPrivate( this, node, nodeData );
},
- name : function( v ){
- var data = X.Class._getPrivate( this );
- if( v ){
- return data.name( v );
- };
- return data._name;
- },
addName : function( names ){
return X.Class._getPrivate( this ).addName( names );
},
return this;
};
// return data._css;
+ },
+
+ borderWidth : function( v ){
+ return X.Class._getPrivate( this ).attr( X.Css.Attr.borderWidth, v );
+ },
+ borderColor : function( v ){
+ return X.Class._getPrivate( this ).attr( X.Css.Attr.borderColor, v );
+ },
+ borderStyle : function( v ){
+ return X.Class._getPrivate( this ).attr( X.Css.Attr.borderStyle, v );
+ },
+ cornerRadius : function( v ){
+ return X.Class._getPrivate( this ).attr( X.Css.Attr.cornerRadius, v );
+ },
+ bgColor : function( v ){
+ return X.Class._getPrivate( this ).attr( X.Css.Attr.bgColor, v );
+ },
+ bgAlpha : function( v ){
+ return X.Class._getPrivate( this ).attr( X.Css.Attr.bgAlpha, v );
+ },
+ bgImgUrl : function( v ){
+ return X.Class._getPrivate( this ).attr( X.Css.Attr.bgImgUrl, v );
+ },
+ bgImgRepeatX : function( v ){
+ return X.Class._getPrivate( this ).attr( X.Css.Attr.bgImgRepeatX, v );
+ },
+ bgImgRepeatY : function( v ){
+ return X.Class._getPrivate( this ).attr( X.Css.Attr.bgImgRepeatY, v );
+ },
+ bgImgPositionX : function( v ){
+ return X.Class._getPrivate( this ).attr( X.Css.Attr.bgImgPositionX, v );
+ },
+ bgImgPositionY : function( v ){
+ return X.Class._getPrivate( this ).attr( X.Css.Attr.bgImgPositionY, v );
+ },
+ shadowColor : function( v ){
+ return X.Class._getPrivate( this ).attr( X.Css.Attr.shadowColor, v );
+ },
+ shadowAlpha : function( v ){
+ return X.Class._getPrivate( this ).attr( X.Css.Attr.shadowAlpha, v );
+ },
+ shadowOffsetX : function( v ){
+ return X.Class._getPrivate( this ).attr( X.Css.Attr.shadowOffsetX, v );
+ },
+ shadowOffsetY : function( v ){
+ return X.Class._getPrivate( this ).attr( X.Css.Attr.shadowOffsetY, v );
+ },
+ shadowBlur : function( v ){
+ return X.Class._getPrivate( this ).attr( X.Css.Attr.shadowBlur, v );
+ },
+ shadowSpread : function(){
+ return X.Class._getPrivate( this ).attr( X.Css.Attr.shadowSpread, v );
+ },
+ shadowInset : function(){
+ return X.Class._getPrivate( this ).attr( X.Css.Attr.shadowInset, v );
+ },
+ color : function( v ){
+ return X.Class._getPrivate( this ).attr( X.Css.Attr.color, v );
+ },
+ fontFamily : function( v ){
+ return X.Class._getPrivate( this ).attr( X.Css.Attr.fontFamily, v );
+ },
+ fontSize : function( v ){
+ return X.Class._getPrivate( this ).attr( X.Css.Attr.fontSize, v );
+ },
+ bold : function( v ){
+ return X.Class._getPrivate( this ).attr( X.Css.Attr.bold, v );
+ },
+ italic : function( v ){
+ return X.Class._getPrivate( this ).attr( X.Css.Attr.italic, v );
+ },
+ lineHeight : function( v ){
+ return X.Class._getPrivate( this ).attr( X.Css.Attr.lineHeight, v );
+ },
+ letterSpacing : function( v ){
+ return X.Class._getPrivate( this ).attr( X.Css.Attr.letterSpacing, v );
+ },
+ wordSpacing : function( v ){
+ return X.Class._getPrivate( this ).attr( X.Css.Attr.wordSpacing, v );
+ },
+ align : function( v ){
+ return X.Class._getPrivate( this ).attr( X.Css.Attr.align, v );
+ },
+ decoration : function( v ){
+ return X.Class._getPrivate( this ).attr( X.Css.Attr.decoration, v );
+ },
+ transform : function( v ){
+ return X.Class._getPrivate( this ).attr( X.Css.Attr.transform, v );
+ },
+ textShadowColor : function( v ){
+ return X.Class._getPrivate( this ).attr( X.Css.Attr.textShadowColor, v );
+ },
+ textShadowOffsetX : function( v ){
+ return X.Class._getPrivate( this ).attr( X.Css.Attr.textShadowOffsetX, v );
+ },
+ textShadowOffsetY : function( v ){
+ return X.Class._getPrivate( this ).attr( X.Css.Attr.textShadowOffsetY, v );
+ },
+ shadowBlur : function( v ){
+ return X.Class._getPrivate( this ).attr( X.Css.Attr.shadowBlur, v );
}
}
);
allowForChild : null,
define : function( src ){
return X.Class._override( this, src, true );
+ },
+
+
+ reflow : function( nodeData, allowW, allowH ){
+ nodeData.preMesure( allowW, allowH );
+
+ var children = nodeData.children,
+ contentW = nodeData.contentWidth,
+ contentH = nodeData.contentHeight,
+ autoW = contentW === AUTO,
+ autoH = contentH === AUTO,
+ auto, calc, childW, childH, child, i, style, data,
+ t, r, b, l;
+ if( children ){
+ auto = autoW && autoH;
+ childW = 0;
+ childH = 0;
+ calc = BasicLayoutManager.calcValue;
+ for( i = children.length; i; ){
+ child = children[ --i ];
+ style = child.__style;
+ if( style ){
+ data = style.data;
+ t = calc( data[ X.Css.AttrNo.top ], contentH );
+ r = calc( data[ X.Css.AttrNo.right ], contentW );
+ b = calc( data[ X.Css.AttrNo.bottom ], contentH );
+ l = calc( data[ X.Css.AttrNo.left ], contentW );
+ } else {
+ t = r = b = l = 0;
+ };
+ if( child instanceof LayoutBoxPrivate ){
+ child.layoutManager.reflow( child, contentW - r - l, contentH - t - b );
+ } else {
+ child.preMesure( contentW - r - l, contentH - t - b );
+ child.mesure();
+ child.postMesure();
+ };
+ if( !auto ) continue;
+ if( autoW && childW < child.boxWidth + r + l ) childW = child.boxWidth + r + l;
+ if( autoH && childH < child.boxHeight + t + b ) childH = child.boxHeight + t + b;
+ };
+ if( autoW ) nodeData.contentWidth = childW;
+ if( autoH ) nodeData.contentHeight = childH;
+ };
+ ( autoW || autoH ) && nodeData.postMesure();
+
+ delete nodeData.dirty;
+ },
+ redraw : function( nodeData ){
+ var root = nodeData.rootData;
+ root.dirty === X.Css.Dirty.REFLOW && this.reflow( root );
+
+ // draw
}
}
);
function eventRellay( e ){
var x = e.clientX,
y = e.clientY,
- type = X.ViewEvent.NameToID[ e.type ],
+ type = X.View.Event.NameToID[ e.type ],
i = 0,
data = currentRootData,
sysOnly = false,
list, ret, parent;
- if( type !== X.ViewEvent.POINTER_MOVE ){
+ if( type !== X.View.Event.POINTER_MOVE ){
// console.log( e.type + ' x:' + x + ', y:' + y )
};
e.type = type;
- if( data && ( data = data.monopolyNodeData ) && ( ret = data.dispatch( e ) ) & X.Cancel.MONOPOLY ) return ret;
+ if( data && ( data = data.monopolyNodeData ) && ( ret = data.dispatch( e ) ) & X.Callback.MONOPOLY ) return ret;
if( currentRootData === null ) return;
list = currentRootData.hoverList;
data = currentRootData.targetNodeData = currentRootData;
// data.apiuser.updateCoursor( data.targetNodeData._cursor );
while( data ){
ret = data.dispatch( e, sysOnly );
- if( ret & X.Cancel.MONOPOLY || ret & X.Cancel.STOP_PROPAGATION || ret & X.Cancel.STOP_NOW ) break; // sysOnly = true;
+ if( ret & X.Callback.MONOPOLY || ret & X.Callback.STOP_PROPAGATION || ret & X.Callback.STOP_NOW ) break; // sysOnly = true;
data = data.parentData;
};
if( parent !== currentRootData ){
data.isHover === true && data.styleData.removeName( data.hoverStyleName );
delete data.isHover;
- data.events && data.events[ X.ViewEvent.POINTER_OUT ] && data.dispatch( e, X.ViewEvent.POINTER_OUT, false ); // new Event
+ data.events && data.events[ X.View.Event.POINTER_OUT ] && data.dispatch( e, X.View.Event.POINTER_OUT, false ); // new Event
delete data.hitSelf;
list.splice( i, 1 );
continue;
data.isHover = true;
};
if( data.hitSelf === false ){
- data.events && data.events[ X.ViewEvent.POINTER_IN ] && data.dispatch( e, X.ViewEvent.POINTER_IN, true ); // new Event
+ data.events && data.events[ X.View.Event.POINTER_IN ] && data.dispatch( e, X.View.Event.POINTER_IN, true ); // new Event
data.hitSelf = true;
};
};
if( X.View.ready === true ){
X.Timer.once( 0, this, this.start );
} else {
- X.View.listenOnce( X.ViewEvent.SYS_READY, this, this.start );
+ X.View.listenOnce( X.View.Event.SYS_READY, this, this.start );
};
this.hoverList = [];
// hover や rollover rollout のための move イベントの追加
// X.View.activate, X.View.deactivate ?
// mouseout, mouseover
- X.DomEvent.add( elm, X.ViewEvent.IdToName[ X.ViewEvent.POINTER_MOVE ], eventRellay );
- if( counter[ X.ViewEvent.POINTER_MOVE ] ){
- ++counter[ X.ViewEvent.POINTER_MOVE ];
+ X.DomEvent.add( elm, X.View.Event.IdToName[ X.View.Event.POINTER_MOVE ], eventRellay );
+ if( counter[ X.View.Event.POINTER_MOVE ] ){
+ ++counter[ X.View.Event.POINTER_MOVE ];
} else {
- counter[ X.ViewEvent.POINTER_MOVE ] = 1;
+ counter[ X.View.Event.POINTER_MOVE ] = 1;
};
X.Timer.once( 0, this, this.afterAddToView );
doFirstCalc : function(){
this.doCalculate();
- X.View.listen( X.ViewEvent.VIEW_RESIZED, this, this.doCalculate );
+ X.View.listen( X.View.Event.VIEW_RESIZED, this, this.doCalculate );
},
reserveCalc : function(){
if( this.calcReserved === false ){
},
beforeRemove : function(){
- X.DomEvent.remove( this.elmMouseCatch, X.ViewEvent.IdToName[ X.ViewEvent.POINTER_MOVE ], eventRellay );
+ X.DomEvent.remove( this.elmMouseCatch, X.View.Event.IdToName[ X.View.Event.POINTER_MOVE ], eventRellay );
}
}
);
this.styleData.afterAddition();\r
\r
this.phase = 3;\r
- this.User.dispatch( { type : X.ViewEvent.CREATION_COMPLETE } );\r
+ this.User.dispatch( { type : X.View.Event.CREATION_COMPLETE } );\r
}\r
}\r
);\r
* \r
* need xua\r
*/\r
-var X = X || {};\r
\r
X.Type = {\r
isObject : function(v) {\r
+++ /dev/null
-X.Cancel = {\r
- NONE : 0,\r
- UN_LISTEN : 1,\r
- STOP_PROPAGATION : 2, // 上位階層への伝播のキャンセル\r
- CANCEL_NOW : 4, // 同一階層のリスナーのキャンセル\r
- PREVENT_DEFAULT : 8, // 結果動作のキャンセル,\r
- MONOPOLY : 16, // move event を独占する\r
- SYS_CANCEL : 32\r
-};\r
-\r
-/* \r
-isDefaultPrevented():Boolean\r
-イベントで preventDefault() メソッドが呼び出されたかどうかを確認します。\r
- Event\r
- \r
-preventDefault():void\r
-イベントのデフォルト動作をキャンセルできる場合に、その動作をキャンセルします。\r
- Event\r
- \r
-stopImmediatePropagation():void\r
-イベントフローの現在のノードおよび後続するノードで、イベントリスナーが処理されないようにします。\r
- Event\r
- \r
-stopPropagation():void\r
-イベントフローの現在のノードに後続するノードで、イベントリスナーが処理されないようにします。\r
-*/
\ No newline at end of file
\r
-var X = X || {};\r
\r
X.Callback = {\r
+ \r
+ NONE : 0,\r
+ UN_LISTEN : 1,\r
+ STOP_PROPAGATION : 2, // 上位階層への伝播のキャンセル\r
+ CANCEL_NOW : 4, // 同一階層のリスナーのキャンセル\r
+ PREVENT_DEFAULT : 8, // 結果動作のキャンセル,\r
+ MONOPOLY : 16, // move event を独占する\r
+ SYS_CANCEL : 32,\r
+ \r
_LIVE_LIST : [],\r
_POOL_LIST : [],\r
create : function( arg0, arg1, arg2 /* [ listener || ( context + function ) || function ][ args... ] */ ){\r
f = queue[ INDEX_CALLBACK ];\r
c = queue[ INDEX_COUNT ];\r
ret = f();\r
- if( ret === false || ret === X.Cancel.UN_LISTEN || c === 1 ){\r
+ if( ret === false || ret & X.Callback.UN_LISTEN || c === 1 ){\r
list.splice( i, 1 );\r
f.kill();\r
queue.length = 0;\r
ret = f( e );\r
} else {\r
ret = f( e );\r
- if( ret === false || ret & X.Cancel.UN_LISTEN ){\r
+ if( ret === false || ret & X.Callback.UN_LISTEN ){\r
list.splice( i, 1 );\r
f.kill();\r
};\r
list.data[ e.type ] = void 0;\r
delete list.data;\r
};\r
- if( ret & X.Cancel.STOP_NOW ){\r
+ if( ret & X.Callback.STOP_NOW ){\r
sysOnly = true;\r
};\r
_ret |= ret;\r
+++ /dev/null
-X.ViewEvent = {\r
- SYS_READY : 0,\r
- INIT : 1,\r
- ADDED : 2,\r
- CREATION_COMPLETE : 3,\r
- REMOVED : 4,\r
- \r
- VIEW_RESIZED : 5, // リサイズイベントのバブルアップは要素のレイアウトマネジャーでキャンセルされることも\r
- IN_VIEW : 6, // 要素が視界に入った\r
- OUT_VIEW : 7,\r
- \r
- POINTER_OUT : 8,\r
- POINTER_IN : 9,\r
- \r
- // FOCUS\r
- // DISABLED\r
- // ENABLED\r
-\r
-/* -- Pointing Device Event -- */\r
- _START_POINTER : 10,\r
- \r
- CONTEXT_MENU : 10, // rightclick or longtouch or menukey\r
- \r
-/* -- ここよりあとははノード上をバブルアップ -- */\r
- _NO_BUBLEUP : 10.5, \r
- //\r
- POINTER_START : 11,\r
- POINTER_END : 12,\r
- POINTER_MOVE : 13,\r
- \r
- SELECT : 14, // click or tap or enterkey\r
- FILE_DRAG : 15,\r
- \r
-/* -- Pointing Device Event -- */\r
- _END_POINTER : 15,\r
- \r
- KEY_DOWN : 16,\r
- KEY_UP : 17,\r
- \r
- SCROLL : 18,\r
-\r
- CHANGE : 19,\r
- SUBMIT : 20,\r
- \r
- IdToName : {},\r
- NameToID : {}\r
-};\r
-\r
-if( window.navigator.msPointerEnabled ){\r
- X.ViewEvent.IdToName[ X.ViewEvent.POINTER_START ] = 'MSPointerDown';\r
- X.ViewEvent.IdToName[ X.ViewEvent.POINTER_END ] = 'MSPointerUp';\r
- X.ViewEvent.IdToName[ X.ViewEvent.POINTER_MOVE ] = 'MSPointerMove';\r
- X.ViewEvent.NameToID[ 'MSPointerDown' ] = X.ViewEvent.POINTER_START;\r
- X.ViewEvent.NameToID[ 'MSPointerUp' ] = X.ViewEvent.POINTER_END;\r
- X.ViewEvent.NameToID[ 'MSPointerMove' ] = X.ViewEvent.POINTER_MOVE;\r
-} else\r
-if( 'ontouchstart' in window || window.DocumentTouch && document instanceof DocumentTouch ){\r
- X.ViewEvent.IdToName[ X.ViewEvent.POINTER_START ] = 'touchstart';\r
- X.ViewEvent.IdToName[ X.ViewEvent.POINTER_END ] = 'touchend';\r
- X.ViewEvent.IdToName[ X.ViewEvent.POINTER_MOVE ] = 'touchmove';\r
- X.ViewEvent.NameToID[ 'touchstart' ] = X.ViewEvent.POINTER_START;\r
- X.ViewEvent.NameToID[ 'touchend' ] = X.ViewEvent.POINTER_END;\r
- X.ViewEvent.NameToID[ 'touchmove' ] = X.ViewEvent.POINTER_MOVE;\r
-} else {\r
- X.ViewEvent.IdToName[ X.ViewEvent.POINTER_START ] = 'mousedown';\r
- X.ViewEvent.IdToName[ X.ViewEvent.POINTER_END ] = 'mouseup';\r
- X.ViewEvent.IdToName[ X.ViewEvent.POINTER_MOVE ] = 'mousemove';\r
- X.ViewEvent.NameToID[ 'mousedown' ] = X.ViewEvent.POINTER_START;\r
- X.ViewEvent.NameToID[ 'mouseup' ] = X.ViewEvent.POINTER_END;\r
- X.ViewEvent.NameToID[ 'mousemove' ] = X.ViewEvent.POINTER_MOVE;\r
-};\r
-\r
+X.View = {\r
+ Event : {\r
+ SYS_READY : 0,\r
+ INIT : 1,\r
+ ADDED : 2,\r
+ CREATION_COMPLETE : 3,\r
+ REMOVED : 4,\r
+ \r
+ VIEW_RESIZED : 5, // リサイズイベントのバブルアップは要素のレイアウトマネジャーでキャンセルされることも\r
+ IN_VIEW : 6, // 要素が視界に入った\r
+ OUT_VIEW : 7,\r
+ \r
+ POINTER_OUT : 8,\r
+ POINTER_IN : 9,\r
+ \r
+ // FOCUS\r
+ // DISABLED\r
+ // ENABLED\r
+ \r
+ /* -- Pointing Device Event -- */\r
+ _START_POINTER : 10,\r
+ \r
+ CONTEXT_MENU : 10, // rightclick or longtouch or menukey\r
+ \r
+ /* -- ここよりあとははノード上をバブルアップ -- */\r
+ _NO_BUBLEUP : 10.5, \r
+ //\r
+ POINTER_START : 11,\r
+ POINTER_END : 12,\r
+ POINTER_MOVE : 13,\r
+ \r
+ SELECT : 14, // click or tap or enterkey\r
+ FILE_DRAG : 15,\r
+ \r
+ /* -- Pointing Device Event -- */\r
+ _END_POINTER : 15,\r
+ \r
+ KEY_DOWN : 16,\r
+ KEY_UP : 17,\r
+ \r
+ SCROLL : 18,\r
+ \r
+ CHANGE : 19,\r
+ SUBMIT : 20,\r
+ \r
+ IdToName : {},\r
+ NameToID : {}\r
+ }\r
+};\r
+\r
+if( window.navigator.msPointerEnabled ){\r
+ X.View.Event.IdToName[ X.View.Event.POINTER_START ] = 'MSPointerDown';\r
+ X.View.Event.IdToName[ X.View.Event.POINTER_END ] = 'MSPointerUp';\r
+ X.View.Event.IdToName[ X.View.Event.POINTER_MOVE ] = 'MSPointerMove';\r
+ X.View.Event.NameToID[ 'MSPointerDown' ] = X.View.Event.POINTER_START;\r
+ X.View.Event.NameToID[ 'MSPointerUp' ] = X.View.Event.POINTER_END;\r
+ X.View.Event.NameToID[ 'MSPointerMove' ] = X.View.Event.POINTER_MOVE;\r
+} else\r
+if( 'ontouchstart' in window || window.DocumentTouch && document instanceof DocumentTouch ){\r
+ X.View.Event.IdToName[ X.View.Event.POINTER_START ] = 'touchstart';\r
+ X.View.Event.IdToName[ X.View.Event.POINTER_END ] = 'touchend';\r
+ X.View.Event.IdToName[ X.View.Event.POINTER_MOVE ] = 'touchmove';\r
+ X.View.Event.NameToID[ 'touchstart' ] = X.View.Event.POINTER_START;\r
+ X.View.Event.NameToID[ 'touchend' ] = X.View.Event.POINTER_END;\r
+ X.View.Event.NameToID[ 'touchmove' ] = X.View.Event.POINTER_MOVE;\r
+} else {\r
+ X.View.Event.IdToName[ X.View.Event.POINTER_START ] = 'mousedown';\r
+ X.View.Event.IdToName[ X.View.Event.POINTER_END ] = 'mouseup';\r
+ X.View.Event.IdToName[ X.View.Event.POINTER_MOVE ] = 'mousemove';\r
+ X.View.Event.NameToID[ 'mousedown' ] = X.View.Event.POINTER_START;\r
+ X.View.Event.NameToID[ 'mouseup' ] = X.View.Event.POINTER_END;\r
+ X.View.Event.NameToID[ 'mousemove' ] = X.View.Event.POINTER_MOVE;\r
+};\r
\r
X.View = (function( window, document ){\r
var view = X.UA.IE ?\r
if( w !== size[ 0 ] || h !== size[ 1 ] ){// VIEW_RESIZED\r
w = size[ 0 ];\r
h = size[ 1 ];\r
- X.View.dispatch( { type : X.ViewEvent.VIEW_RESIZED, w : w, h : h } );\r
+ X.View.dispatch( { type : X.View.Event.VIEW_RESIZED, w : w, h : h } );\r
};\r
X.Timer.once( 1, unlock );// delay unlock\r
};\r
if( w !== size[ 0 ] || h !== size[ 1 ] ){// VIEW_RESIZED\r
w = size[ 0 ];\r
h = size[ 1 ];\r
- X.View.dispatch( { type : X.ViewEvent.VIEW_RESIZED, w : w, h : h } );\r
+ X.View.dispatch( { type : X.View.Event.VIEW_RESIZED, w : w, h : h } );\r
};\r
X.Timer.once( 1, unlock );\r
};\r
},\r
_init : function(){\r
var s;\r
- if( X.View.ready ) return X.Cancel.UN_LISTEN;\r
+ if( X.View.ready ) return X.Callback.UN_LISTEN;\r
if( s = X.View._script ){\r
s.parentNode.removeChild( s );\r
s.onreadystatechange = new Function();\r
};\r
delete X.View._init;\r
X.View.ready = true;\r
- X.View.dispatch( { type : X.ViewEvent.SYS_READY } );\r
- return X.Cancel.UN_LISTEN;\r
- }\r
+ X.View.dispatch( { type : X.View.Event.SYS_READY } );\r
+ return X.Callback.UN_LISTEN;\r
+ },\r
+ Event : X.View.Event\r
}\r
);\r
\r
- X.View.listenOnce( X.ViewEvent.SYS_READY, function(){\r
+ X.View.listenOnce( X.View.Event.SYS_READY, function(){\r
var b, x;\r
if( X.UA.IE && X.UA.IE < 9 ){\r
X.Timer.add( 100, resize );\r
} else\r
if( X.UA.WebKit ){ // sniff\r
X.Timer.add( 10, function(){\r
- if( !X.View._init ) return X.Cancel.UN_LISTEN;\r
+ if( !X.View._init ) return X.Callback.UN_LISTEN;\r
if( 'loaded|complete'.indexOf( document.readyState ) !== -1 ) return X.View._init();\r
});\r
};\r
X.DomEvent.add( window, 'load', X.View._init );\r
\r
//\r
-X.View.listen( X.ViewEvent.SYS_READY, function(e){ console.log( 'X.View DomReady ' + X.View.ready ) } );\r
+X.View.listen( X.View.Event.SYS_READY, function(e){ console.log( 'X.View DomReady ' + X.View.ready ) } );\r
\r
-X.View.listen( X.ViewEvent.VIEW_RESIZED, function(e){ console.log( 'X.View VIEW_RESIZED ' + e.w + 'x' + e.h ) } );\r
+X.View.listen( X.View.Event.VIEW_RESIZED, function(e){ console.log( 'X.View VIEW_RESIZED ' + e.w + 'x' + e.h ) } );\r