OSDN Git Service

Version 0.6.47, fix for IE5 & Opera7.x.
[pettanr/clientJs.git] / 0.6.x / js / ui / 05_XUI_Gesture.js
index d12514c..1c7dc77 100644 (file)
                                        POINTERS[ i ] && ( touches[ touches.length ] = POINTERS[ i ] );\r
                                };\r
                                numTouches = touches.length;\r
-                       }\r
+                       } else\r
                        // touch\r
-                       else if ( type & TOUCH ){ //sourceEventType.match(/touch/)) {\r
+                       if ( type & TOUCH ){ //sourceEventType.match(/touch/)) {\r
                                touches    = Hammer.DO_TOUCHES_FIX && type & END ? [] : e.touches;\r
                                numTouches = touches.length;\r
-                       }\r
+                       } else\r
                        // mouse\r
-                       else if( !touch_triggered ){\r
+                       if( !touch_triggered ){\r
                                numTouches = ( type & END ) ? 0 : 1;\r
                                touches    = numTouches === 0 ? [] : [{\r
                                        identifier : 1,\r
 \r
                // Register all gestures inside Gestures\r
                for( name in Gestures ){\r
-                       Gestures.hasOwnProperty( name ) && Detection.register( Gestures[ name ] );\r
+                       //Gestures.hasOwnProperty( name ) && \r
+                       Detection.register( Gestures[ name ] );\r
                };\r
 \r
                if( navigator.pointerEnabled || navigator.msPointerEnabled ){\r
                if( !this.types[ type ] ) return;\r
                var e = Utils.extend( {}, gesture );\r
                e.type = type;\r
-               console.log( 'trigger : ' + type )\r
+               console.log( 'trigger : ' + type );\r
                return this.uinode.dispatch( e );\r
        };\r
        \r
                 */\r
                register : function( gesture ){\r
                        // add an enable gesture options if there is no given\r
-                       var options = gesture.defaults || {};\r
+                       var options = gesture.defaults || {},\r
+                               list    = Detection.gestures,\r
+                               _index, i = 0, l = list.length, index;\r
                        if( options[ gesture.name ] === undefined ) options[ gesture.name ] = true;\r
 \r
                        // extend Hammer default options with the Hammer.gesture options\r
                        gesture.index = gesture.index || 1000;\r
 \r
                        // add Hammer.gesture to the list\r
-                       Detection.gestures.push( gesture );\r
+                       //Detection.gestures.push( gesture );\r
 \r
                        // sort the list by index\r
-                       Detection.gestures.sort( function( a, b ){\r
-                               return\r
-                                       a.index < b.index ? -1 :\r
-                                       a.index > b.index ? 1 : 0;\r
-                       });\r
+                       //Detection.gestures.sort( function( a, b ){\r
+                       //      return\r
+                       //              a.index < b.index ? -1 :\r
+                       //              a.index > b.index ? 1 : 0;\r
+                       //});\r
+                       if( l === 0 ){\r
+                               list[ 0 ] = gesture;\r
+                               return;\r
+                       };\r
+                       _index = gesture.index;\r
+                       for( i = 0; i < l; ++i ){\r
+                               index = list[ i ].index;\r
+                               if( i === 0 && _index < index ){\r
+                                       list.unshift( gesture );\r
+                                       return;\r
+                               } else\r
+                               if( i === l - 1 ){\r
+                                       list[ l ] = gesture;\r
+                                       return;\r
+                               } else\r
+                               if( index <= _index && _index < list[ i + 1 ].index ){\r
+                                       list.splice( i, 0, gesture );\r
+                                       return;\r
+                               };\r
+                       };\r
                }\r
        };\r
 \r