X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/c930e9176a5a85509c5b0230e2bff5c22a591432..10a866c12701c0a0afd0ac85dcdcf32a421514ac:/docs/source/EventManager-more.html?ds=sidebyside diff --git a/docs/source/EventManager-more.html b/docs/source/EventManager-more.html index ffdd0cf8..84f6ce6c 100644 --- a/docs/source/EventManager-more.html +++ b/docs/source/EventManager-more.html @@ -1,337 +1,338 @@ + The source code -
/**
- * @class Ext.EventManager
- */
-Ext.apply(Ext.EventManager, function(){
-	var resizeEvent, 
-    	resizeTask, 
-    	textEvent, 
-    	textSize,
-    	D = Ext.lib.Dom,
-    	E = Ext.lib.Event,
-    	propRe = /^(?:scope|delay|buffer|single|stopEvent|preventDefault|stopPropagation|normalized|args|delegate)$/,
-        curWidth = 0,
-        curHeight = 0,
-        // note 1: IE fires ONLY the keydown event on specialkey autorepeat
-        // note 2: Safari < 3.1, Gecko (Mac/Linux) & Opera fire only the keypress event on specialkey autorepeat
-        // (research done by @Jan Wolter at http://unixpapa.com/js/key.html)
-        useKeydown = Ext.isSafari ? 
-                    Ext.num(navigator.userAgent.toLowerCase().match(/version\/(\d+\.\d)/)[1] || 2) >= 3.1 :
-                    !((Ext.isGecko && !Ext.isWindows) || Ext.isOpera);
-      	
-	return { 
-		// private
-	    doResizeEvent: function(){
-            var h = D.getViewHeight(),
-                w = D.getViewWidth();
-            
-            //whacky problem in IE where the resize event will fire even though the w/h are the same.
-            if(curHeight != h || curWidth != w){
-                resizeEvent.fire(curWidth = w, curHeight = h);
-            }
-	    },
-	    
-	    
/** - * Fires when the window is resized and provides resize event buffering (50 milliseconds), passes new viewport width and height to handlers. - * @param {Function} fn The method the event invokes - * @param {Object} scope An object that becomes the scope of the handler - * @param {boolean} options - */ - onWindowResize : function(fn, scope, options){ - if(!resizeEvent){ - resizeEvent = new Ext.util.Event(); - resizeTask = new Ext.util.DelayedTask(this.doResizeEvent); - E.on(window, "resize", this.fireWindowResize, this); - } - resizeEvent.addListener(fn, scope, options); - }, - - // exposed only to allow manual firing - fireWindowResize : function(){ - if(resizeEvent){ - if((Ext.isIE||Ext.isAir) && resizeTask){ - resizeTask.delay(50); - }else{ - resizeEvent.fire(D.getViewWidth(), D.getViewHeight()); - } - } - }, - -
/** - * Fires when the user changes the active text size. Handler gets called with 2 params, the old size and the new size. - * @param {Function} fn The method the event invokes - * @param {Object} scope An object that becomes the scope of the handler - * @param {boolean} options - */ - onTextResize : function(fn, scope, options){ - if(!textEvent){ - textEvent = new Ext.util.Event(); - var textEl = new Ext.Element(document.createElement('div')); - textEl.dom.className = 'x-text-resize'; - textEl.dom.innerHTML = 'X'; - textEl.appendTo(document.body); - textSize = textEl.dom.offsetHeight; - setInterval(function(){ - if(textEl.dom.offsetHeight != textSize){ - textEvent.fire(textSize, textSize = textEl.dom.offsetHeight); - } - }, this.textResizeInterval); - } - textEvent.addListener(fn, scope, options); - }, - -
/** - * Removes the passed window resize listener. - * @param {Function} fn The method the event invokes - * @param {Object} scope The scope of handler - */ - removeResizeListener : function(fn, scope){ - if(resizeEvent){ - resizeEvent.removeListener(fn, scope); - } - }, - - // private - fireResize : function(){ - if(resizeEvent){ - resizeEvent.fire(D.getViewWidth(), D.getViewHeight()); - } - }, - -
/** - * The frequency, in milliseconds, to check for text resize events (defaults to 50) - */ - textResizeInterval : 50, - -
/** - * Url used for onDocumentReady with using SSL (defaults to Ext.SSL_SECURE_URL) - */ - ieDeferSrc : false, - - // protected for use inside the framework - // detects whether we should use keydown or keypress based on the browser. - useKeydown: useKeydown - }; -}()); - -Ext.EventManager.on = Ext.EventManager.addListener; - - -Ext.apply(Ext.EventObjectImpl.prototype, { -
/** Key constant @type Number */ - BACKSPACE: 8, -
/** Key constant @type Number */ - TAB: 9, -
/** Key constant @type Number */ - NUM_CENTER: 12, -
/** Key constant @type Number */ - ENTER: 13, -
/** Key constant @type Number */ - RETURN: 13, -
/** Key constant @type Number */ - SHIFT: 16, -
/** Key constant @type Number */ - CTRL: 17, - CONTROL : 17, // legacy -
/** Key constant @type Number */ - ALT: 18, -
/** Key constant @type Number */ - PAUSE: 19, -
/** Key constant @type Number */ - CAPS_LOCK: 20, -
/** Key constant @type Number */ - ESC: 27, -
/** Key constant @type Number */ - SPACE: 32, -
/** Key constant @type Number */ - PAGE_UP: 33, - PAGEUP : 33, // legacy -
/** Key constant @type Number */ - PAGE_DOWN: 34, - PAGEDOWN : 34, // legacy -
/** Key constant @type Number */ - END: 35, -
/** Key constant @type Number */ - HOME: 36, -
/** Key constant @type Number */ - LEFT: 37, -
/** Key constant @type Number */ - UP: 38, -
/** Key constant @type Number */ - RIGHT: 39, -
/** Key constant @type Number */ - DOWN: 40, -
/** Key constant @type Number */ - PRINT_SCREEN: 44, -
/** Key constant @type Number */ - INSERT: 45, -
/** Key constant @type Number */ - DELETE: 46, -
/** Key constant @type Number */ - ZERO: 48, -
/** Key constant @type Number */ - ONE: 49, -
/** Key constant @type Number */ - TWO: 50, -
/** Key constant @type Number */ - THREE: 51, -
/** Key constant @type Number */ - FOUR: 52, -
/** Key constant @type Number */ - FIVE: 53, -
/** Key constant @type Number */ - SIX: 54, -
/** Key constant @type Number */ - SEVEN: 55, -
/** Key constant @type Number */ - EIGHT: 56, -
/** Key constant @type Number */ - NINE: 57, -
/** Key constant @type Number */ - A: 65, -
/** Key constant @type Number */ - B: 66, -
/** Key constant @type Number */ - C: 67, -
/** Key constant @type Number */ - D: 68, -
/** Key constant @type Number */ - E: 69, -
/** Key constant @type Number */ - F: 70, -
/** Key constant @type Number */ - G: 71, -
/** Key constant @type Number */ - H: 72, -
/** Key constant @type Number */ - I: 73, -
/** Key constant @type Number */ - J: 74, -
/** Key constant @type Number */ - K: 75, -
/** Key constant @type Number */ - L: 76, -
/** Key constant @type Number */ - M: 77, -
/** Key constant @type Number */ - N: 78, -
/** Key constant @type Number */ - O: 79, -
/** Key constant @type Number */ - P: 80, -
/** Key constant @type Number */ - Q: 81, -
/** Key constant @type Number */ - R: 82, -
/** Key constant @type Number */ - S: 83, -
/** Key constant @type Number */ - T: 84, -
/** Key constant @type Number */ - U: 85, -
/** Key constant @type Number */ - V: 86, -
/** Key constant @type Number */ - W: 87, -
/** Key constant @type Number */ - X: 88, -
/** Key constant @type Number */ - Y: 89, -
/** Key constant @type Number */ - Z: 90, -
/** Key constant @type Number */ - CONTEXT_MENU: 93, -
/** Key constant @type Number */ - NUM_ZERO: 96, -
/** Key constant @type Number */ - NUM_ONE: 97, -
/** Key constant @type Number */ - NUM_TWO: 98, -
/** Key constant @type Number */ - NUM_THREE: 99, -
/** Key constant @type Number */ - NUM_FOUR: 100, -
/** Key constant @type Number */ - NUM_FIVE: 101, -
/** Key constant @type Number */ - NUM_SIX: 102, -
/** Key constant @type Number */ - NUM_SEVEN: 103, -
/** Key constant @type Number */ - NUM_EIGHT: 104, -
/** Key constant @type Number */ - NUM_NINE: 105, -
/** Key constant @type Number */ - NUM_MULTIPLY: 106, -
/** Key constant @type Number */ - NUM_PLUS: 107, -
/** Key constant @type Number */ - NUM_MINUS: 109, -
/** Key constant @type Number */ - NUM_PERIOD: 110, -
/** Key constant @type Number */ - NUM_DIVISION: 111, -
/** Key constant @type Number */ - F1: 112, -
/** Key constant @type Number */ - F2: 113, -
/** Key constant @type Number */ - F3: 114, -
/** Key constant @type Number */ - F4: 115, -
/** Key constant @type Number */ - F5: 116, -
/** Key constant @type Number */ - F6: 117, -
/** Key constant @type Number */ - F7: 118, -
/** Key constant @type Number */ - F8: 119, -
/** Key constant @type Number */ - F9: 120, -
/** Key constant @type Number */ - F10: 121, -
/** Key constant @type Number */ - F11: 122, -
/** Key constant @type Number */ - F12: 123, - - /** @private */ - isNavKeyPress : function(){ - var me = this, - k = this.normalizeKey(me.keyCode); - return (k >= 33 && k <= 40) || // Page Up/Down, End, Home, Left, Up, Right, Down - k == me.RETURN || - k == me.TAB || - k == me.ESC; - }, - - isSpecialKey : function(){ - var k = this.normalizeKey(this.keyCode); - return (this.type == 'keypress' && this.ctrlKey) || - this.isNavKeyPress() || - (k == this.BACKSPACE) || // Backspace - (k >= 16 && k <= 20) || // Shift, Ctrl, Alt, Pause, Caps Lock - (k >= 44 && k <= 45); // Print Screen, Insert - }, - - getPoint : function(){ - return new Ext.lib.Point(this.xy[0], this.xy[1]); - }, - -
/** - * Returns true if the control, meta, shift or alt key was pressed during this event. - * @return {Boolean} - */ - hasModifier : function(){ - return ((this.ctrlKey || this.altKey) || this.shiftKey); - } +
/**
+* @class Ext.EventManager
+*/
+Ext.apply(Ext.EventManager, function(){
+   var resizeEvent,
+       resizeTask,
+       textEvent,
+       textSize,
+       D = Ext.lib.Dom,
+       propRe = /^(?:scope|delay|buffer|single|stopEvent|preventDefault|stopPropagation|normalized|args|delegate)$/,
+       curWidth = 0,
+       curHeight = 0,
+       // note 1: IE fires ONLY the keydown event on specialkey autorepeat
+       // note 2: Safari < 3.1, Gecko (Mac/Linux) & Opera fire only the keypress event on specialkey autorepeat
+       // (research done by @Jan Wolter at http://unixpapa.com/js/key.html)
+       useKeydown = Ext.isWebKit ?
+                   Ext.num(navigator.userAgent.match(/AppleWebKit\/(\d+)/)[1]) >= 525 :
+                   !((Ext.isGecko && !Ext.isWindows) || Ext.isOpera);
+
+   return {
+       // private
+       doResizeEvent: function(){
+           var h = D.getViewHeight(),
+               w = D.getViewWidth();
+
+           //whacky problem in IE where the resize event will fire even though the w/h are the same.
+           if(curHeight != h || curWidth != w){
+               resizeEvent.fire(curWidth = w, curHeight = h);
+           }
+       },
+
+       
/** + * Adds a listener to be notified when the browser window is resized and provides resize event buffering (50 milliseconds), + * passes new viewport width and height to handlers. + * @param {Function} fn The handler function the window resize event invokes. + * @param {Object} scope The scope (this reference) in which the handler function executes. Defaults to the browser window. + * @param {boolean} options Options object as passed to {@link Ext.Element#addListener} + */ + onWindowResize : function(fn, scope, options){ + if(!resizeEvent){ + resizeEvent = new Ext.util.Event(); + resizeTask = new Ext.util.DelayedTask(this.doResizeEvent); + Ext.EventManager.on(window, "resize", this.fireWindowResize, this); + } + resizeEvent.addListener(fn, scope, options); + }, + + // exposed only to allow manual firing + fireWindowResize : function(){ + if(resizeEvent){ + if((Ext.isIE||Ext.isAir) && resizeTask){ + resizeTask.delay(50); + }else{ + resizeEvent.fire(D.getViewWidth(), D.getViewHeight()); + } + } + }, + +
/** + * Adds a listener to be notified when the user changes the active text size. Handler gets called with 2 params, the old size and the new size. + * @param {Function} fn The function the event invokes. + * @param {Object} scope The scope (this reference) in which the handler function executes. Defaults to the browser window. + * @param {boolean} options Options object as passed to {@link Ext.Element#addListener} + */ + onTextResize : function(fn, scope, options){ + if(!textEvent){ + textEvent = new Ext.util.Event(); + var textEl = new Ext.Element(document.createElement('div')); + textEl.dom.className = 'x-text-resize'; + textEl.dom.innerHTML = 'X'; + textEl.appendTo(document.body); + textSize = textEl.dom.offsetHeight; + setInterval(function(){ + if(textEl.dom.offsetHeight != textSize){ + textEvent.fire(textSize, textSize = textEl.dom.offsetHeight); + } + }, this.textResizeInterval); + } + textEvent.addListener(fn, scope, options); + }, + +
/** + * Removes the passed window resize listener. + * @param {Function} fn The method the event invokes + * @param {Object} scope The scope of handler + */ + removeResizeListener : function(fn, scope){ + if(resizeEvent){ + resizeEvent.removeListener(fn, scope); + } + }, + + // private + fireResize : function(){ + if(resizeEvent){ + resizeEvent.fire(D.getViewWidth(), D.getViewHeight()); + } + }, + +
/** + * The frequency, in milliseconds, to check for text resize events (defaults to 50) + */ + textResizeInterval : 50, + +
/** + * Url used for onDocumentReady with using SSL (defaults to Ext.SSL_SECURE_URL) + */ + ieDeferSrc : false, + + // protected for use inside the framework + // detects whether we should use keydown or keypress based on the browser. + useKeydown: useKeydown + }; +}()); + +Ext.EventManager.on = Ext.EventManager.addListener; + + +Ext.apply(Ext.EventObjectImpl.prototype, { +
/** Key constant @type Number */ + BACKSPACE: 8, +
/** Key constant @type Number */ + TAB: 9, +
/** Key constant @type Number */ + NUM_CENTER: 12, +
/** Key constant @type Number */ + ENTER: 13, +
/** Key constant @type Number */ + RETURN: 13, +
/** Key constant @type Number */ + SHIFT: 16, +
/** Key constant @type Number */ + CTRL: 17, + CONTROL : 17, // legacy +
/** Key constant @type Number */ + ALT: 18, +
/** Key constant @type Number */ + PAUSE: 19, +
/** Key constant @type Number */ + CAPS_LOCK: 20, +
/** Key constant @type Number */ + ESC: 27, +
/** Key constant @type Number */ + SPACE: 32, +
/** Key constant @type Number */ + PAGE_UP: 33, + PAGEUP : 33, // legacy +
/** Key constant @type Number */ + PAGE_DOWN: 34, + PAGEDOWN : 34, // legacy +
/** Key constant @type Number */ + END: 35, +
/** Key constant @type Number */ + HOME: 36, +
/** Key constant @type Number */ + LEFT: 37, +
/** Key constant @type Number */ + UP: 38, +
/** Key constant @type Number */ + RIGHT: 39, +
/** Key constant @type Number */ + DOWN: 40, +
/** Key constant @type Number */ + PRINT_SCREEN: 44, +
/** Key constant @type Number */ + INSERT: 45, +
/** Key constant @type Number */ + DELETE: 46, +
/** Key constant @type Number */ + ZERO: 48, +
/** Key constant @type Number */ + ONE: 49, +
/** Key constant @type Number */ + TWO: 50, +
/** Key constant @type Number */ + THREE: 51, +
/** Key constant @type Number */ + FOUR: 52, +
/** Key constant @type Number */ + FIVE: 53, +
/** Key constant @type Number */ + SIX: 54, +
/** Key constant @type Number */ + SEVEN: 55, +
/** Key constant @type Number */ + EIGHT: 56, +
/** Key constant @type Number */ + NINE: 57, +
/** Key constant @type Number */ + A: 65, +
/** Key constant @type Number */ + B: 66, +
/** Key constant @type Number */ + C: 67, +
/** Key constant @type Number */ + D: 68, +
/** Key constant @type Number */ + E: 69, +
/** Key constant @type Number */ + F: 70, +
/** Key constant @type Number */ + G: 71, +
/** Key constant @type Number */ + H: 72, +
/** Key constant @type Number */ + I: 73, +
/** Key constant @type Number */ + J: 74, +
/** Key constant @type Number */ + K: 75, +
/** Key constant @type Number */ + L: 76, +
/** Key constant @type Number */ + M: 77, +
/** Key constant @type Number */ + N: 78, +
/** Key constant @type Number */ + O: 79, +
/** Key constant @type Number */ + P: 80, +
/** Key constant @type Number */ + Q: 81, +
/** Key constant @type Number */ + R: 82, +
/** Key constant @type Number */ + S: 83, +
/** Key constant @type Number */ + T: 84, +
/** Key constant @type Number */ + U: 85, +
/** Key constant @type Number */ + V: 86, +
/** Key constant @type Number */ + W: 87, +
/** Key constant @type Number */ + X: 88, +
/** Key constant @type Number */ + Y: 89, +
/** Key constant @type Number */ + Z: 90, +
/** Key constant @type Number */ + CONTEXT_MENU: 93, +
/** Key constant @type Number */ + NUM_ZERO: 96, +
/** Key constant @type Number */ + NUM_ONE: 97, +
/** Key constant @type Number */ + NUM_TWO: 98, +
/** Key constant @type Number */ + NUM_THREE: 99, +
/** Key constant @type Number */ + NUM_FOUR: 100, +
/** Key constant @type Number */ + NUM_FIVE: 101, +
/** Key constant @type Number */ + NUM_SIX: 102, +
/** Key constant @type Number */ + NUM_SEVEN: 103, +
/** Key constant @type Number */ + NUM_EIGHT: 104, +
/** Key constant @type Number */ + NUM_NINE: 105, +
/** Key constant @type Number */ + NUM_MULTIPLY: 106, +
/** Key constant @type Number */ + NUM_PLUS: 107, +
/** Key constant @type Number */ + NUM_MINUS: 109, +
/** Key constant @type Number */ + NUM_PERIOD: 110, +
/** Key constant @type Number */ + NUM_DIVISION: 111, +
/** Key constant @type Number */ + F1: 112, +
/** Key constant @type Number */ + F2: 113, +
/** Key constant @type Number */ + F3: 114, +
/** Key constant @type Number */ + F4: 115, +
/** Key constant @type Number */ + F5: 116, +
/** Key constant @type Number */ + F6: 117, +
/** Key constant @type Number */ + F7: 118, +
/** Key constant @type Number */ + F8: 119, +
/** Key constant @type Number */ + F9: 120, +
/** Key constant @type Number */ + F10: 121, +
/** Key constant @type Number */ + F11: 122, +
/** Key constant @type Number */ + F12: 123, + + /** @private */ + isNavKeyPress : function(){ + var me = this, + k = this.normalizeKey(me.keyCode); + return (k >= 33 && k <= 40) || // Page Up/Down, End, Home, Left, Up, Right, Down + k == me.RETURN || + k == me.TAB || + k == me.ESC; + }, + + isSpecialKey : function(){ + var k = this.normalizeKey(this.keyCode); + return (this.type == 'keypress' && this.ctrlKey) || + this.isNavKeyPress() || + (k == this.BACKSPACE) || // Backspace + (k >= 16 && k <= 20) || // Shift, Ctrl, Alt, Pause, Caps Lock + (k >= 44 && k <= 45); // Print Screen, Insert + }, + + getPoint : function(){ + return new Ext.lib.Point(this.xy[0], this.xy[1]); + }, + +
/** + * Returns true if the control, meta, shift or alt key was pressed during this event. + * @return {Boolean} + */ + hasModifier : function(){ + return ((this.ctrlKey || this.altKey) || this.shiftKey); + } });
\ No newline at end of file