OSDN Git Service

Version 0.6.67, rename folders.
authoritozyun <itozyun@user.sourceforge.jp>
Mon, 25 Aug 2014 12:19:16 +0000 (21:19 +0900)
committeritozyun <itozyun@user.sourceforge.jp>
Mon, 25 Aug 2014 12:19:16 +0000 (21:19 +0900)
34 files changed:
0.6.x/js/00_core/00_X.js [moved from 0.6.x/js/core/00_X.js with 100% similarity]
0.6.x/js/00_core/00_builtin.js [moved from 0.6.x/js/core/00_builtin.js with 89% similarity]
0.6.x/js/00_core/01_XUa.js [moved from 0.6.x/js/core/01_XUa.js with 82% similarity]
0.6.x/js/00_core/02_XType.js [moved from 0.6.x/js/core/02_XType.js with 60% similarity]
0.6.x/js/00_core/03_XCallback.js [moved from 0.6.x/js/core/03_XCallback.js with 100% similarity]
0.6.x/js/00_core/04_XClass.js [moved from 0.6.x/js/core/04_XClass.js with 94% similarity]
0.6.x/js/00_core/05_XTimer.js [moved from 0.6.x/js/core/05_XTimer.js with 95% similarity]
0.6.x/js/00_core/06_XEventDispatcher.js [moved from 0.6.x/js/core/06_XEventDispatcher.js with 90% similarity]
0.6.x/js/00_core/07_XNotification.js [moved from 0.6.x/js/core/07_XNotification.js with 100% similarity]
0.6.x/js/01_dom/10_XDom.js [moved from 0.6.x/js/dom/10_XDom.js with 96% similarity]
0.6.x/js/01_dom/11_XDomDTD.js [moved from 0.6.x/js/dom/11_XDomDTD.js with 100% similarity]
0.6.x/js/01_dom/11_XDomNode.js [moved from 0.6.x/js/dom/11_XDomNode.js with 96% similarity]
0.6.x/js/01_dom/12_XDomEvent.js [moved from 0.6.x/js/dom/12_XDomEvent.js with 88% similarity]
0.6.x/js/01_dom/13_XDomBoxModel.js [moved from 0.6.x/js/dom/13_XDomBoxModel.js with 100% similarity]
0.6.x/js/01_dom/14_XDomAttr.js [moved from 0.6.x/js/dom/14_XDomAttr.js with 100% similarity]
0.6.x/js/01_dom/15_XDomStyle.js [moved from 0.6.x/js/dom/15_XDomStyle.js with 99% similarity]
0.6.x/js/01_dom/17_XDomNodeList.js [moved from 0.6.x/js/dom/17_XDomNodeList.js with 100% similarity]
0.6.x/js/01_dom/18_XDomQuery.js [moved from 0.6.x/js/dom/18_XDomQuery.js with 100% similarity]
0.6.x/js/01_dom/19_XDomParser.js [moved from 0.6.x/js/dom/19_XDomParser.js with 100% similarity]
0.6.x/js/01_dom/20_XDomImage.js [moved from 0.6.x/js/dom/20_XDomImage.js with 79% similarity]
0.6.x/js/01_dom/22_XDomBuilder.js [moved from 0.6.x/js/dom/22_XDomBuilder.js with 100% similarity]
0.6.x/js/10_ui/00_XUI.js [moved from 0.6.x/js/ui/00_XUI.js with 100% similarity]
0.6.x/js/10_ui/02_XUI_Attr.js [moved from 0.6.x/js/ui/02_XUI_Attr.js with 86% similarity]
0.6.x/js/10_ui/04_XUI_Event.js [moved from 0.6.x/js/ui/04_XUI_Event.js with 100% similarity]
0.6.x/js/10_ui/05_XUI_Gesture.js [moved from 0.6.x/js/ui/05_XUI_Gesture.js with 96% similarity]
0.6.x/js/10_ui/06_AbstractUINode.js [moved from 0.6.x/js/ui/06_AbstractUINode.js with 97% similarity]
0.6.x/js/10_ui/08_Box.js [moved from 0.6.x/js/ui/08_Box.js with 95% similarity]
0.6.x/js/10_ui/11_VBox.js [moved from 0.6.x/js/ui/11_VBox.js with 100% similarity]
0.6.x/js/10_ui/12_HBox.js [moved from 0.6.x/js/ui/12_HBox.js with 100% similarity]
0.6.x/js/10_ui/13_TileBox.js [moved from 0.6.x/js/ui/13_TileBox.js with 100% similarity]
0.6.x/js/10_ui/14_ChromeBox.js [moved from 0.6.x/js/ui/14_ChromeBox.js with 96% similarity]
0.6.x/js/10_ui/15_ScrollBox.js [moved from 0.6.x/js/ui/15_ScrollBox.js with 96% similarity]
0.6.x/js/10_ui/17_Text.js [moved from 0.6.x/js/ui/17_Text.js with 100% similarity]
0.6.x/js/10_ui/20_PageRoot.js [moved from 0.6.x/js/ui/20_PageRoot.js with 100% similarity]

similarity index 89%
rename from 0.6.x/js/core/00_builtin.js
rename to 0.6.x/js/00_core/00_builtin.js
index b9adfeb..2dcc943 100644 (file)
@@ -260,24 +260,34 @@ Object.prototype.hasOwnProperty || (Object.prototype.hasOwnProperty = function(
 Object.prototype.hasOwnProperty || (Object.prototype.hasOwnProperty = function( p ){\r
                var proto = this.constructor && this.constructor.prototype,\r
                        __p__ = proto && proto.__proto__,\r
-                       v     = this[ p ],\r
-                       isNaN = v !== v;\r
-                       r     = false;\r
+                       r     = false,//!!( __p__ && ( proto.__proto__ = null ) )\r
+                       _pro_, v, isNaN;\r
                \r
                if( __p__ ) proto.__proto__ = null;\r
-               \r
-               if( p in this ){\r
-                       if( proto && p in proto && ( proto[ p ] === v ) ^ isNaN ){ //true + false, false + true\r
-                               // this と proto に同名で同値が書かれている可能性あり\r
-                               proto[ p ] = v + ' '; // different value\r
-                               r = ( v === this[ p ] ) ^ isNaN; // true + false, false + true\r
-                               proto[ p ] = v;\r
-                       } else {\r
-                               r = true;\r
-                       };\r
+               if( this.__proto__ ){\r
+                       _pro_ = this.__proto__;\r
+                       this.__proto__ = null;\r
                };\r
                \r
+               if( p === '__proto__' ){\r
+                       r = !!_pro_;\r
+               } else {\r
+                       v     = this[ p ];\r
+                       isNaN = v !== v;                \r
+                       \r
+                       if( p in this ){\r
+                               if( proto && p in proto && ( proto[ p ] === v ) ^ isNaN ){ //true + false, false + true\r
+                                       // this と proto に同名で同値が書かれている可能性あり\r
+                                       proto[ p ] = v + ' '; // different value\r
+                                       r = ( v === this[ p ] ) ^ isNaN; // true + false, false + true\r
+                                       proto[ p ] = v;\r
+                               } else {\r
+                                       r = true;\r
+                               };\r
+                       };                      \r
+               };\r
+\r
                if( __p__ ) proto.__proto__ = __p__;\r
-               \r
+               if( _p_ ) this.__proto__ = _pro_;\r
                return r;\r
   }); */
\ No newline at end of file
similarity index 82%
rename from 0.6.x/js/core/01_XUa.js
rename to 0.6.x/js/00_core/01_XUa.js
index 268c041..04bf643 100644 (file)
@@ -125,52 +125,63 @@ X.UA = (function( n, undefined ){
        };\r
        \r
        // TODO Blink\r
-       \r
-       acme.Khtml  = ( 0 <= dav.indexOf('Konqueror') ) ? tv : undefined;\r
-       \r
-       \r
-       acme.WebKit = i = parseFloat(dua.split('WebKit\/')[1]) || undefined;\r
-       acme.Chrome = parseFloat(dua.split('Chrome\/')[1]) || undefined;\r
-       \r
-       // TODO webkit Opera\r
-\r
-       console.log( '>>Webkit : ' + acme.WebKit );\r
-\r
-       if( i && !acme.Chrome && dua.indexOf( 'Safari' ) !== -1 ){\r
-               if( dav.indexOf( 'Version/' ) !== -1 ){\r
-                       acme.Safari = parseFloat( dav.split('Version/')[1] );\r
-               } else {\r
-                       if( i < 73 ){\r
-                               acme.Safari = 0.8;\r
-                       } else\r
-                       if( i < 85 ){\r
-                               acme.Safari = 0.9;\r
-                       } else\r
-                       if( i < 100 ){\r
-                               acme.Safari = 1;\r
-                       } else\r
-                       if( i < 125 ){\r
-                               acme.Safari = 1.1;\r
-                       } else\r
-                       if( i < 312 ){\r
-                               acme.Safari = 1.2;\r
-                       } else\r
-                       if( i < 412 ){\r
-                               acme.Safari = 1.3;\r
-                       } else\r
-                       if( i <= 419.3 ){\r
-                               acme.Safari = 2;\r
-                       } else\r
-                       if( i <= 525.13 ){\r
-                               acme.Safari = 3;\r
-                       } else\r
-                       if( i <= 525.25 ){\r
-                               acme.Safari = 3.1;\r
-                       } else\r
-                       if( i <= 528.16 ){\r
-                               acme.Safari = 3.2;\r
+       if( window.chrome ){\r
+               acme.Blink = tv;\r
+               console.log( '>>Blink : ' + acme.Blink );\r
+               \r
+       } else\r
+       if( dav.indexOf( 'Konqueror' ) !== -1 ){\r
+               acme.Khtml = tv;\r
+               console.log( '>>Khtml : ' + acme.Khtml );\r
+               \r
+       } else\r
+       if( i = parseFloat(dua.split('WebKit\/')[1]) ){\r
+               acme.WebKit = i;\r
+               \r
+               acme.Chrome = parseFloat(dua.split('Chrome\/')[1]) || undefined;\r
+               \r
+               // TODO webkit Opera\r
+       \r
+               console.log( '>>Webkit : ' + acme.WebKit );\r
+       \r
+               if( i && !acme.Chrome && dua.indexOf( 'Safari' ) !== -1 ){\r
+                       if( dav.indexOf( 'Version/' ) !== -1 ){\r
+                               acme.Safari = parseFloat( dav.split('Version/')[1] );\r
+                       } else {\r
+                               if( i < 73 ){\r
+                                       acme.Safari = 0.8;\r
+                               } else\r
+                               if( i < 85 ){\r
+                                       acme.Safari = 0.9;\r
+                               } else\r
+                               if( i < 100 ){\r
+                                       acme.Safari = 1;\r
+                               } else\r
+                               if( i < 125 ){\r
+                                       acme.Safari = 1.1;\r
+                               } else\r
+                               if( i < 312 ){\r
+                                       acme.Safari = 1.2;\r
+                               } else\r
+                               if( i < 412 ){\r
+                                       acme.Safari = 1.3;\r
+                               } else\r
+                               if( i <= 419.3 ){\r
+                                       acme.Safari = 2;\r
+                               } else\r
+                               if( i <= 525.13 ){\r
+                                       acme.Safari = 3;\r
+                               } else\r
+                               if( i <= 525.25 ){\r
+                                       acme.Safari = 3.1;\r
+                               } else\r
+                               if( i <= 528.16 ){\r
+                                       acme.Safari = 3.2;\r
+                               };\r
                        };\r
-               };\r
+               };              \r
+               \r
+               console.log( '>> Webkit : ' + acme.WebKit + ' Safari : ' + acme.Safari );\r
        };\r
        \r
        // Mozilla/5.0 (Android; Linux armv7l; rv:9.0) Gecko/20111216 Firefox/9.0 Fennec/9.0\r
@@ -198,7 +209,6 @@ X.UA = (function( n, undefined ){
                // Sony Reader Mozilla/5.0 (Linux; U; ja-jp; EBRD1101; EXT) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1\r
                dua.indexOf( 'EBRD' ) !== -1;   \r
        \r
-       console.log( '>> Webkit : ' + acme.WebKit + ' Safari : ' + acme.Safari );\r
        return acme;\r
 })( navigator );\r
 \r
similarity index 60%
rename from 0.6.x/js/core/02_XType.js
rename to 0.6.x/js/00_core/02_XType.js
index ebfcea0..ea135ce 100644 (file)
@@ -13,12 +13,12 @@ X.Type = {
                return typeof v === 'function';\r
        },\r
        isArray :\r
-               X.UA.IE && ( X.UA.IE < 5 || X.UA.MacIE ) ? (function(v){ return v && typeof v.length === 'number';}) :\r
-               window['Array'] ? (new Function('v', 'return v instanceof Array;')) :\r
-               (function(v){ return Object.prototype.toString.call(v) === '[object Array]';}),\r
+               ( X.UA.IE4 || X.UA.MacIE ) ? (function(v){ return v && typeof v.length === 'number';}) : // v && v.push === Array.prototype.push\r
+               X.UA.IE ? (function(v){ return Object.prototype.toString.call(v) === '[object Array]';}) :\r
+               (new Function('v', 'return v instanceof Array;')),\r
                \r
        isBoolean : function(v) {\r
-               return typeof v === 'boolean';\r
+               return typeof v === 'boolean'; // v === true || v === false;\r
        },\r
        isString : function(v) {\r
                return typeof v === 'string';\r
@@ -27,11 +27,14 @@ X.Type = {
                return typeof v === 'number';\r
        },\r
        isFinite : function(v){\r
-               return X.Type.isNumber(v) && isFinite(v);\r
+               return typeof v === 'number' && isFinite(v);\r
+       },\r
+       isNaN : function(v){\r
+               return typeof v === 'number' && v !== v;\r
        },\r
        isHTMLElement :\r
                // ie4 or MacIE5.23\r
-               X.UA.IE && ( X.UA.IE < 5 || X.UA.MacIE ) ? (function(v){ return v && v.tagName && v.all;}) :\r
+               ( X.UA.IE4 || X.UA.MacIE ) ? (function(v){ return v && v.tagName && v.all;}) :\r
                window['HTMLElement'] ? (new Function('v', 'return v instanceof HTMLElement')) :\r
                (function(v){ return v && v.nodeType === 1 && v.appendChild;}),\r
        /*\r
similarity index 94%
rename from 0.6.x/js/core/04_XClass.js
rename to 0.6.x/js/00_core/04_XClass.js
index 5bf2fea..e5e8b40 100644 (file)
@@ -54,7 +54,7 @@ X.Class = ( function(){
                params.push( classSetting );\r
 \r
                // サブクラスのシャドウ\r
-               if( X.Class._getClass( args[ 0 ] ) ){\r
+               if( args[ 0 ] && X.Class._getClass( args[ 0 ] ) ){\r
                        params.push( args.shift() );\r
                } else\r
                if( superDef.privateClass ){\r
@@ -230,12 +230,13 @@ X.Class = ( function(){
                        \r
                        // インスタンスのメンバー\r
                        props = args[ 0 ];\r
-                       if( props === null || !X.Type.isObject( props ) ){\r
+                       if( !X.Type.isObject( props ) ){\r
                                // サブクラスの場合、クラス定義の上書きがなくても作成可能\r
-                               if( !traits ){\r
-                                       X.Notification.critical( 'No Class Def!' );\r
-                                       return;\r
-                               };\r
+                               // サブクラスでなくても、クラスメンバ用オブジェクトが無しでも作成可能\r
+                               //if( !traits ){\r
+                               //      X.Notification.critical( 'No Class Def!' );\r
+                               //      return;\r
+                               //};\r
                                props = {};\r
                        } else\r
                        if( props[ CONSTRUCTOR ] && X.Type.isFunction( props[ CONSTRUCTOR ] ) ){\r
similarity index 95%
rename from 0.6.x/js/core/05_XTimer.js
rename to 0.6.x/js/00_core/05_XTimer.js
index e321ed4..1e90787 100644 (file)
@@ -34,7 +34,7 @@ X.Timer = {
                var next = X.Timer.next,\r
                        list = X.Timer.TICKET_LIST,\r
                        i    = list.length,\r
-                       q, f, c;\r
+                       q, f, c, r;\r
                \r
                if( X.Timer.busy ){\r
                        alert( 'busy!' );\r
similarity index 90%
rename from 0.6.x/js/core/06_XEventDispatcher.js
rename to 0.6.x/js/00_core/06_XEventDispatcher.js
index bc418aa..8e66c07 100644 (file)
  */\r
 \r
 X.Event = {\r
-       COMPLETE    : 1,\r
-       SUCCESS     : 2,\r
-       ERROR       : 3,\r
-       PROGRESS    : 4,\r
-       _LAST_EVENT : 4\r
+       COMPLETE      : 1,\r
+       SUCCESS       : 2,\r
+       ERROR         : 3,\r
+       PROGRESS      : 4,\r
+       BEFORE_CANCEL : 5,\r
+       CANCELED      : 6,\r
+       TIMEOUT       : 7,\r
+       _LAST_EVENT   : 7\r
 };\r
 \r
 \r
@@ -33,12 +36,20 @@ X.EventDispatcher =
                        \r
                        listen : function( type, arg1, arg2, arg3 ){\r
                                var list = this._listeners,\r
-                                       r, f;\r
+                                       i, l, r, f;\r
                                if( this._dispatching ){\r
                                        if( !this._reserves ) this._reserves = [];\r
                                        this._reserves[ this._reserves.length ] = [ type, arg1, arg2, arg3, X.EventDispatcher._once ];\r
                                        return this;\r
-                               } else\r
+                               };\r
+                               \r
+                               if( X.Type.isArray( type ) ){\r
+                                       for( i = 0, l = type.length; i < l; ++i ){\r
+                                               this.listen( type[ i ], arg1, arg2, arg3 );\r
+                                       };\r
+                                       return this;\r
+                               };\r
+                               \r
                                if( this.listening( type, arg1, arg2, arg3 ) ) return this;\r
 \r
                                if( !list ) list = this._listeners = {};\r
@@ -60,6 +71,14 @@ X.EventDispatcher =
                                var list = this._listeners,\r
                                        _list, reserves, unlistens, i, f;\r
                                if( !list ) return this;\r
+                               \r
+                               if( X.Type.isArray( type ) ){\r
+                                       for( i = type.length; i; ){\r
+                                               this.unlisten( type[ --i ], arg1, arg2, arg3 );\r
+                                       };\r
+                                       return this;\r
+                               };\r
+                               \r
                                if( type === undefined ){\r
                                        // 全て削除\r
                                        for( type in list ){\r
similarity index 96%
rename from 0.6.x/js/dom/10_XDom.js
rename to 0.6.x/js/01_dom/10_XDom.js
index f79fbd8..51443ea 100644 (file)
@@ -22,7 +22,7 @@ X.Dom = X.Class._override(
  * getBoundingClientRect で fontsize の調査\r
  */\r
                _resize :\r
-                       X.UA.IE && X.UA.IE < 9 ?\r
+                       X.UA.IE < 9 ?\r
                                (function(){\r
                                        var size;\r
                                        if( !X.Dom._lock ){\r
@@ -271,7 +271,7 @@ X.Dom = X.Class._override(
        }\r
 );\r
 \r
-if( !X.UA.IE || 9 <= X.UA.IE ){\r
+if( !( X.UA.IE < 9 ) ){\r
        X.Dom._detectFontSize = function(){\r
                var size = Node._fontSizeNode._rawNode.offsetHeight;\r
                if( X.Dom.baseFontSize !== size ){\r
@@ -285,7 +285,7 @@ if( !X.UA.IE || 9 <= X.UA.IE ){
  * http://d.hatena.ne.jp/t-uchima/20051003/p1\r
  * MacIEにはattachEventが一応あるけどwindow.attachEventとdocument.attachEventしかなく他の要素にはattachEventはない。\r
  */\r
-if( X.UA.MacIE || X.UA.NetFront < 4 ){\r
+if( X.UA.MacIE ){\r
        X.Dom.DOM_W3C    = true;\r
        X.Dom.EVENT_DOM0 = true;\r
 } else\r
similarity index 96%
rename from 0.6.x/js/dom/11_XDomNode.js
rename to 0.6.x/js/01_dom/11_XDomNode.js
index 7484184..e92d637 100644 (file)
@@ -795,7 +795,7 @@ Node.prototype.html = function( html ){
 Node.prototype.text = function( text ){\r
        var xnodes, texts, i, l;\r
        // setter\r
-       if( X.Type.isString( text ) ){\r
+       if( text !== undefined ){\r
                if( this._xnodeType === 3 ){\r
                        if( this._text !== text ){\r
                                text ? ( this._text = text ) : delete this.text;\r
similarity index 88%
rename from 0.6.x/js/dom/12_XDomEvent.js
rename to 0.6.x/js/01_dom/12_XDomEvent.js
index d80f5e0..3ded30f 100644 (file)
@@ -5,7 +5,7 @@
  * \r
  */\r
 \r
-if( X.Dom.EVENT_W3C ){\r
+if( !X.UA.IE || 9 <= X.UA.IE ){\r
        X.Dom.Event = function( e, xnode ){\r
                var touch0;\r
                //this._event        = e;\r
@@ -175,10 +175,6 @@ X.Dom.Event.AFTER_UPDATE        = ++X.Event._LAST_EVENT;
 // hash_change\r
 X.Dom.Event.BEFORE_UNLOAD       = ++X.Event._LAST_EVENT;\r
 X.Dom.Event.UNLOAD              = ++X.Event._LAST_EVENT;\r
-X.Dom.Event.LOAD_BEFORE_STOP    = ++X.Event._LAST_EVENT;\r
-X.Dom.Event.LOAD_ASSET_STOP     = ++X.Event._LAST_EVENT;\r
-X.Dom.Event.LOAD_ASSET_COMPLETE = ++X.Event._LAST_EVENT;\r
-X.Dom.Event.LOAD_ASSET_ERROR    = ++X.Event._LAST_EVENT;\r
 \r
 X.Dom.Event.ANIME_BEFORE_START  = ++X.Event._LAST_EVENT;\r
 X.Dom.Event.ANIME_START         = ++X.Event._LAST_EVENT;\r
@@ -188,6 +184,13 @@ X.Dom.Event.ANIME_BEFORE_STOP   = ++X.Event._LAST_EVENT; // xnode.stop() のみ
 X.Dom.Event.ANIME_STOP          = ++X.Event._LAST_EVENT;\r
 X.Dom.Event._LAST_EVENT         = X.Event._LAST_EVENT; // ここに書いてあるイベントの最後の値 X.Dom.Event.ANIME_STOP と同じ値\r
 \r
+// TODO load -> readystatechange this.readyState === "loaded" || this.readyState === "complete"\r
+X.Dom.Event._LOAD_FIX_TAGS = {\r
+       IFRAME : true,\r
+       SCRIPT : true//,\r
+       //LINK   : true\r
+};\r
+\r
 X.Dom.Event.Rename = {};\r
 X.Dom.Event.RenameTo = {};\r
 // https://github.com/georgeadamson/jQuery.prefixfree-events/blob/master/jQuery.prefixfree-events.js\r
@@ -266,9 +269,15 @@ if( navigator.msPointerEnabled && !navigator.pointerEnabled ){
        };\r
 })( X.Dom.Event.Rename, X.Dom.Event.RenameTo );\r
 \r
-X.Dom.Node.prototype.listen = function( type /* , arg1, arg2, arg3[ listener || ( context + function ) || function ][ arguments ] */ ){\r
+\r
+\r
+X.Dom.Node.prototype.listen = function( type, arg1, arg2, arg3 /* [ listener || ( context + function ) || function ][ arguments ] */ ){\r
        if( this._xnodeType === 0 || this._xnodeType === 3 ) return this;\r
        \r
+       if( X.Type.isArray( type ) ){\r
+               return X.EventDispatcher.prototype.listen.apply( this, arguments );\r
+       };\r
+       \r
        ( !this._listeners || !this._listeners[ type ] ) && X.Type.isString( type ) && this._addEvent( type );\r
        \r
        return X.EventDispatcher.prototype.listen.apply( this, arguments );\r
@@ -278,7 +287,7 @@ X.Dom.Node.prototype._addEvent =
        // Days on the Moon DOM Events とブラウザの実装 \r
        // http://nanto.asablo.jp/blog/2007/03/23/1339502\r
        // Safari 2 では関数オブジェクトしか EventListener として使えませんが、Safari のナイトリービルドでは handleEvent メソッドを持つオブジェクトも EventListener として使えるようです。\r
-       X.Dom.EVENT_W3C && ( X.UA.WebKit < 525.13 || X.UA.Opera7 ) ? // Safari3-\r
+       X.Dom.EVENT_W3C && ( X.UA.WebKit < 525.13 || X.UA.Opera7 || X.UA.NetFront < 4 ) ? // Safari3-\r
                (function( type ){\r
                        var raw = this._rawNode;\r
                        if( !raw ) return;\r
@@ -298,6 +307,9 @@ X.Dom.Node.prototype._addEvent =
                (function( type ){\r
                        var raw = this._rawNode;\r
                        if( !raw ) return;\r
+                       //if( type === 'load' && this._tag && X.Dom.Event._LOAD_FIX_TAGS[ this._tag ] ){\r
+                       //      type = 'readystatechange';\r
+                       //};\r
                        this._handleEvent = this._handleEvent || X.Callback.create( this );\r
                        if( raw.attachEvent ){\r
                                raw.attachEvent( 'on' + type, this._handleEvent );\r
@@ -312,9 +324,14 @@ X.Dom.Node.prototype._addEvent =
                });\r
 \r
 \r
-X.Dom.Node.prototype.unlisten = function( type /* , arg1, arg2, arg3 */ ){\r
-       var list = this._listeners,\r
-               l    = !this._dispatching && list && type !== undefined && list[ type ] && list[ type ].length;\r
+X.Dom.Node.prototype.unlisten = function( type, arg1, arg2, arg3 ){\r
+       var list = this._listeners, l;\r
+       \r
+       if( X.Type.isArray( type ) ){\r
+               return list ? X.EventDispatcher.prototype.unlisten.apply( this, arguments ) : this;\r
+       };\r
+\r
+       l = !this._dispatching && list && type !== undefined && list[ type ] && list[ type ].length;\r
        \r
        X.EventDispatcher.prototype.unlisten.apply( this, arguments );\r
        \r
@@ -324,7 +341,7 @@ X.Dom.Node.prototype.unlisten = function( type /* , arg1, arg2, arg3 */ ){
 };\r
 \r
 X.Dom.Node.prototype._removeEvent =\r
-       X.Dom.EVENT_W3C && ( X.UA.WebKit < 525.13 || X.UA.Opera7 ) ? // Safari3-\r
+       X.Dom.EVENT_W3C && ( X.UA.WebKit < 525.13 || X.UA.Opera7 || X.UA.NetFront < 4 ) ? // Safari3-\r
                (function( type ){\r
                        var raw = this._rawNode;\r
                        if( !raw ) return;\r
@@ -349,6 +366,9 @@ X.Dom.Node.prototype._removeEvent =
                (function( type ){\r
                        var raw = this._rawNode;\r
                        if( !raw ) return;\r
+                       //if( type === 'load' && this._tag && X.Dom.Event._LOAD_FIX_TAGS[ this._tag ] ){\r
+                       //      type = 'readystatechange';\r
+                       //};\r
                        if( raw.attachEvent ){\r
                                raw.detachEvent( 'on' + type, this._handleEvent );\r
                        } else {\r
@@ -374,9 +394,15 @@ X.Dom.Node.prototype._removeEvent =
 // Is this in regard to the Safari 1.x preventDefault bug on click/dblclick?\r
 // https://groups.google.com/forum/#!msg/comp.lang.javascript/uYEuCHjHxnw/yKoHtZJPa1QJ\r
 X.Dom.Node.prototype.handleEvent =\r
-       X.UA.IE < 9 ? // ie45678 EVENT_IE & EVENT_DOM0 for ie4\r
+       X.UA.IE4 || X.UA.IE5678 ? // ie45678 EVENT_IE & EVENT_DOM0 for ie4\r
                (function(){\r
-                       var ret = X.EventDispatcher.prototype.dispatch.call( this, new X.Dom.Event( event, this, this._rawNode ) );\r
+                       var ret;\r
+                       \r
+                       if( event.type === 'readystatechange' && this._tag && X.Dom.Event._LOAD_FIX_TAGS[ this._tag ] ){\r
+                               //type = 'readystatechange';\r
+                       };\r
+                       \r
+                       ret = X.EventDispatcher.prototype.dispatch.call( this, new X.Dom.Event( event, this, this._rawNode ) );\r
 \r
                        if( ret & X.Callback.STOP_PROPAGATION ){\r
                                event.cancelBubble = true;\r
@@ -386,7 +412,7 @@ X.Dom.Node.prototype.handleEvent =
                                return event.returnValue = false;\r
                        };\r
                }) :\r
-       //X.Dom.EVENT_W3C & EVENT_DOM0 for NetFront\r
+       //X.Dom.EVENT_W3C & EVENT_DOM0\r
                (function( e ){\r
                        var ret = X.EventDispatcher.prototype.dispatch.call( this, new X.Dom.Event( e, this ) );\r
                        \r
similarity index 99%
rename from 0.6.x/js/dom/15_XDomStyle.js
rename to 0.6.x/js/01_dom/15_XDomStyle.js
index 226c898..4977e24 100644 (file)
@@ -929,7 +929,7 @@ X.Dom.Style.SPECIAL_FIX =
                }) :
                (function( obj ){
                        var test    = X.Dom.Style.SPECIAL_FIX_PROP,
-                               ret = [], p, id, v;
+                               ret = [], p, id, v, bgpX, bgpY, clipT, clipB, clipL, clipR;
                        for( p in obj ){
                                if( !( id = test[ p ] ) ) continue;
                                v = obj[ p ];
similarity index 79%
rename from 0.6.x/js/dom/20_XDomImage.js
rename to 0.6.x/js/01_dom/20_XDomImage.js
index 23c890f..f7823c1 100644 (file)
@@ -112,11 +112,7 @@ X.Dom.Image = {
                                                        X.Dom.Node( img = new Image() ) :\r
                                                        X.Dom.Node._systemNode.create( 'img', { src : abspath } )\r
                                        )\r
-                                       .listen( 'load', this )\r
-                                       .listen( 'error', this )\r
-                                       .listen( 'abort', this )\r
-                                       .listen( X.Dom.Event.LOAD_ASSET_COMPLETE, this )\r
-                                       .listen( X.Dom.Event.LOAD_ASSET_ERROR, this );\r
+                                       .listen( [ 'load', 'error', 'abort', X.Event.SUCCESS, X.Event.ERROR ], this );\r
                                img && ( img.src = abspath );\r
                                this._detect();\r
                        },\r
@@ -127,7 +123,7 @@ X.Dom.Image = {
                                        case 'abort' :\r
                                                if( this.finish ) return;\r
                                                this.finish = true;\r
-                                               this.timerID = this.asyncDispatch( 0, { type : X.Dom.Event.LOAD_ASSET_ERROR } );\r
+                                               this.timerID = this.asyncDispatch( 0, { type : X.Event.ERROR } );\r
                                                break;\r
                                        case 'load' :\r
                                        // if( finish === true ) return; // これがあると firefox3.6 で駄目、、、\r
@@ -135,19 +131,19 @@ X.Dom.Image = {
                                                this.finish = true;\r
                                                this.timerID && X.Timer.remove( this.timerID );\r
                                                if( window.opera && !this.xnode._rawNode.complete ){\r
-                                                       this.timerID = this.asyncDispatch( 0, { type : X.Dom.Event.LOAD_ASSET_ERROR } );\r
+                                                       this.timerID = this.asyncDispatch( 0, { type : X.Event.ERROR } );\r
                                                        return;\r
                                                };\r
                                                size = X.Dom.Image.getActualDimension( X.UA.IE && X.UA.IE < 9 && window.Image ? this.abspath : this.xnode );\r
                                                this.timerID = this.asyncDispatch( 0, {\r
-                                                       type : X.Dom.Event.LOAD_ASSET_COMPLETE,\r
+                                                       type : X.Event.SUCCESS,\r
                                                        src  : this.abspath,\r
                                                        w    : size[ 0 ],\r
                                                        h    : size[ 1 ]\r
                                                } );\r
                                                break;\r
-                                       case X.Dom.Event.LOAD_ASSET_COMPLETE :\r
-                                       case X.Dom.Event.LOAD_ASSET_ERROR :\r
+                                       case X.Event.SUCCESS :\r
+                                       case X.Event.ERROR :\r
                                                delete this.timerID;\r
                                                X.Timer.once( 0, this, this.kill );\r
                                                break;\r
@@ -158,20 +154,20 @@ X.Dom.Image = {
                                if( this.xnode._rawNode && this.xnode._rawNode.complete ){\r
                                        this.finish = true;\r
                                        if( this.xnode._rawNode.width ) return;\r
-                                       this.timerID = this.asyncDispatch( 0, { type : X.Dom.Event.LOAD_ASSET_ERROR } );\r
+                                       this.timerID = this.asyncDispatch( 0, { type : X.Event.ERROR } );\r
                                        return;\r
                                };\r
                                if( ( this.tick += this.delay ) > this.timeout ){\r
                                        this.finish = true;\r
-                                       this.timerID = this.asyncDispatch( 0, { type : X.Dom.Event.LOAD_ASSET_ERROR, msg : 'timeout' } );\r
+                                       this.timerID = this.asyncDispatch( 0, { type : X.Event.ERROR, msg : 'timeout' } );\r
                                        return;\r
                                };\r
                                this.timerID = X.Timer.once( this.delay, this, this._detect );\r
                        },\r
                        stop : function(){\r
-                               // if( this.dispatch( { type : X.Dom.Event.LOAD_BEFORE_STOP } ) & X.Callback.CANCEL_NOW ) return;\r
+                               // if( this.dispatch( { type : X.Event.BEFORE_CANCEL } ) & X.Callback.CANCEL_NOW ) return;\r
                                \r
-                               // this.dispacth( { type : X.Dom.Event.LOAD_ASSET_STOPED } );\r
+                               // this.dispacth( { type : X.Event.CANCELED } );\r
                                this.kill();\r
                        },\r
                        onKill : function(){\r
similarity index 86%
rename from 0.6.x/js/ui/02_XUI_Attr.js
rename to 0.6.x/js/10_ui/02_XUI_Attr.js
index 44b7762..ae31c1e 100644 (file)
@@ -146,44 +146,11 @@ X.UI.Attr.Support = X.UI.Attr.createAttrDef( false,
 \r
 X.UI.attrClassProto = null;\r
 \r
-X.UI.AttrClass = function( opt_supports, opt_attrs ){\r
-       var klass, proto, p, support;\r
-       if( opt_supports && opt_attrs ){\r
-               // クラス拡張\r
-               klass   = new Function( 'a,b', 'var f=arguments.callee;if(a||b)return f._(a,b)' );\r
-               klass._ = X.UI.AttrClass;\r
-               klass.prototype = proto = new ( this._ === X.UI.AttrClass ? this : X.UI.AttrClass )();\r
-               proto.constructor = klass;\r
-               \r
-               // 属性プリセット\r
-               for( p in opt_supports ){\r
-                       if( p === '_last' ) continue;\r
-                       support = opt_supports[ p ];\r
-                       proto[ support.No ] = support[ 0 ];\r
-                       if( support[ 3 ] & X.UI.Attr.Type.QUARTET ){\r
-                               proto[ support.No + 1 ] = support[ 0 ];\r
-                               proto[ support.No + 2 ] = support[ 0 ];\r
-                               proto[ support.No + 3 ] = support[ 0 ];\r
-                       } else\r
-                       if( support[ 3 ] & X.UI.Attr.Type.COMBI ){\r
-                               proto[ support.No + 1 ] = support[ 0 ];\r
-                       };\r
-               };\r
-               \r
-               // setAttr に書き換え\r
-               X.UI.attrClassProto = proto;\r
-               for( p in opt_attrs ){\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.AttrClass = X.Class.create( 'X.UI.AttrClass', X.Class.POOL_OBJECT );\r
 \r
-(function(){\r
-       var proto    = X.UI.AttrClass.prototype,\r
-               supports = X.UI.Attr.Support,\r
-               support, p;\r
+\r
+X.UI.Attr.copy = function( proto, supports ){\r
+       var support, p;\r
        \r
        for( p in supports ){\r
                if( p === '_last' ) continue;\r
@@ -198,5 +165,23 @@ X.UI.AttrClass = function( opt_supports, opt_attrs ){
                        proto[ support.No + 1 ] = support[ 0 ];\r
                };\r
        };\r
-})();\r
+};\r
 \r
+X.UI.Attr.copy( X.UI.AttrClass.prototype, X.UI.Attr.Support );\r
+\r
+X.UI.Attr.preset = function( baseKlass, opt_supports, opt_attrs ){\r
+       var klass = baseKlass.inherits(),\r
+               proto = klass.prototype,\r
+               p;\r
+       \r
+       // 属性プリセット\r
+       X.UI.Attr.copy( proto, opt_supports );\r
+       \r
+       // setAttr に書き換え\r
+       X.UI.attrClassProto = proto;\r
+       for( p in opt_attrs ){\r
+               opt_supports[ p ] && X.UI._AbstractUINode.prototype.setAttr( p, opt_supports[ p ], opt_attrs[ p ] );\r
+       };\r
+       X.UI.attrClassProto = null;\r
+       return klass;\r
+};\r
similarity index 96%
rename from 0.6.x/js/ui/05_XUI_Gesture.js
rename to 0.6.x/js/10_ui/05_XUI_Gesture.js
index ba655fd..abe8b82 100644 (file)
@@ -36,7 +36,7 @@
                        gestures   = Detection.gestures,\r
                        numTouches = 0,// count the total touches on the screen\r
                        pointerType, i, l, touches, ret, active, gesture, startEv,\r
-                       hammer, deltaTime, deltaX, deltaY, velocity;\r
+                       hammer, deltaTime, deltaX, deltaY, velocity, center;\r
 \r
                //console.log( 'Hammer@handleEvent ' + X.UI.Event.IdToName[ e.type ] + ' ' + e.pointerType );\r
                if( !type ) return;\r
        /*\r
         *  "Android version < 2.2" return ev.touches.length === 1 when touchend, others return ev.touches.length === 0\r
         */\r
-       Hammer.DO_TOUCHES_FIX = Hammer.HAS_TOUCHEVENTS && X.UA.Android < 2.2;\r
+       Hammer.DO_TOUCHES_FIX = Hammer.HAS_TOUCHEVENTS && ( X.UA.Android < 2.2 || X.UA.Blink || X.UA.Opera );\r
        \r
        // detect touchevents\r
        Hammer.HAS_POINTEREVENTS = navigator.pointerEnabled || navigator.msPointerEnabled;\r
similarity index 97%
rename from 0.6.x/js/ui/06_AbstractUINode.js
rename to 0.6.x/js/10_ui/06_AbstractUINode.js
index 4820dc9..7ccbeb6 100644 (file)
@@ -788,7 +788,7 @@ X.UI._AbstractUINode = X.EventDispatcher.inherits(
                        return X.EventDispatcher.prototype.listen.apply( this, arguments );\r
                },\r
                unlisten : function( type, arg1, arg2, arg3 ){\r
-                       var root, events, i, ev, counter;\r
+                       var root, events, i, ev, counter, f;\r
                        if( X.UI.Event._START_POINTER <= type && type <= X.UI.Event._END_POINTER ){\r
                                if( this.phase < 3 ){\r
                                        if( !( events = this.reserveEvents ) ) return this;\r
similarity index 95%
rename from 0.6.x/js/ui/08_Box.js
rename to 0.6.x/js/10_ui/08_Box.js
index 879315d..8d07dfb 100644 (file)
@@ -373,7 +373,7 @@ X.UI.Box.presets = function(){
                \r
                klass = this.inherits( privateKlass );\r
                privateKlass.prototype.supportAttrs = supports,\r
-               privateKlass.prototype.attrClass    = privateKlass.prototype.attrClass( supports, attrs );\r
+               privateKlass.prototype.attrClass    = X.UI.Attr.preset( privateKlass.prototype.attrClass, supports, attrs );\r
        } else {\r
                supports = X.UI.Attr.createAttrDef( shadow.prototype.supportAttrs, layout.overrideAttrsForSelf );\r
                \r
@@ -383,7 +383,7 @@ X.UI.Box.presets = function(){
                                {\r
                                        layout       : layout,\r
                                        supportAttrs : supports,\r
-                                       attrClass    : shadow.prototype.attrClass( supports, attrs )\r
+                                       attrClass    : X.UI.Attr.preset( shadow.prototype.attrClass, supports, attrs )\r
                                }\r
                        )\r
                );              \r
similarity index 96%
rename from 0.6.x/js/ui/14_ChromeBox.js
rename to 0.6.x/js/10_ui/14_ChromeBox.js
index 2db78ee..0bc2525 100644 (file)
@@ -4,6 +4,7 @@ X.UI._ChromeBox = X.UI._Box.inherits(
        {\r
                chromeNodes   : null,\r
                containerNode : null,\r
+               \r
                Constructor : function( layout, args ){\r
                        \r
                        this.SuperConstructor( layout, args );\r
similarity index 96%
rename from 0.6.x/js/ui/15_ScrollBox.js
rename to 0.6.x/js/10_ui/15_ScrollBox.js
index 5d766d4..9febc45 100644 (file)
@@ -225,7 +225,7 @@ var m      = Math,
        };\r
 \r
 // Prototype\r
-iScroll.prototype = {\r
+X.Class._override( iScroll.prototype, {\r
        uinodeRoot     : null,\r
        uinodeTarget   : null,\r
        xnodeTarget    : null,\r
@@ -899,7 +899,7 @@ iScroll.prototype = {
        isReady: function () {\r
                return !this.moved && !this.zoomed && !this.animating;\r
        }\r
-};\r
+} );\r
 \r
 \r
 \r
@@ -1014,7 +1014,7 @@ X.UI.ScrollBox = X.UI.ChromeBox.inherits(
                                        args[ args.length ] = arg;\r
                                };\r
                        };\r
-                       \r
+                       /*\r
                        this.style = DisplayNodeStyle( this,\r
                                X.Class._newPrivate(\r
                                        this,\r
@@ -1031,7 +1031,7 @@ X.UI.ScrollBox = X.UI.ChromeBox.inherits(
                                        ]\r
                                )\r
                        );\r
-                       this.style.addName( 'ScrollBox' );\r
+                       this.style.addName( 'ScrollBox' ); */\r
                },\r
                scrollX  : function(){\r
                        \r