OSDN Git Service

Version 0.6.169, add doc comment.
[pettanr/clientJs.git] / 0.6.x / js / 01_core / 15_XEventDispatcher.js
index aceaca5..5a5b17d 100644 (file)
  */\r
 var X_Listeners_;\r
 \r
-var /** @const */\r
-       X_LISTENERS_ACTUAL_HANDLER = 0,\r
-       /** @const */\r
+var X_LISTENERS_ACTUAL_HANDLER = 0,\r
        X_LISTENERS_DISPATCHING    = 1,\r
-       /** @const */\r
        X_LISTENERS_RESERVES       = 2,\r
-       /** @const */\r
        X_LISTENERS_UNLISTENS      = 3,\r
-       /** @const */\r
        X_LISTENERS_KILL_RESERVED  = 4; // X.Event で、イベントIDを 5 から始めているので注意。\r
 \r
 \r
@@ -185,7 +180,7 @@ var X_EventDispatcher = X[ 'EventDispatcher' ] =
                                if( opt_arg1.kind ){\r
                                        cbHash = opt_arg1;\r
                                } else {\r
-                                       cbHash = X_Callback_classifyCallbackArgs( opt_arg1, opt_arg2, opt_arg3, this );\r
+                                       cbHash = X_Closure_classifyCallbackArgs( opt_arg1, opt_arg2, opt_arg3, this );\r
                                };\r
                                \r
                                if( ( unlistens = listeners[ X_LISTENERS_UNLISTENS ] ) && ( unlistens = unlistens[ opt_type ] ) ){\r
@@ -242,11 +237,11 @@ var X_EventDispatcher = X[ 'EventDispatcher' ] =
  */\r
 function X_EventDispatcher_dispatch( e ){\r
        var listeners = this[ '_listeners' ],\r
-               ret       = X_Callback_NONE,\r
+               ret       = X_CALLBACK_NONE,\r
                type      = e[ 'type' ],\r
                list, unlistens, i, l, args, f, r, sysOnly, timerID, k;\r
        \r
-       if( !listeners || !( list = listeners[ type || e ] ) ) return X_Callback_NONE;\r
+       if( !listeners || !( list = listeners[ type || e ] ) ) return X_CALLBACK_NONE;\r
        \r
        // 数値, 文字が渡された場合\r
        if( !type ){\r
@@ -273,9 +268,9 @@ function X_EventDispatcher_dispatch( e ){
                };\r
                if( unlistens && unlistens.indexOf( f ) !== -1 ) continue;\r
                \r
-               r = X_Callback_proxyCallback( f, args || ( args = [ e ] ) ) || 0;\r
+               r = X_Closure_proxyCallback( f, args || ( args = [ e ] ) ) || 0;\r
                \r
-               if( f.once || r & X_Callback_UN_LISTEN ){\r
+               if( f.once || r & X_CALLBACK_UN_LISTEN ){\r
                        // dispatch 中に unlisten が作られることがある\r
                        if( !unlistens ){\r
                                unlistens = listeners[ X_LISTENERS_UNLISTENS ] || ( listeners[ X_LISTENERS_UNLISTENS ] = {} );\r
@@ -285,7 +280,7 @@ function X_EventDispatcher_dispatch( e ){
                };\r
                ret |= X_Type_isFinite( r ) ? r : 0;\r
                \r
-               if( ( r & X_Callback_STOP_NOW ) === X_Callback_STOP_NOW ){ // iOS では ( & ) 括弧が無いと判定を誤る\r
+               if( ( r & X_CALLBACK_STOP_NOW ) === X_CALLBACK_STOP_NOW ){ // iOS では ( & ) 括弧が無いと判定を誤る\r
                        sysOnly = true;\r
                        break;\r
                };\r
@@ -400,7 +395,7 @@ function X_EventDispatcher_listen( type, opt_arg1, opt_arg2, opt_arg3 ){
        \r
        add && X_EventDispatcher_actualAddEvent( this, type, raw, list );\r
        \r
-       f = X_Callback_classifyCallbackArgs( opt_arg1, opt_arg2, opt_arg3, this );\r
+       f = X_Closure_classifyCallbackArgs( opt_arg1, opt_arg2, opt_arg3, this );\r
        list[ list.length ] = f;\r
        f.once = X_EventDispatcher_once;\r
        f.lock = X_EventDispatcher_lock;\r
@@ -535,14 +530,14 @@ function X_EventDispatcher_actualAddEvent( that, type, raw, list ){
                if( X_UA_EVENT.W3C ){\r
                        switch( that[ '_rawType' ] ){\r
                                case X_EventDispatcher_EVENT_TARGET_SILVER_LIGHT :\r
-                                       list.slcallback = X_Callback_create( that, X_EventDispatcher_sliverLightDispatch, [ type ] );\r
+                                       list.slcallback = X_Closure_create( that, X_EventDispatcher_sliverLightDispatch, [ type ] );\r
                                        list.sltoken    = raw[ 'AddEventListener' ]( type, list.slcallback );\r
                                        break;\r
                                \r
                                case X_EventDispatcher_EVENT_TARGET_XHR :\r
                                        if( X_UA[ 'Opera' ] < 12 ){\r
                                                // Opera11- の XHR は event オブジェクトが返らないため, eventType 毎に callback を指定する addEventListener もない\r
-                                               raw[ 'on' + type ] = X_Callback_create( that, X_EventDispatcher_dispatch, [ type ] );\r
+                                               raw[ 'on' + type ] = X_Closure_create( that, X_EventDispatcher_dispatch, [ type ] );\r
                                                break;\r
                                        };\r
 \r
@@ -556,7 +551,7 @@ function X_EventDispatcher_actualAddEvent( that, type, raw, list ){
                                                  type === 'animationiteration'  || type === 'webkitAnimationIteration' ) ){\r
                                                raw.addEventListener( type, X_EventDispatcher_iOSTransitionEndDispatch, false );\r
                                        } else {\r
-                                               f = that[ '_listeners' ][ X_LISTENERS_ACTUAL_HANDLER ] || ( that[ '_listeners' ][ X_LISTENERS_ACTUAL_HANDLER ] = X_Callback_create( that, X_EventDispatcher_actualHandleEvent ) );\r
+                                               f = that[ '_listeners' ][ X_LISTENERS_ACTUAL_HANDLER ] || ( that[ '_listeners' ][ X_LISTENERS_ACTUAL_HANDLER ] = X_Closure_create( that, X_EventDispatcher_actualHandleEvent ) );\r
                \r
                                                if( raw.addEventListener ){\r
                                                        raw.addEventListener( type, f, false );\r
@@ -570,18 +565,18 @@ function X_EventDispatcher_actualAddEvent( that, type, raw, list ){
                if( X_UA_EVENT.IE ){\r
                        switch( that[ '_rawType' ] ){   \r
                                case X_EventDispatcher_EVENT_TARGET_SILVER_LIGHT :\r
-                                       list.slcallback = X_Callback_create( that, X_EventDispatcher_sliverLightDispatch, [ type ] );\r
+                                       list.slcallback = X_Closure_create( that, X_EventDispatcher_sliverLightDispatch, [ type ] );\r
                                        list.sltoken    = raw[ 'AddEventListener' ]( type, list.slcallback );\r
                                        break;                          \r
                                \r
                                case X_EventDispatcher_EVENT_TARGET_XHR :\r
                                        console.log( 'XHR addEvent ' + type );\r
                                        // ie8- の XHR は window.event が更新されないため, eventType 毎に callback を指定する\r
-                                       raw[ 'on' + type ] = X_Callback_create( that, X_EventDispatcher_dispatch, [ type ] );\r
+                                       raw[ 'on' + type ] = X_Closure_create( that, X_EventDispatcher_dispatch, [ type ] );\r
                                        break;\r
                                \r
                                default :\r
-                                       f = that[ '_listeners' ][ X_LISTENERS_ACTUAL_HANDLER ] || ( that[ '_listeners' ][ X_LISTENERS_ACTUAL_HANDLER ] = X_Callback_create( that, X_EventDispatcher_actualHandleEvent ) );\r
+                                       f = that[ '_listeners' ][ X_LISTENERS_ACTUAL_HANDLER ] || ( that[ '_listeners' ][ X_LISTENERS_ACTUAL_HANDLER ] = X_Closure_create( that, X_EventDispatcher_actualHandleEvent ) );\r
                                        \r
                                        if( raw.attachEvent ){\r
                                                raw.attachEvent( 'on' + type, f );\r
@@ -594,17 +589,17 @@ function X_EventDispatcher_actualAddEvent( that, type, raw, list ){
                        switch( that[ '_rawType' ] ){\r
                                case X_EventDispatcher_EVENT_TARGET_SILVER_LIGHT :\r
                                        // DOM0 で Silverlight ってあるの -> ie4 mobile?\r
-                                       list.slcallback = X_Callback_create( that, X_EventDispatcher_sliverLightDispatch, [ type ] );\r
+                                       list.slcallback = X_Closure_create( that, X_EventDispatcher_sliverLightDispatch, [ type ] );\r
                                        list.sltoken    = raw[ 'AddEventListener' ]( type, list.slcallback );\r
                                        break;                          \r
                                \r
                                case X_EventDispatcher_EVENT_TARGET_XHR :\r
                                        // ie4 mobile は XHR をサポート!\r
-                                       raw[ 'on' + type ] = X_Callback_create( that, X_EventDispatcher_dispatch, [ type ] );\r
+                                       raw[ 'on' + type ] = X_Closure_create( that, X_EventDispatcher_dispatch, [ type ] );\r
                                        break;\r
 \r
                                default :\r
-                                       raw[ 'on' + type ] = that[ '_listeners' ][ X_LISTENERS_ACTUAL_HANDLER ] || ( that[ '_listeners' ][ X_LISTENERS_ACTUAL_HANDLER ] = X_Callback_create( that, X_EventDispatcher_actualHandleEvent ) );\r
+                                       raw[ 'on' + type ] = that[ '_listeners' ][ X_LISTENERS_ACTUAL_HANDLER ] || ( that[ '_listeners' ][ X_LISTENERS_ACTUAL_HANDLER ] = X_Closure_create( that, X_EventDispatcher_actualHandleEvent ) );\r
                                        break;\r
                        };\r
                }\r
@@ -614,7 +609,7 @@ function X_EventDispatcher_actualAddEvent( that, type, raw, list ){
 \r
 /*\r
  * iOS の webkitTransitionEnd が連続して起こる場合、\r
- * コールバックの(that[ X_LISTENERS_ACTUAL_HANDLER ])クロージャ内の実際のコールバック(X_Callback_actualClosure:obj._)が\r
+ * コールバックの(that[ X_LISTENERS_ACTUAL_HANDLER ])クロージャ内の実際のコールバック(X_Closure_actualClosure:obj._)が\r
  * 参照できていない問題に遭遇、、、iOS3.1.3 & iOS6.1.5 で確認\r
  * animation も怪しい、、、\r
  */\r
@@ -643,7 +638,7 @@ function X_EventDispatcher_actualRemoveEvent( that, type, raw, list, skip ){
                        switch( that[ '_rawType' ] ){\r
                                case X_EventDispatcher_EVENT_TARGET_SILVER_LIGHT :\r
                                        raw[ 'RemoveEventListener' ]( type, list.sltoken ); // token\r
-                                       X_Callback_correct( list.slcallback );\r
+                                       X_Closure_correct( list.slcallback );\r
                                        delete list.sltoken;\r
                                        delete list.slcallback;\r
                                        break;\r
@@ -651,7 +646,7 @@ function X_EventDispatcher_actualRemoveEvent( that, type, raw, list, skip ){
                                case X_EventDispatcher_EVENT_TARGET_XHR :\r
                                        if( X_UA[ 'Opera' ] < 12 ){\r
                                                // Opera11- の XHR は event オブジェクトが返らないため, eventType 毎に callback を指定する addEventListener もない\r
-                                               X_Callback_correct( raw[ 'on' + type ] );\r
+                                               X_Closure_correct( raw[ 'on' + type ] );\r
                                                raw[ 'on' + type ] = '';\r
                                                break;\r
                                        };\r
@@ -671,7 +666,7 @@ function X_EventDispatcher_actualRemoveEvent( that, type, raw, list, skip ){
                                        };\r
                                        \r
                                        if( !skip && that[ '_listeners' ][ X_LISTENERS_ACTUAL_HANDLER ] ){\r
-                                               X_Callback_correct( that[ '_listeners' ][ X_LISTENERS_ACTUAL_HANDLER ] );\r
+                                               X_Closure_correct( that[ '_listeners' ][ X_LISTENERS_ACTUAL_HANDLER ] );\r
                                                delete that[ '_listeners' ][ X_LISTENERS_ACTUAL_HANDLER ];\r
                                        };\r
                        };\r
@@ -680,13 +675,13 @@ function X_EventDispatcher_actualRemoveEvent( that, type, raw, list, skip ){
                        switch( that[ '_rawType' ] ){\r
                                case X_EventDispatcher_EVENT_TARGET_SILVER_LIGHT :\r
                                        raw[ 'RemoveEventListener' ]( type, list.sltoken ); // token\r
-                                       X_Callback_correct( list.slcallback );\r
+                                       X_Closure_correct( list.slcallback );\r
                                        delete list.sltoken;\r
                                        delete list.slcallback;\r
                                        break;\r
                                \r
                                case X_EventDispatcher_EVENT_TARGET_XHR :\r
-                                       X_Callback_correct( raw[ 'on' + type ] );\r
+                                       X_Closure_correct( raw[ 'on' + type ] );\r
                                        raw[ 'on' + type ] = X_emptyFunction;\r
                                        raw[ 'on' + type ] = '';\r
                                        console.log( 'XHR rmEvent ' + type );\r
@@ -702,7 +697,7 @@ function X_EventDispatcher_actualRemoveEvent( that, type, raw, list, skip ){
                                        };\r
                                        \r
                                        if( !skip ){\r
-                                               X_Callback_correct( that[ '_listeners' ][ X_LISTENERS_ACTUAL_HANDLER ] );\r
+                                               X_Closure_correct( that[ '_listeners' ][ X_LISTENERS_ACTUAL_HANDLER ] );\r
                                                delete that[ '_listeners' ][ X_LISTENERS_ACTUAL_HANDLER ];\r
                                        };\r
                        };\r
@@ -710,13 +705,13 @@ function X_EventDispatcher_actualRemoveEvent( that, type, raw, list, skip ){
                        switch( that[ '_rawType' ] ){\r
                                case X_EventDispatcher_EVENT_TARGET_SILVER_LIGHT :\r
                                        raw[ 'RemoveEventListener' ]( type, list.sltoken ); // token\r
-                                       X_Callback_correct( list.slcallback );\r
+                                       X_Closure_correct( list.slcallback );\r
                                        delete list.sltoken;\r
                                        delete list.slcallback;\r
                                        break;\r
                                \r
                                case X_EventDispatcher_EVENT_TARGET_XHR :\r
-                                       X_Callback_correct( raw[ 'on' + type ] );\r
+                                       X_Closure_correct( raw[ 'on' + type ] );\r
                                        raw[ 'on' + type ] = X_emptyFunction;\r
                                        raw[ 'on' + type ] = '';\r
                                        break;\r
@@ -726,7 +721,7 @@ function X_EventDispatcher_actualRemoveEvent( that, type, raw, list, skip ){
                                        raw[ 'on' + type ] = '';\r
                                        \r
                                        if( !skip ){\r
-                                               X_Callback_correct( that[ '_listeners' ][ X_LISTENERS_ACTUAL_HANDLER ] );\r
+                                               X_Closure_correct( that[ '_listeners' ][ X_LISTENERS_ACTUAL_HANDLER ] );\r
                                                delete that[ '_listeners' ][ X_LISTENERS_ACTUAL_HANDLER ];\r
                                        };\r
                        };\r
@@ -747,10 +742,10 @@ var X_EventDispatcher_actualHandleEvent =
                        \r
                        ret = this[ 'dispatch' ]( new X_DomEvent( e, this, this[ '_rawObject' ] ) );\r
 \r
-                       if( ret & X_Callback_STOP_PROPAGATION ){\r
+                       if( ret & X_CALLBACK_STOP_PROPAGATION ){\r
                                e.cancelBubble = true;\r
                        };\r
-                       if( ret & X_Callback_PREVENT_DEFAULT ){\r
+                       if( ret & X_CALLBACK_PREVENT_DEFAULT ){\r
                                this[ '_tag' ] === 'A' && this[ '_rawObject' ].blur();\r
                                return e.returnValue = false;\r
                        };\r
@@ -758,14 +753,14 @@ var X_EventDispatcher_actualHandleEvent =
        //X_UA_EVENT.W3C || X_UA_EVENT.DOM0\r
                (function( e ){\r
                        var ev  = new X_DomEvent( e, this ),\r
-                               ret = X_Callback_NONE,\r
+                               ret = X_CALLBACK_NONE,\r
                                i, l;\r
                        //console.log( '>>>>>>>>>> ' + e.type );\r
                        // touch event -> pointer\r
                        if( X_Type_isArray( ev ) ){\r
                                if( ev.length === 0 ){\r
                                        // TouchEvent の後に発生した MouseEvent のキャンセル\r
-                                       ret = X_Callback_STOP_PROPAGATION | X_Callback_PREVENT_DEFAULT;\r
+                                       ret = X_CALLBACK_STOP_PROPAGATION | X_CALLBACK_PREVENT_DEFAULT;\r
                                } else {\r
                                        for( i = 0, l = ev.length; i < l; ++i ){\r
                                                //console.log( 'handleEvent ' + ev[ i ].type );\r
@@ -776,10 +771,10 @@ var X_EventDispatcher_actualHandleEvent =
                                ret = this[ 'dispatch' ]( ev );\r
                        };\r
                        \r
-                       if( ret & X_Callback_STOP_PROPAGATION ){\r
+                       if( ret & X_CALLBACK_STOP_PROPAGATION ){\r
                                e.stopPropagation();\r
                        };\r
-                       if( ret & X_Callback_PREVENT_DEFAULT ){\r
+                       if( ret & X_CALLBACK_PREVENT_DEFAULT ){\r
                                this[ '_tag' ] === 'A' && this[ '_rawObject' ].blur();\r
                                e.preventDefault();\r
                                if( X_UA[ 'WebKit' ] < 525.13 ){ // Safari3-\r