CONSTRUCTOR = 'Constructor',\r
killPrivateFlag = false,\r
traits = null,\r
- _slice = Array.prototype.slice;\r
+ use__proto__ = !!X.emptyFunction.prototype.__proto__;\r
\r
/* サブクラスを作るメソッド \r
* var subClass = superClass.inherits( ... ) \r
params.push( args[ 0 ] ); /* props サブクラスでは未定義でも可 */\r
\r
// 継承クラスの作成\r
- Super.__new = null;\r
- traits = new Super();\r
- Super.__new = C;\r
+ if( use__proto__ ){\r
+ traits = Super.prototype;\r
+ } else {\r
+ Super.__new = null;\r
+ traits = new Super();\r
+ Super.__new = C; \r
+ };\r
klass = X.Class.create.apply( X.Class, params );\r
traits = null;\r
\r
klass.superClassOf = X.Class._superClassOf;\r
klass.subClassOf = X.Class._subClassOf;\r
\r
- if( X.UA.Safari && X.UA.Safari < 3 ){ // TODO Gecko もこちらへ\r
- X.Class._override( X.Class._override( traits || klass.prototype, props, true ), CommonProps, false );\r
- if( traits ) klass.prototype.__proto__ = traits;\r
+ if( use__proto__ ){\r
+ X.Class._override( klass.prototype, props, true );\r
+ if( traits ){\r
+ klass.prototype.__proto__ = traits;\r
+ } else {\r
+ X.Class._override( klass.prototype, CommonProps, false );\r
+ };\r
+ //if( X.UA.Safari && X.UA.Safari < 3 ){ // TODO Gecko もこちらへ\r
+ // X.Class._override( X.Class._override( traits || klass.prototype, props, true ), CommonProps, false );\r
+ // if( traits ) klass.prototype.__proto__ = traits;\r
} else {\r
klass.prototype = X.Class._override( X.Class._override( traits || klass.prototype, props, true ), CommonProps, false );\r
klass.prototype.constructor = klass;\r
new Node( document.all.tags( 'html' )[ 0 ] ) :\r
null;\r
\r
- r = Node.root = new Node( document.body );\r
+ r = Node._body = new Node( document.body );\r
h.appendTo = h.appendToRoot = h.before = h.after = h.clone = h.remove = h.destroy = h.prevNode = h.nextNode = h.createText = h.append = h.appendAt = h.empty = h.html = h.text =\r
r.appendTo = r.appendToRoot = r.before = r.after = r.clone = r.remove = r.destroy = r.prevNode = r.nextNode = new Function( 'return this' );\r
\r
X.Dom.listenOnce( X.Dom.Event.DOM_BUILDER_COMPLETE, function(){\r
X.Dom.readyState = X.Dom.Event.DOM_INIT;\r
//X.UA.Opera7 && alert( 'bc' );\r
- Node.root.appendAt( 0,\r
+ Node._body.appendAt( 0,\r
Node._systemNode = Node.create( 'div', { 'class' : 'hidden-system-node' } ),\r
Node._fontSizeNode = Node.create( 'div', { 'class' : 'hidden-system-node' } ).cssText( 'line-height:1;height:1em;' ).text( 'X' )\r
)._startUpdate();\r
//http://onozaty.hatenablog.com/entry/20060803/p1\r
// Safari2.0.4では標準・互換どちらも document.body\r
\r
- Node.root._updateTimerID && Node.root._startUpdate();\r
+ Node._body._updateTimerID && Node._body._startUpdate();\r
/*X.UA.Opera ?\r
( document.documentElement && document.documentElement.clientWidth ?\r
new Function( 'return[document.documentElement.clientWidth,document.documentElement.clientHeight]' ) :\r
getScrollPosition :\r
window.pageXOffset !== undefined ?\r
( function(){\r
- Node.root._updateTimerID && Node.root._startUpdate();\r
+ Node._body._updateTimerID && Node._body._startUpdate();\r
return[ window.pageXOffset, window.pageYOffset ];\r
} ) :\r
window.scrollLeft !== undefined ?\r
( function(){\r
- Node.root._updateTimerID && Node.root._startUpdate();\r
+ Node._body._updateTimerID && Node._body._startUpdate();\r
return[ window.scrollLeft, window.scrollTop ];\r
} ) :\r
( function(){\r
- Node.root._updateTimerID && Node.root._startUpdate();\r
+ Node._body._updateTimerID && Node._body._startUpdate();\r
// body は Safari2-\r
return[ X.Dom._root.scrollLeft || document.body.scrollLeft, X.Dom._root.scrollTop || document.body.scrollTop ];\r
} ),\r
\r
};\r
\r
+X.Dom.EVENT_POINTER = navigator.msPointerEnabled || navigator.pointerEnabled;\r
+X.Dom.EVENT_TOUCH = !X.Dom.EVENT_POINTER && window.ontouchstart !== undefined;\r
+\r
X.Dom.moveToHead = {\r
STYLE : true,\r
LINK : true,\r
\r
Node.getRoot = function( xnode ){\r
return Node._document;\r
- //return xnode.root._rawNode.documentElement ? node : node.ownerDocument || node.document;\r
+ //return xNode._body._rawNode.documentElement ? node : node.ownerDocument || node.document;\r
};\r
// XMLかどうかを判別する\r
Node.isXmlDocument =\r
Node._window = new Node( window ); // Node._chashe[ 1 ]\r
Node._document = new Node( document ); // Node._chashe[ 2 ]\r
Node._html = null; // Node._chashe[ 3 ]\r
-Node.root = null;// = Node._chashe[ 4 ] body\r
+Node._body = null;// = Node._chashe[ 4 ] body\r
Node._systemNode = null;// = Node._chashe[ ? ]\r
\r
Node._reserveRemoval = [];\r
};\r
\r
Node.prototype.appendToRoot = function( opt_index ){\r
- opt_index === undefined ? Node.root.append( this ) : Node.root.appendAt( opt_index, this );\r
+ opt_index === undefined ? Node._body.append( this ) : Node._body.appendAt( opt_index, this );\r
return this;\r
};\r
\r
*/\r
\r
Node.prototype._reserveUpdate = function(){\r
- var root = Node.root;\r
+ var root = Node._body;\r
if( root && !root._updateTimerID ) root._updateTimerID = X.Timer.requestFrame( root, root._startUpdate );\r
};\r
\r
// https://github.com/georgeadamson/jQuery.prefixfree-events/blob/master/jQuery.prefixfree-events.js\r
\r
if( window.onwebkitanimationend !== undefined && window.onanimationend === undefined ){\r
- X.Dom.Event.Rename[ 'animationend' ] = 'webkitAnimationEnd';\r
+ X.Dom.Event.Rename[ 'animationend' ] = 'webkitAnimationEnd';\r
X.Dom.Event.RenameTo[ 'webkitAnimationEnd' ] = 'animationend';\r
- X.Dom.Event.Rename[ 'animationstart' ] = 'webkitAnimationStart';\r
+ X.Dom.Event.Rename[ 'animationstart' ] = 'webkitAnimationStart';\r
X.Dom.Event.RenameTo[ 'webkitAnimationStart' ] = 'animationstart';\r
- X.Dom.Event.Rename[ 'animationiteration' ] = 'webkitAnimationIteration';\r
+ X.Dom.Event.Rename[ 'animationiteration' ] = 'webkitAnimationIteration';\r
X.Dom.Event.RenameTo[ 'webkitAnimationIteration' ] = 'animationiteration';\r
+} else\r
+if( window.onoanimationend !== undefined && window.onanimationend === undefined ){\r
+ X.Dom.Event.Rename[ 'animationend' ] = 'oAnimationEnd';\r
+ X.Dom.Event.RenameTo[ 'oAnimationEnd' ] = 'animationend';\r
+ X.Dom.Event.Rename[ 'animationstart' ] = 'oAnimationStart';\r
+ X.Dom.Event.RenameTo[ 'oAnimationStart' ] = 'animationstart';\r
+ X.Dom.Event.Rename[ 'animationiteration' ] = 'oAnimationIteration';\r
+ X.Dom.Event.RenameTo[ 'oAnimationIteration' ] = 'animationiteration';\r
+} else\r
+/*\r
+if( window.onmozanimationend !== undefined && window.onanimationend === undefined ){\r
+ X.Dom.Event.Rename[ 'animationend' ] = 'mozAnimationEnd';\r
+ X.Dom.Event.RenameTo[ 'mozAnimationEnd' ] = 'animationend';\r
+ X.Dom.Event.Rename[ 'animationstart' ] = 'mozAnimationStart';\r
+ X.Dom.Event.RenameTo[ 'mozAnimationStart' ] = 'animationstart';\r
+ X.Dom.Event.Rename[ 'animationiteration' ] = 'mozAnimationIteration';\r
+ X.Dom.Event.RenameTo[ 'mozAnimationIteration' ] = 'animationiteration';\r
+} else*/\r
+if( document.documentElement && document.documentElement.style.msAnimation !== undefined && document.documentElement.style.animation === undefined ){ //document.documentElement.style.msAnimation \r
+ X.Dom.Event.Rename[ 'animationend' ] = 'MSAnimationEnd';\r
+ X.Dom.Event.RenameTo[ 'MSAnimationEnd' ] = 'animationend';\r
+ X.Dom.Event.Rename[ 'animationstart' ] = 'MSAnimationStart';\r
+ X.Dom.Event.RenameTo[ 'MSAnimationStart' ] = 'animationstart';\r
+ X.Dom.Event.Rename[ 'animationiteration' ] = 'MSAnimationIteration';\r
+ X.Dom.Event.RenameTo[ 'MSAnimationIteration' ] = 'animationiteration';\r
};\r
-\r
+// https://developer.mozilla.org/en-US/docs/Web/Events/transitionend\r
+// chrome1+, firefox4+, IE10+, Opera10.5+, Safari3.2+, Android2.1+\r
if( window.onwebkittransitionend !== undefined && window.ontransitionend === undefined ){\r
- X.Dom.Event.Rename[ 'transitionend' ] = 'webkitTransitionEnd';\r
+ X.Dom.Event.Rename[ 'transitionend' ] = 'webkitTransitionEnd';\r
X.Dom.Event.RenameTo[ 'webkitTransitionEnd' ] = 'transitionend';\r
+} else\r
+if( window.onotransitionend !== undefined && window.ontransitionend === undefined ){\r
+ if( X.UA.Opera < 12 ){\r
+ X.Dom.Event.Rename[ 'transitionend' ] = 'oTransitionEnd';\r
+ X.Dom.Event.RenameTo[ 'oTransitionEnd' ] = 'transitionend';\r
+ } else {\r
+ X.Dom.Event.Rename[ 'transitionend' ] = 'otransitionEnd';\r
+ X.Dom.Event.RenameTo[ 'otransitionEnd' ] = 'transitionend';\r
+ };\r
+} else\r
+if( window.onmoztransitionend !== undefined && window.ontransitionend === undefined ){\r
+ X.Dom.Event.Rename[ 'transitionend' ] = 'mozTransitionEnd';\r
+ X.Dom.Event.RenameTo[ 'mozTransitionEnd' ] = 'transitionend';\r
};\r
\r
+\r
+if( navigator.msPointerEnabled && !navigator.pointerEnabled ){\r
+ X.Dom.Event.Rename[ 'pointerdown' ] = 'MSPointerDown';\r
+ X.Dom.Event.RenameTo[ 'MSPointerDown' ] = 'pointerdown';\r
+ X.Dom.Event.Rename[ 'pointerup' ] = 'MSPointerUp';\r
+ X.Dom.Event.RenameTo[ 'MSPointerUp' ] = 'pointerup';\r
+ X.Dom.Event.Rename[ 'pointermove' ] = 'MSPointerMove';\r
+ X.Dom.Event.RenameTo[ 'MSPointerMove' ] = 'pointermove';\r
+ X.Dom.Event.Rename[ 'pointercancel' ] = 'MSPointerCancel';\r
+ X.Dom.Event.RenameTo[ 'MSPointerCancel' ] = 'pointercancel';\r
+};\r
+\r
+\r
+\r
X.Dom.Node.prototype.listen = function( type, arg1, arg2, arg3 /* [ listener || ( context + function ) || function ][ arguments ] */ ){\r
var elm;\r
\r
console.log( 'xnode.width() : no parent' );\r
return 0;\r
};\r
- Node.root._updateTimerID && Node.root._startUpdate();\r
+ Node._body._updateTimerID && Node._body._startUpdate();\r
if( !this._root ){\r
console.log( 'xnode.width() : not belong tree.' );\r
return 0;\r
console.log( 'xnode.height() : no parent' );\r
return 0;\r
};\r
- Node.root._updateTimerID && Node.root._startUpdate();\r
+ Node._body._updateTimerID && Node._body._startUpdate();\r
if( !this._root ){\r
console.log( 'xnode.height() : not belong tree.' );\r
return 0;\r
console.log( 'xnode.width() : no parent' );\r
return 0;\r
};\r
- Node.root._updateTimerID && Node.root._startUpdate();\r
+ Node._body._updateTimerID && Node._body._startUpdate();\r
if( !this._root ){\r
console.log( 'xnode.width() : not belong tree.' );\r
return 0;\r
console.log( 'xnode.height() : no parent' );\r
return 0;\r
};\r
- Node.root._updateTimerID && Node.root._startUpdate();\r
+ Node._body._updateTimerID && Node._body._startUpdate();\r
if( !this._root ){\r
console.log( 'xnode.height() : not belong tree.' );\r
return 0;\r
console.log( 'xnode.scrollLeft() : no parent' );\r
return 0;\r
};\r
- Node.root._updateTimerID && Node.root._startUpdate();\r
+ Node._body._updateTimerID && Node._body._startUpdate();\r
if( !this._root ){\r
console.log( 'xnode.scrollLeft() : not belong tree.' );\r
return 0;\r
console.log( 'xnode.scrollTop() : no parent' );\r
return 0;\r
};\r
- Node.root._updateTimerID && Node.root._startUpdate();\r
+ Node._body._updateTimerID && Node._body._startUpdate();\r
if( !this._root ){\r
console.log( 'xnode.scrollTop() : not belong tree.' );\r
return 0;\r
console.log( 'xnode.x() : no parent' );\r
return 0;\r
};\r
- Node.root._updateTimerID && Node.root._startUpdate();\r
+ Node._body._updateTimerID && Node._body._startUpdate();\r
if( !this._root ){\r
console.log( 'xnode.x() : not belong tree.' );\r
return 0;\r
console.log( 'xnode.y() : no parent' );\r
return 0;\r
};\r
- Node.root._updateTimerID && Node.root._startUpdate();\r
+ Node._body._updateTimerID && Node._body._startUpdate();\r
if( !this._root ){\r
console.log( 'xnode.y() : not belong tree.' );\r
return 0;\r
X.Dom.Node.prototype._getCharSize =
window.getComputedStyle ?
(function(){
- Node.root._updateTimerID && Node.root._startUpdate();
- if( this === Node.root && X.Dom.baseFontSize ) return X.Dom.baseFontSize;
+ Node._body._updateTimerID && Node._body._startUpdate();
+ if( this === Node._body && X.Dom.baseFontSize ) return X.Dom.baseFontSize;
if( this._fontSize ) return this._fontSize;
return this._fontSize = parseFloat( getComputedStyle( this._rawNode, null ).fontSize );
}) :
document.defaultView && document.defaultView.getComputedStyle ?
(function(){
- Node.root._updateTimerID && Node.root._startUpdate();
- if( this === Node.root && X.Dom.baseFontSize ) return X.Dom.baseFontSize;
+ Node._body._updateTimerID && Node._body._startUpdate();
+ if( this === Node._body && X.Dom.baseFontSize ) return X.Dom.baseFontSize;
if( this._fontSize ) return this._fontSize;
return this._fontSize = parseFloat( document.defaultView.getComputedStyle( this._rawNode, null ).fontSize );
}) :
X.UA.IE && 5.5 <= X.UA.IE ?
(function(){
var font, vu, v, u, _v;
- Node.root._updateTimerID && Node.root._startUpdate();
- if( this === Node.root && X.Dom.baseFontSize ) return X.Dom.baseFontSize;
+ Node._body._updateTimerID && Node._body._startUpdate();
+ if( this === Node._body && X.Dom.baseFontSize ) return X.Dom.baseFontSize;
if( this._fontSize ) return this._fontSize;
font = this._rawNode.currentStyle.fontSize;
X.Dom.DOM_W3C ?
(function(){
var elm, v;
- Node.root._updateTimerID && Node.root._startUpdate();
- if( this === Node.root && X.Dom.baseFontSize ) return X.Dom.baseFontSize;
+ Node._body._updateTimerID && Node._body._startUpdate();
+ if( this === Node._body && X.Dom.baseFontSize ) return X.Dom.baseFontSize;
if( this._fontSize ) return this._fontSize;
this._rawNode.appendChild( elm = document.createElement( 'span' ) );
X.Dom.DOM_IE4 ?
(function(){
var font, vu, v, u, _v;
- Node.root._updateTimerID && Node.root._startUpdate();
- if( this === Node.root && X.Dom.baseFontSize ) return X.Dom.baseFontSize;
+ Node._body._updateTimerID && Node._body._startUpdate();
+ if( this === Node._body && X.Dom.baseFontSize ) return X.Dom.baseFontSize;
if( this._fontSize ) return this._fontSize;
if( this._css && ( font = this._css.fontSize ) ){
}) :
(function(){
var elm, v;
- if( this === Node.root && X.Dom.baseFontSize ) return X.Dom.baseFontSize;
- Node.root._updateTimerID && Node.root._startUpdate();
+ if( this === Node._body && X.Dom.baseFontSize ) return X.Dom.baseFontSize;
+ Node._body._updateTimerID && Node._body._startUpdate();
if( this._fontSize ) return this._fontSize;
elm = this._rawNode || this._ie4getRawNode();
// セレクター\r
X.Dom.find = X._shortcut = Node.prototype.find = X.Dom.NodeList.prototype.find = function( queryString ){\r
var HTML = Node._html,\r
- scope = this.constructor === X.Dom.NodeList && this.length ? this : [ this.constructor === Node ? this : Node.root ],\r
+ scope = this.constructor === X.Dom.NodeList && this.length ? this : [ this.constructor === Node ? this : Node._body ],\r
parents = scope, // 探索元の親要素 XNodeList の場合あり\r
noLower = 'title id name class for action archive background cite classid codebase data href longdesc profile src usemap',// + X.Dom.DTD.ATTR_VAL_IS_URI.join( ' ' ),\r
ARY_PUSH = Array.prototype.push,\r
position : 'absolute'\r
}\r
);\r
- Node.root._startUpdate();\r
+ Node._body._startUpdate();\r
img = xnode._ie4getRawNode ? xnode._ie4getRawNode() : xnode._rawNode;\r
remove = true;\r
} else {\r
X.Dom.listenOnce( X.Dom.Event.DOM_PRE_INIT,\r
X.Dom.DOM_W3C ?\r
(function(){\r
- var r = Node.root,\r
+ var r = Node._body,\r
body = r._rawNode,\r
copy, i, l, node, html,\r
elmProgress;\r
}\r
)\r
.listenOnce( X.Event.SUCCESS, function( e ){\r
- var xnodes = Node.root._xnodes = [], t;\r
+ var xnodes = Node._body._xnodes = [], t;\r
xnodes.push.apply( xnodes, e.xnodes );\r
elmProgress.style.width = '100%';\r
\r
- X.Dom._asyncCreateTree( Node.root, body.childNodes, elmProgress );\r
+ X.Dom._asyncCreateTree( Node._body, body.childNodes, elmProgress );\r
} );\r
\r
}) :\r
X.Dom.DOM_IE4 ?\r
(function(){\r
- var r = Node.root,\r
+ var r = Node._body,\r
body = r._rawNode,\r
elmProgress = '_xdom_builder_progress',\r
html;\r
)\r
.listenOnce( X.Event.SUCCESS,\r
function( e ){\r
- var xnodes = Node.root._xnodes = [], t;\r
+ var xnodes = Node._body._xnodes = [], t;\r
xnodes.push.apply( xnodes, e.xnodes );\r
elmProgress.style.width = '100%';\r
\r
- X.Dom._asyncCreateTree( Node.root, body.childNodes || body.children, elmProgress );\r
+ X.Dom._asyncCreateTree( Node._body, body.childNodes || body.children, elmProgress );\r
}\r
);\r
}) :\r
-root = PageRoot(\r
- Box({\r
+root = X.UI.PageRoot(\r
+ X.UI.Box({\r
width : '10%',\r
height : '10%',\r
left : 5,\r
top : 1,\r
bgColor : 0x0000ff\r
}),\r
- Box({\r
+ X.UI.Box({\r
width : 5,\r
height : 5,\r
left : '10%',\r
bottom : '70%',\r
bgColor : 0xff0000\r
}),\r
- VBox(\r
+ X.UI.VBox(\r
{\r
width : '50%',\r
left : '49%',\r
padding : [ 4, 1 ],\r
sizing : 'border'\r
},\r
- Box({\r
+ X.UI.Box({\r
width : '50%',\r
height : 2,\r
left : '25%',\r
bgColor : 0x999999\r
}),\r
- Text( 'Hello, world!', { width : '100%' } ),\r
- Text( '----------------------------', { width : '100%' } ),\r
- text = Text( 'PettanR-team. rrrrrrrrrr', { width : '100%' } )\r
+ X.UI.Text( 'Hello, world!', { width : '100%' } ),\r
+ X.UI.Text( '----------------------------', { width : '100%' } ),\r
+ text = X.UI.Text( 'PettanR-team. rrrrrrrrrr', { width : '100%' } )\r
.listen( X.UI.Event.TAP, _onClick )\r
)\r
);\r
// setAttr に書き換え\r
X.UI.attrClassProto = proto;\r
for( p in opt_attrs ){\r
- _AbstractUINode.prototype.setAttr( p, opt_supports[ p ], opt_attrs[ p ] );\r
+ X.UI._AbstractUINode.prototype.setAttr( p, opt_supports[ p ], opt_attrs[ p ] );\r
};\r
X.UI.attrClassProto = null;\r
return klass;\r
\r
-\r
-X.UI.i = X.Dom.Event._LAST_EVENT;\r
-\r
X.UI.Event = {\r
\r
- INIT : ++X.UI.i,\r
- ADDED : ++X.UI.i,\r
- CREATION_COMPLETE : ++X.UI.i,\r
- REMOVED : ++X.UI.i,\r
+ INIT : ++X.Dom.Event._LAST_EVENT,\r
+ ADDED : ++X.Dom.Event._LAST_EVENT,\r
+ CREATION_COMPLETE : ++X.Dom.Event._LAST_EVENT,\r
+ REMOVED : ++X.Dom.Event._LAST_EVENT,\r
\r
// http://d.hatena.ne.jp/edvakf/20100205/1265338487\r
// http://d.hatena.ne.jp/uupaa/20100401/1270097629\r
- ENTER_VIEW : ++X.UI.i, // 要素が視界に入った\r
- OUT_VIEW : ++X.UI.i,\r
+ ENTER_VIEW : ++X.Dom.Event._LAST_EVENT, // 要素が視界に入った\r
+ OUT_VIEW : ++X.Dom.Event._LAST_EVENT,\r
\r
- POINTER_OUT : ++X.UI.i,\r
- POINTER_IN : ++X.UI.i,\r
+ POINTER_OUT : ++X.Dom.Event._LAST_EVENT,\r
+ POINTER_IN : ++X.Dom.Event._LAST_EVENT,\r
\r
// FOCUS\r
// DISABLED\r
// BASE_FONT_SIZE_CHANGE\r
\r
/* -- Pointing Device Event -- */\r
- _START_POINTER : X.UI.i + 0.5,\r
+ _START_POINTER : X.Dom.Event._LAST_EVENT + 0.5,\r
\r
- CONTEXT_MENU : ++X.UI.i, // rightclick or longtouch or menukey or ctrl + click\r
+ CONTEXT_MENU : ++X.Dom.Event._LAST_EVENT, // rightclick or longtouch or menukey or ctrl + click\r
\r
/* -- ここよりあとはノード上をバブルアップ -- */\r
- _START_BUBLEUP : X.UI.i + 0.5, \r
+ _START_BUBLEUP : X.Dom.Event._LAST_EVENT + 0.5, \r
\r
// raw pointing device event\r
- _POINTER_DOWN : ++X.UI.i,\r
- _POINTER_UP : ++X.UI.i,\r
- _POINTER_MOVE : ++X.UI.i,\r
- _POINTER_CANCEL : ++X.UI.i,\r
- _TOUCH_START : ++X.UI.i,\r
- _TOUCH_END : ++X.UI.i,\r
- _TOUCH_MOVE : ++X.UI.i,\r
- _TOUCH_CANCEL : ++X.UI.i,\r
- _MOUSE_DOWN : ++X.UI.i,\r
- _MOUSE_UP : ++X.UI.i,\r
- _MOUSE_MOVE : ++X.UI.i,\r
- _MOUSE_CANCEL : ++X.UI.i,\r
+ _POINTER_DOWN : ++X.Dom.Event._LAST_EVENT,\r
+ _POINTER_UP : ++X.Dom.Event._LAST_EVENT,\r
+ _POINTER_MOVE : ++X.Dom.Event._LAST_EVENT,\r
+ _POINTER_CANCEL : ++X.Dom.Event._LAST_EVENT,\r
+ _TOUCH_START : ++X.Dom.Event._LAST_EVENT,\r
+ _TOUCH_END : ++X.Dom.Event._LAST_EVENT,\r
+ _TOUCH_MOVE : ++X.Dom.Event._LAST_EVENT,\r
+ _TOUCH_CANCEL : ++X.Dom.Event._LAST_EVENT,\r
+ _MOUSE_DOWN : ++X.Dom.Event._LAST_EVENT,\r
+ _MOUSE_UP : ++X.Dom.Event._LAST_EVENT,\r
+ _MOUSE_MOVE : ++X.Dom.Event._LAST_EVENT,\r
+ _MOUSE_CANCEL : ++X.Dom.Event._LAST_EVENT,\r
\r
- FILE_DRAG : ++X.UI.i,\r
- FILE_DRAG_START : ++X.UI.i,\r
- FILE_DRAG_END : ++X.UI.i,\r
- FILE_HOLD : ++X.UI.i,\r
- FILE_HOLD_END : ++X.UI.i,\r
- FILE_DROP_BEFORE : ++X.UI.i,\r
- FILE_DROP : ++X.UI.i,\r
- FILE_DROP_CANCEL : ++X.UI.i,\r
+ FILE_DRAG : ++X.Dom.Event._LAST_EVENT,\r
+ FILE_DRAG_START : ++X.Dom.Event._LAST_EVENT,\r
+ FILE_DRAG_END : ++X.Dom.Event._LAST_EVENT,\r
+ FILE_HOLD : ++X.Dom.Event._LAST_EVENT,\r
+ FILE_HOLD_END : ++X.Dom.Event._LAST_EVENT,\r
+ FILE_DROP_BEFORE : ++X.Dom.Event._LAST_EVENT,\r
+ FILE_DROP : ++X.Dom.Event._LAST_EVENT,\r
+ FILE_DROP_CANCEL : ++X.Dom.Event._LAST_EVENT,\r
\r
/* -- ここより後は X.UI 用のイベント -- */\r
- _START_XUI_EVENT : X.UI.i + 0.5,\r
+ _START_XUI_EVENT : X.Dom.Event._LAST_EVENT + 0.5,\r
\r
/* -- Mouse & Floating touch(Xperia sola)?? -- */\r
- HOVER_MOVE : ++X.UI.i,\r
- HOVER_STAY : ++X.UI.i,\r
- HOVER_STAY_END : ++X.UI.i,\r
- WHEEL : ++X.UI.i,\r
+ HOVER_MOVE : ++X.Dom.Event._LAST_EVENT,\r
+ HOVER_STAY : ++X.Dom.Event._LAST_EVENT,\r
+ HOVER_STAY_END : ++X.Dom.Event._LAST_EVENT,\r
+ WHEEL : ++X.Dom.Event._LAST_EVENT,\r
\r
/* -- Gesuture Event -- */\r
- HOLD : ++X.UI.i,\r
- HOLD_END : ++X.UI.i,\r
- TAP : ++X.UI.i,\r
- DOUBLE_TAP : ++X.UI.i,\r
- DRAG : ++X.UI.i,\r
- DRAG_START : ++X.UI.i,\r
- DRAG_END : ++X.UI.i,\r
- DRAG_UP : ++X.UI.i,\r
- DRAG_RIGHT : ++X.UI.i,\r
- DRAG_LEFT : ++X.UI.i,\r
- DRAG_DOWN : ++X.UI.i,\r
- SWIP : ++X.UI.i,\r
- SWIP_UP : ++X.UI.i,\r
- SWIP_RIGHT : ++X.UI.i,\r
- SWIP_LEFT : ++X.UI.i, \r
- SWIP_DOWN : ++X.UI.i,\r
- TRANSFORM : ++X.UI.i,\r
- TRANSFORM_START : ++X.UI.i,\r
- TRANSFORM_END : ++X.UI.i,\r
- PINCH : ++X.UI.i,\r
- PINCH_IN : ++X.UI.i,\r
- PINCH_OUT : ++X.UI.i,\r
- ROTATE : ++X.UI.i,\r
+ HOLD : ++X.Dom.Event._LAST_EVENT,\r
+ HOLD_END : ++X.Dom.Event._LAST_EVENT,\r
+ TAP : ++X.Dom.Event._LAST_EVENT,\r
+ DOUBLE_TAP : ++X.Dom.Event._LAST_EVENT,\r
+ DRAG : ++X.Dom.Event._LAST_EVENT,\r
+ DRAG_START : ++X.Dom.Event._LAST_EVENT,\r
+ DRAG_END : ++X.Dom.Event._LAST_EVENT,\r
+ DRAG_UP : ++X.Dom.Event._LAST_EVENT,\r
+ DRAG_RIGHT : ++X.Dom.Event._LAST_EVENT,\r
+ DRAG_LEFT : ++X.Dom.Event._LAST_EVENT,\r
+ DRAG_DOWN : ++X.Dom.Event._LAST_EVENT,\r
+ SWIP : ++X.Dom.Event._LAST_EVENT,\r
+ SWIP_UP : ++X.Dom.Event._LAST_EVENT,\r
+ SWIP_RIGHT : ++X.Dom.Event._LAST_EVENT,\r
+ SWIP_LEFT : ++X.Dom.Event._LAST_EVENT, \r
+ SWIP_DOWN : ++X.Dom.Event._LAST_EVENT,\r
+ TRANSFORM : ++X.Dom.Event._LAST_EVENT,\r
+ TRANSFORM_START : ++X.Dom.Event._LAST_EVENT,\r
+ TRANSFORM_END : ++X.Dom.Event._LAST_EVENT,\r
+ PINCH : ++X.Dom.Event._LAST_EVENT,\r
+ PINCH_IN : ++X.Dom.Event._LAST_EVENT,\r
+ PINCH_OUT : ++X.Dom.Event._LAST_EVENT,\r
+ ROTATE : ++X.Dom.Event._LAST_EVENT,\r
\r
- _END_XUI_EVENT : X.UI.i + 0.5,\r
+ _END_XUI_EVENT : X.Dom.Event._LAST_EVENT + 0.5,\r
\r
- _END_POINTER : X.UI.i + 0.5,\r
+ _END_POINTER : X.Dom.Event._LAST_EVENT + 0.5,\r
/* -- Pointing Device Event -- */\r
\r
- KEY_DOWN : ++X.UI.i,\r
- KEY_UP : ++X.UI.i,\r
- KEY_HOLD : ++X.UI.i,\r
- KEY_CANCEL : ++X.UI.i,\r
+ KEY_DOWN : ++X.Dom.Event._LAST_EVENT,\r
+ KEY_UP : ++X.Dom.Event._LAST_EVENT,\r
+ KEY_HOLD : ++X.Dom.Event._LAST_EVENT,\r
+ KEY_CANCEL : ++X.Dom.Event._LAST_EVENT,\r
\r
- SCROLL_BEFORE_START : ++X.UI.i, // cancelable\r
- SCROLL_START : ++X.UI.i,\r
- SCROLL_BEFORE_MOVE : ++X.UI.i,\r
- SCROLL_MOVE : ++X.UI.i,\r
- SCROLL_END : ++X.UI.i,\r
- SCROLL_REFRESH : ++X.UI.i,\r
-\r
- ANIME_BEFORE_START : ++X.UI.i,\r
- ANIME_START : ++X.UI.i,\r
- ANIME : ++X.UI.i,\r
- ANIME_END : ++X.UI.i,\r
- ANIME_BEFORE_STOP : ++X.UI.i, // before cancel\r
- ANIME_STOP : ++X.UI.i,\r
-\r
- PAGE_BEFORE_SHOW : ++X.UI.i,\r
- PAGE_SHOW : ++X.UI.i,\r
- PAGE_AFTER_SHOW : ++X.UI.i,\r
- PAGE_BEFORE_HIDE : ++X.UI.i,\r
- PAGE_HIDE : ++X.UI.i,\r
- PAGE_AFTER_HIDE : ++X.UI.i,\r
+ SCROLL_BEFORE_START : ++X.Dom.Event._LAST_EVENT, // cancelable\r
+ SCROLL_START : ++X.Dom.Event._LAST_EVENT,\r
+ SCROLL_BEFORE_MOVE : ++X.Dom.Event._LAST_EVENT,\r
+ SCROLL_MOVE : ++X.Dom.Event._LAST_EVENT,\r
+ SCROLL_END : ++X.Dom.Event._LAST_EVENT,\r
+ SCROLL_REFRESH : ++X.Dom.Event._LAST_EVENT,\r
+\r
+ ANIME_BEFORE_START : ++X.Dom.Event._LAST_EVENT,\r
+ ANIME_START : ++X.Dom.Event._LAST_EVENT,\r
+ ANIME : ++X.Dom.Event._LAST_EVENT,\r
+ ANIME_END : ++X.Dom.Event._LAST_EVENT,\r
+ ANIME_BEFORE_STOP : ++X.Dom.Event._LAST_EVENT, // before cancel\r
+ ANIME_STOP : ++X.Dom.Event._LAST_EVENT,\r
+\r
+ PAGE_BEFORE_SHOW : ++X.Dom.Event._LAST_EVENT,\r
+ PAGE_SHOW : ++X.Dom.Event._LAST_EVENT,\r
+ PAGE_AFTER_SHOW : ++X.Dom.Event._LAST_EVENT,\r
+ PAGE_BEFORE_HIDE : ++X.Dom.Event._LAST_EVENT,\r
+ PAGE_HIDE : ++X.Dom.Event._LAST_EVENT,\r
+ PAGE_AFTER_HIDE : ++X.Dom.Event._LAST_EVENT,\r
\r
// X.UI.Form\r
- CHANGE : ++X.UI.i,\r
- SUBMIT : ++X.UI.i,\r
- SELECT : ++X.UI.i, // click or tap or enterkey\r
+ CHANGE : ++X.Dom.Event._LAST_EVENT,\r
+ SUBMIT : ++X.Dom.Event._LAST_EVENT,\r
+ SELECT : ++X.Dom.Event._LAST_EVENT, // click or tap or enterkey\r
\r
IdToName : {},\r
NameToID : {}\r
};\r
\r
-delete X.UI.i;\r
-\r
// raw pointing device event\r
-if( navigator.msPointerEnabled || navigator.pointerEnabled ){\r
- X.UI.Event.IdToName[ X.UI.Event._POINTER_DOWN ] = navigator.msPointerEnabled ? 'MSPointerDown' : 'pointerdown';\r
- X.UI.Event.IdToName[ X.UI.Event._POINTER_UP ] = navigator.msPointerEnabled ? 'MSPointerUp' : 'pointerup';\r
- X.UI.Event.IdToName[ X.UI.Event._POINTER_MOVE ] = navigator.msPointerEnabled ? 'MSPointerMove' : 'pointermove';\r
- X.UI.Event.IdToName[ X.UI.Event._POINTER_CANCEL ] = navigator.msPointerEnabled ? 'MSPointerCancel' : 'pointercancel';\r
-};// else\r
-//if( window.ontouchstart !== void 0 /* || window.DocumentTouch && document instanceof DocumentTouch */ ){\r
- X.UI.Event.IdToName[ X.UI.Event._TOUCH_START ] = 'touchstart';\r
- X.UI.Event.IdToName[ X.UI.Event._TOUCH_END ] = 'touchend';\r
- X.UI.Event.IdToName[ X.UI.Event._TOUCH_MOVE ] = 'touchmove';\r
- X.UI.Event.IdToName[ X.UI.Event._TOUCH_CANCEL ] = 'touchcancel';\r
-//} else {\r
- // ToDo: cancel \r
+if( X.Dom.EVENT_POINTER ){\r
+ X.UI.Event.IdToName[ X.UI.Event._POINTER_DOWN ] = 'pointerdown';\r
+ X.UI.Event.IdToName[ X.UI.Event._POINTER_UP ] = 'pointerup';\r
+ X.UI.Event.IdToName[ X.UI.Event._POINTER_MOVE ] = 'pointermove';\r
+ X.UI.Event.IdToName[ X.UI.Event._POINTER_CANCEL ] = 'pointercancel';\r
+} else {\r
+ \r
+ if( X.Dom.EVENT_TOUCH ){\r
+ X.UI.Event.IdToName[ X.UI.Event._TOUCH_START ] = 'touchstart';\r
+ X.UI.Event.IdToName[ X.UI.Event._TOUCH_END ] = 'touchend';\r
+ X.UI.Event.IdToName[ X.UI.Event._TOUCH_MOVE ] = 'touchmove';\r
+ X.UI.Event.IdToName[ X.UI.Event._TOUCH_CANCEL ] = 'touchcancel';\r
+ };\r
+\r
X.UI.Event.IdToName[ X.UI.Event._MOUSE_DOWN ] = 'mousedown';\r
X.UI.Event.IdToName[ X.UI.Event._MOUSE_UP ] = 'mouseup';\r
X.UI.Event.IdToName[ X.UI.Event._MOUSE_MOVE ] = 'mousemove';\r
X.UI.Event.IdToName[ X.UI.Event._MOUSE_CANCEL ] = 'mouseleave'; // ??\r
-//};\r
+};\r
+\r
\r
-( function( IdToName, NameToID ){\r
- for( var id in IdToName ){\r
- NameToID[ IdToName[ id ] ] = id;\r
+( function( IdToName, NameToID, p ){\r
+ for( p in IdToName ){\r
+ NameToID[ IdToName[ p ] ] = p;\r
};\r
})( X.UI.Event.IdToName, X.UI.Event.NameToID );\r
\r
Detection.register( Gestures[ name ] );\r
};\r
\r
- if( navigator.pointerEnabled || navigator.msPointerEnabled ){\r
+ if( X.Dom.EVENT_POINTER ){\r
Hammer.EVENT_TYPES_START = [ X.UI.Event._POINTER_DOWN ];\r
types = [ X.UI.Event._POINTER_MOVE, X.UI.Event._POINTER_UP, X.UI.Event._POINTER_CANCEL ];\r
} else\r
- if( window.ontouchstart !== void 0 ){\r
+ if( X.Dom.EVENT_TOUCH ){\r
Hammer.EVENT_TYPES_START = [ X.UI.Event._TOUCH_START ];\r
types = [ X.UI.Event._TOUCH_MOVE, X.UI.Event._MOUSE_MOVE, X.UI.Event._TOUCH_END, X.UI.Event._TOUCH_CANCEL ];\r
} else {\r
-var _AbstractUINode = X.EventDispatcher.inherits(\r
- '_AbstractUINode',\r
+X.UI._AbstractUINode = X.EventDispatcher.inherits(\r
+ 'X.UI._AbstractUINode',\r
X.Class.ABSTRACT | X.Class.PRIVATE_DATA,\r
{\r
phase : 0,\r
this.xnode\r
.css( 'left', x ? x + 'em' : 0 )\r
.css( 'top', y ? y + 'em' : 0 )\r
- .css( 'width', this.contentWidth ? _AbstractUINode.ceil( this.contentWidth ) + 'em' : 0 )\r
- .css( 'height', this.contentHeight ? _AbstractUINode.ceil( this.contentHeight ) + 'em' : 0 )\r
+ .css( 'width', this.contentWidth ? X.UI._AbstractUINode.ceil( this.contentWidth ) + 'em' : 0 )\r
+ .css( 'height', this.contentHeight ? X.UI._AbstractUINode.ceil( this.contentHeight ) + 'em' : 0 )\r
.css( 'padding', this._createCssText( 'padding' ) )\r
.css( 'borderWidth', this._createCssText( 'borderWidth' ) );\r
},\r
*/\r
preMesure : function( allowedW, allowedH ){\r
var attrs = this.attrObject || this.attrClass.prototype || X.UI.AttrClass,\r
- calc = _AbstractUINode.calcValue,\r
+ calc = X.UI._AbstractUINode.calcValue,\r
box = attrs[ X.UI.Attr.Support.sizing.No ],\r
min, max,\r
boxL, boxT, boxR, boxB,\r
if( this.constraintW ){ // 制約レイアウト\r
contentW = allowedW - ( boxL = calc( attrs[ X.UI.Attr.Support.left.No ], allowedW ) ) - ( boxR = calc( attrs[ X.UI.Attr.Support.right.No ], allowedW ) );\r
} else {\r
- contentW = _AbstractUINode.finalValue( attrs[ X.UI.Attr.Support.width.No ], attrs[ X.UI.Attr.Support.minWidth.No ], attrs[ X.UI.Attr.Support.maxWidth.No ], allowedW ); \r
+ contentW = X.UI._AbstractUINode.finalValue( attrs[ X.UI.Attr.Support.width.No ], attrs[ X.UI.Attr.Support.minWidth.No ], attrs[ X.UI.Attr.Support.maxWidth.No ], allowedW ); \r
};\r
this.contentWidth = contentW + boxMinus;\r
this.scrollWidth = this.contentWidth + this.contentL + this.contentR;\r
if( this.constraintH ){ // 制約レイアウト\r
contentH = allowedH - ( boxT = calc( attrs[ X.UI.Attr.Support.top.No ], allowedH ) ) - ( boxB = calc( attrs[ X.UI.Attr.Support.bottom.No ], allowedH ) );\r
} else {\r
- contentH = _AbstractUINode.finalValue( attrs[ X.UI.Attr.Support.height.No ], attrs[ X.UI.Attr.Support.minHeight.No ], attrs[ X.UI.Attr.Support.maxHeight.No ], allowedH );\r
+ contentH = X.UI._AbstractUINode.finalValue( attrs[ X.UI.Attr.Support.height.No ], attrs[ X.UI.Attr.Support.minHeight.No ], attrs[ X.UI.Attr.Support.maxHeight.No ], allowedH );\r
}; \r
this.contentHeight = contentH + boxMinus;\r
this.scrollHeight = this.contentHeight + this.contentT + this.contentB;\r
if( w - this.boxSizingOffsetLR < this.minContentWidth ) this.contentWidth = this.minContentWidth + this.boxSizingOffsetLR;\r
this.lastContentWidth = this.contentWidth;\r
\r
- w !== this.contentWidth && xnode.css( 'width', _AbstractUINode.ceil( this.contentWidth ) + 'em' );\r
+ w !== this.contentWidth && xnode.css( 'width', X.UI._AbstractUINode.ceil( this.contentWidth ) + 'em' );\r
\r
if( h === X.UI.Attr.AUTO ){\r
this.contentHeight = h = xnode.css( 'height', 'auto' ).scrollHeight() / xnode._getCharSize(); // scrollHeight() ??\r
} else\r
if( h === X.UI.Attr.AUTO ){\r
if( w !== this.lastContentWidth ){\r
- xnode.css( 'width', _AbstractUINode.ceil( w ) + 'em' );\r
+ xnode.css( 'width', X.UI._AbstractUINode.ceil( w ) + 'em' );\r
\r
this.lastContentWidth = w;\r
this.contentHeight = h = xnode.css( 'height', 'auto' ).scrollHeight() / xnode._getCharSize();\r
*/\r
postMesure : function(){\r
var attrs = this.attrObject || this.attrClass.prototype || X.UI.AttrClass,\r
- calc = _AbstractUINode.calcValue,\r
+ calc = X.UI._AbstractUINode.calcValue,\r
box = attrs[ X.UI.Attr.Support.sizing.No ],\r
contentW, contentH,\r
contentPlus,\r
++counter[ type ];\r
} else {\r
counter[ type ] = 1; \r
- root.xnodeInteractiveLayer.listen( X.UI.Event.IdToName[ type ], eventRellay );\r
+ root.xnodeInteractiveLayer.listen( X.UI.Event.IdToName[ type ], X.UI._eventRellay );\r
};\r
};\r
};\r
if( !counter[ type ] ) return this;\r
--counter[ type ];\r
if( counter[ type ] === 0 ){\r
- root.xnodeInteractiveLayer.unlisten( X.UI.Event.IdToName[ type ], eventRellay );\r
+ root.xnodeInteractiveLayer.unlisten( X.UI.Event.IdToName[ type ], X.UI._eventRellay );\r
delete counter[ type ];\r
};\r
};\r
}\r
);\r
\r
-_AbstractUINode.calcValue = function( styleValue, srcValue ){\r
+X.UI._AbstractUINode.calcValue = function( styleValue, srcValue ){\r
/*\r
* String の場合は必ず %\r
*/ \r
return styleValue;\r
};\r
\r
-_AbstractUINode.finalValue = function( styleValue, styleMin, styleMax, srcValue ){\r
- var calc = _AbstractUINode.calcValue,\r
+X.UI._AbstractUINode.finalValue = function( styleValue, styleMin, styleMax, srcValue ){\r
+ var calc = X.UI._AbstractUINode.calcValue,\r
v = calc( styleValue, srcValue ),\r
min = calc( styleMin, srcValue ),\r
max = calc( styleMax, srcValue );\r
return v <= min ? min : max <= v ? max : v;\r
};\r
-_AbstractUINode.ceil = function( v ){\r
+X.UI._AbstractUINode.ceil = function( v ){\r
if( 0 <= v ){\r
return ( v * 10 + 0.999 | 0 ) / 10;\r
};\r
return ( -v * 10 + 0.999 | 0 ) / -10;\r
};\r
\r
-var AbstractUINode = X.Class.create(\r
+X.UI.AbstractUINode = X.Class.create(\r
'AbstractUINode',\r
X.Class.ABSTRACT | X.Class.SUPER_ACCESS,\r
{\r
});\r
\r
\r
-var _Box = _AbstractUINode.inherits(\r
- '_Box',\r
+X.UI._Box = X.UI._AbstractUINode.inherits(\r
+ 'X.UI._Box',\r
X.Class.PRIVATE_DATA | X.Class.SUPER_ACCESS, // 現状 super 指定がないとconstructor未定擬時に親のconstructor が使われない\r
{\r
layout : null,\r
j = -1,\r
uinodes, arg, _data, attrs, support;\r
\r
- if( !this.User.instanceOf( Box ) ){\r
+ if( !this.User.instanceOf( X.UI.Box ) ){\r
//throw new Error( 'Box を継承したインスタンスだけが _Box のオーナーになれます' );\r
}; \r
\r
\r
for( ; i < l; ++i ){\r
arg = args[ i ];\r
- if( arg.instanceOf && arg.instanceOf( AbstractUINode ) ){\r
+ if( arg.instanceOf && arg.instanceOf( X.UI.AbstractUINode ) ){\r
_data = X.Class._getPrivate( arg );\r
if( !uinodes ) this.uinodes = uinodes = [];\r
uinodes[ ++j ] = _data;\r
}; \r
};\r
\r
- _AbstractUINode.prototype.creationComplete.apply( this, arguments );\r
+ X.UI._AbstractUINode.prototype.creationComplete.apply( this, arguments );\r
},\r
\r
calculate : function( isNeedsDetection, x, y, w, h ){\r
}\r
);\r
\r
-var Box = AbstractUINode.inherits(\r
+X.UI.Box = X.UI.AbstractUINode.inherits(\r
'Box',\r
X.Class.SUPER_ACCESS,\r
- _Box,\r
+ X.UI._Box,\r
{\r
Constructor : function(){\r
X.Class._newPrivate( this, X.UI.Layout.Canvas, arguments );\r
* layout が設定されている Box のサブクラスに対して、layout を指定できない.\r
* \r
*/\r
-Box.presets = function(){\r
+X.UI.Box.presets = function(){\r
var args = arguments,\r
i = 0,\r
l = args.length, \r
); \r
};\r
\r
- klass.presets = this.presets || Box.presets;\r
+ klass.presets = this.presets || X.UI.Box.presets;\r
\r
return klass;\r
};\r
autoW = contentW === X.UI.Attr.AUTO;\r
autoH = contentH === X.UI.Attr.AUTO;\r
detectionPhase = autoW || autoH;\r
- gapY = _AbstractUINode.calcValue( attrs[ data.supportAttrs.gapY.No ], contentH );\r
- childW = _AbstractUINode.calcValue( attrs[ data.supportAttrs.childWidth.No ], contentW );\r
- childH = _AbstractUINode.calcValue( attrs[ data.supportAttrs.childHeight.No ], contentH );\r
+ gapY = X.UI._AbstractUINode.calcValue( attrs[ data.supportAttrs.gapY.No ], contentH );\r
+ childW = X.UI._AbstractUINode.calcValue( attrs[ data.supportAttrs.childWidth.No ], contentW );\r
+ childH = X.UI._AbstractUINode.calcValue( attrs[ data.supportAttrs.childHeight.No ], contentH );\r
_x = data.contentL;\r
_y = data.contentT;\r
\r
}\r
});\r
\r
-var VBox = Box.presets(\r
+X.UI.VBox = X.UI.Box.presets(\r
X.UI.Layout.Vertical,\r
'VBox',\r
{\r
detectionPhase = autoW || autoH;\r
_x = data.contentL;\r
_y = data.contentT;\r
- childW = _AbstractUINode.calcValue( attrs[ data.supportAttrs.childWidth.No ], contentW );\r
- childH = _AbstractUINode.calcValue( attrs[ data.supportAttrs.childHeight.No ], contentH );\r
- gapX = _AbstractUINode.calcValue( attrs[ data.supportAttrs.gapX.No ], contentW );\r
+ childW = X.UI._AbstractUINode.calcValue( attrs[ data.supportAttrs.childWidth.No ], contentW );\r
+ childH = X.UI._AbstractUINode.calcValue( attrs[ data.supportAttrs.childHeight.No ], contentH );\r
+ gapX = X.UI._AbstractUINode.calcValue( attrs[ data.supportAttrs.gapX.No ], contentW );\r
\r
if( l ){\r
_h = 0;\r
}\r
});\r
\r
-var HBox = Box.presets(\r
+X.UI.HBox = X.UI.Box.presets(\r
X.UI.Layout.Horizontal,\r
'HBox',\r
{\r
_x = data.contentL;\r
_y = data.contentT;\r
_w = data.contentWidth;\r
- gapX = _AbstractUINode.calcValue( attrs[ data.supportAttrs.gapX.No ], contentW );\r
- gapY = _AbstractUINode.calcValue( attrs[ data.supportAttrs.gapY.No ], contentH );\r
- childW = _AbstractUINode.calcValue( attrs[ data.supportAttrs.childWidth.No ], contentW );\r
- childH = _AbstractUINode.calcValue( attrs[ data.supportAttrs.childHeight.No ], contentH );\r
+ gapX = X.UI._AbstractUINode.calcValue( attrs[ data.supportAttrs.gapX.No ], contentW );\r
+ gapY = X.UI._AbstractUINode.calcValue( attrs[ data.supportAttrs.gapY.No ], contentH );\r
+ childW = X.UI._AbstractUINode.calcValue( attrs[ data.supportAttrs.childWidth.No ], contentW );\r
+ childH = X.UI._AbstractUINode.calcValue( attrs[ data.supportAttrs.childHeight.No ], contentH );\r
numH = X.UI.Attr.FLOOR( ( _w + gapX ) / ( childW + gapX ) );\r
numV = l % numH ? X.UI.Attr.FLOOR( l / numH ) + 1 : l / numH;\r
_h = _y + data.contentB + ( childH + gapY ) * numH - gapY;\r
}\r
});\r
\r
-var TileBox = Box.presets(\r
+X.UI.TileBox = X.UI.Box.presets(\r
'TileBox',\r
X.UI.Layout.Tile,\r
{\r
-var _ChromeBox = _Box.inherits(\r
+X.UI._ChromeBox = X.UI._Box.inherits(\r
'_ChromeBox',\r
X.Class.PRIVATE_DATA | X.Class.SUPER_ACCESS,\r
{\r
}\r
);\r
\r
-var ChromeBox = Box.inherits(\r
+X.UI.ChromeBox = X.UI.Box.inherits(\r
'ChromeBox',\r
X.Class.SUPER_ACCESS,\r
- _ChromeBox,\r
+ X.UI._ChromeBox,\r
{\r
Constructor : function(){\r
X.Class._newPrivate( this, X.UI.Layout.Canvas, arguments );\r
-var _ScrollBox;\r
\r
(function(){\r
\r
\r
\r
\r
-_ScrollBox = _ChromeBox.inherits(\r
+X.UI._ScrollBox = X.UI._ChromeBox.inherits(\r
'_ScrollBox',\r
X.Class.PRIVATE_DATA | X.Class.SUPER_ACCESS,\r
{\r
},\r
\r
creationComplete : function(){\r
- _AbstractUINode.prototype.creationComplete.call( this, arguments );\r
+ X.UI._AbstractUINode.prototype.creationComplete.call( this, arguments );\r
this.scrollManager = new iScroll( this.root, this.User, this.rawElement, this._containerNode.rawElement );\r
this._check();\r
},\r
\r
calculate : function(){\r
- _AbstractUINode.prototype.calculate.call( this, arguments );\r
+ X.UI._AbstractUINode.prototype.calculate.call( this, arguments );\r
this._check();\r
},\r
\r
},\r
\r
_remove : function(){\r
- _AbstractUINode.prototype._remove.call( this, arguments );\r
+ X.UI._AbstractUINode.prototype._remove.call( this, arguments );\r
if( this.scrolling ){\r
// remove scroll\r
};\r
\r
})();\r
\r
-var ScrollBox = ChromeBox.inherits(\r
+X.UI.ScrollBox = X.UI.ChromeBox.inherits(\r
'ScrollBox',\r
X.Class.SUPER_ACCESS,\r
- _ScrollBox,\r
+ X.UI._ScrollBox,\r
{\r
Constructor : function(){\r
var args = [],\r
-var _Text = _AbstractUINode.inherits(\r
+X.UI._Text = X.UI._AbstractUINode.inherits(\r
'_Text',\r
X.Class.PRIVATE_DATA,\r
{\r
}\r
);\r
\r
-var Text = AbstractUINode.inherits(\r
+X.UI.Text = X.UI.AbstractUINode.inherits(\r
'Text',\r
X.Class.SUPER_ACCESS,\r
- _Text,\r
+ X.UI._Text,\r
{\r
Constructor : function( opt_content, opt_cssObj ){\r
X.Class._newPrivate( this, opt_content );\r
-function eventRellay( e ){
+X.UI._eventRellay = function( e ){
var x = e.clientX / X.Dom.baseFontSize,
y = e.clientY / X.Dom.baseFontSize,
type = X.UI.Event.NameToID[ e.type ],
ret = X.Callback.NONE,
list, parent, _ret;
- if( !data ) return ret;
-
// mouseup で alert を出すと mouseleave が発生、ということでイベント中のイベント発火を禁止
- // gesture にも手当てが必要
- if( data._eventBudy ) return X.Callback.STOP_PROPAGATION | _ret & X.Callback.PREVENT_DEFAULT;
- data._eventBudy = true;
+ if( !data || data._eventBusy ) return ret;
+ data._eventBusy = true;
if( type !== '' + X.UI.Event._POINTER_MOVE && type !== '' + X.UI.Event._TOUCH_MOVE && type !== '' + X.UI.Event._MOUSE_MOVE ){
- console.log( e.type + ' ' + type + ' x:' + x + ', y:' + y );
+ // console.log( e.type + ' ' + type + ' x:' + x + ', y:' + y );
};
e.type = type;
if( data && ( data = data.monopolyNodeData ) && ( ret = data.dispatch( e ) ) & X.Callback.MONOPOLY ){
- delete X.UI.currentRootData._eventBudy;
+ delete X.UI.currentRootData._eventBusy;
return ret;
};
data.hovering = true;
};
};
- delete X.UI.currentRootData._eventBudy;
+ delete X.UI.currentRootData._eventBusy;
return ret;
};
* 背景画像を読み終える onload で活動開始
*/
-var _PageRoot = _Box.inherits(
+X.UI._PageRoot = X.UI._Box.inherits(
'_PageRoot',
X.Class.FINAL | X.Class.PRIVATE_DATA | X.Class.SUPER_ACCESS,
{
eventCounter : null,
cursorStyle : null,
- _eventBudy : false,
+ _eventBusy : false,
Constructor : function( layout, args ){
this.SuperConstructor( layout, args );
// this.xnodeInteractiveLayer の前に追加する!
- this.addToParent( X.Dom.Node.root );
+ this.addToParent( X.Dom.Node._body );
- this.xnodeInteractiveLayer = X.Dom.Node.root.create( 'div', {
+ this.xnodeInteractiveLayer = X.Dom.Node._body.create( 'div', {
'class' : 'mouse-operation-catcher',
unselectable : 'on'
} );
// hover や rollover rollout のための move イベントの追加
// X.Dom.Event.activate, X.Dom.Event.deactivate ?
// mouseout, mouseover
- if( navigator.msPointerEnabled || navigator.pointerEnabled ){
- this.xnodeInteractiveLayer.listen( X.UI.Event.IdToName[ X.UI.Event._POINTER_MOVE ], eventRellay );
+ if( X.Dom.EVENT_POINTER ){
+ this.xnodeInteractiveLayer.listen( X.UI.Event.IdToName[ X.UI.Event._POINTER_MOVE ], X.UI._eventRellay );
if( counter[ X.UI.Event._POINTER_MOVE ] ){
++counter[ X.UI.Event._POINTER_MOVE ];
} else {
counter[ X.UI.Event._POINTER_MOVE ] = 1;
};
} else {
- this.xnodeInteractiveLayer.listen( X.UI.Event.IdToName[ X.UI.Event._MOUSE_MOVE ], eventRellay );
+ this.xnodeInteractiveLayer.listen( X.UI.Event.IdToName[ X.UI.Event._MOUSE_MOVE ], X.UI._eventRellay );
if( counter[ X.UI.Event._MOUSE_MOVE ] ){
++counter[ X.UI.Event._MOUSE_MOVE ];
} else {
}
);
-var PageRoot = Box.presets(
+X.UI.PageRoot = X.UI.Box.presets(
'PageRoot',
- _PageRoot, {
+ X.UI._PageRoot,
+ {
width : '100%',
height : '100%'
}