Upgrade to ExtJS 3.0.0 - Released 07/06/2009
[extjs.git] / source / util / KeyNav.js
diff --git a/source/util/KeyNav.js b/source/util/KeyNav.js
deleted file mode 100644 (file)
index f26853a..0000000
+++ /dev/null
@@ -1,151 +0,0 @@
-/*\r
- * Ext JS Library 2.2.1\r
- * Copyright(c) 2006-2009, Ext JS, LLC.\r
- * licensing@extjs.com\r
- * \r
- * http://extjs.com/license\r
- */\r
-\r
-/**\r
- * @class Ext.KeyNav\r
- * <p>Provides a convenient wrapper for normalized keyboard navigation.  KeyNav allows you to bind\r
- * navigation keys to function calls that will get called when the keys are pressed, providing an easy\r
- * way to implement custom navigation schemes for any UI component.</p>\r
- * <p>The following are all of the possible keys that can be implemented: enter, left, right, up, down, tab, esc,\r
- * pageUp, pageDown, del, home, end.  Usage:</p>\r
- <pre><code>\r
-var nav = new Ext.KeyNav("my-element", {\r
-    "left" : function(e){\r
-        this.moveLeft(e.ctrlKey);\r
-    },\r
-    "right" : function(e){\r
-        this.moveRight(e.ctrlKey);\r
-    },\r
-    "enter" : function(e){\r
-        this.save();\r
-    },\r
-    scope : this\r
-});\r
-</code></pre>\r
- * @constructor\r
- * @param {Mixed} el The element to bind to\r
- * @param {Object} config The config\r
- */\r
-Ext.KeyNav = function(el, config){\r
-    this.el = Ext.get(el);\r
-    Ext.apply(this, config);\r
-    if(!this.disabled){\r
-        this.disabled = true;\r
-        this.enable();\r
-    }\r
-};\r
-\r
-Ext.KeyNav.prototype = {\r
-    /**\r
-     * @cfg {Boolean} disabled\r
-     * True to disable this KeyNav instance (defaults to false)\r
-     */\r
-    disabled : false,\r
-    /**\r
-     * @cfg {String} defaultEventAction\r
-     * The method to call on the {@link Ext.EventObject} after this KeyNav intercepts a key.  Valid values are\r
-     * {@link Ext.EventObject#stopEvent}, {@link Ext.EventObject#preventDefault} and\r
-     * {@link Ext.EventObject#stopPropagation} (defaults to 'stopEvent')\r
-     */\r
-    defaultEventAction: "stopEvent",\r
-    /**\r
-     * @cfg {Boolean} forceKeyDown\r
-     * Handle the keydown event instead of keypress (defaults to false).  KeyNav automatically does this for IE since\r
-     * IE does not propagate special keys on keypress, but setting this to true will force other browsers to also\r
-     * handle keydown instead of keypress.\r
-     */\r
-    forceKeyDown : false,\r
-\r
-    // private\r
-    prepareEvent : function(e){\r
-        var k = e.getKey();\r
-        var h = this.keyToHandler[k];\r
-        //if(h && this[h]){\r
-        //    e.stopPropagation();\r
-        //}\r
-        if(Ext.isSafari2 && h && k >= 37 && k <= 40){\r
-            e.stopEvent();\r
-        }\r
-    },\r
-\r
-    // private\r
-    relay : function(e){\r
-        var k = e.getKey();\r
-        var h = this.keyToHandler[k];\r
-        if(h && this[h]){\r
-            if(this.doRelay(e, this[h], h) !== true){\r
-                e[this.defaultEventAction]();\r
-            }\r
-        }\r
-    },\r
-\r
-    // private\r
-    doRelay : function(e, h, hname){\r
-        return h.call(this.scope || this, e);\r
-    },\r
-\r
-    // possible handlers\r
-    enter : false,\r
-    left : false,\r
-    right : false,\r
-    up : false,\r
-    down : false,\r
-    tab : false,\r
-    esc : false,\r
-    pageUp : false,\r
-    pageDown : false,\r
-    del : false,\r
-    home : false,\r
-    end : false,\r
-\r
-    // quick lookup hash\r
-    keyToHandler : {\r
-        37 : "left",\r
-        39 : "right",\r
-        38 : "up",\r
-        40 : "down",\r
-        33 : "pageUp",\r
-        34 : "pageDown",\r
-        46 : "del",\r
-        36 : "home",\r
-        35 : "end",\r
-        13 : "enter",\r
-        27 : "esc",\r
-        9  : "tab"\r
-    },\r
-\r
-       /**\r
-        * Enable this KeyNav\r
-        */\r
-       enable: function(){\r
-               if(this.disabled){\r
-            if(this.forceKeyDown || Ext.isIE || Ext.isSafari3 || Ext.isAir){\r
-                this.el.on("keydown", this.relay,  this);\r
-            }else{\r
-                this.el.on("keydown", this.prepareEvent,  this);\r
-                this.el.on("keypress", this.relay,  this);\r
-            }\r
-                   this.disabled = false;\r
-               }\r
-       },\r
-\r
-       /**\r
-        * Disable this KeyNav\r
-        */\r
-       disable: function(){\r
-               if(!this.disabled){\r
-                   if(this.forceKeyDown || Ext.isIE || Ext.isSafari3 || Ext.isAir){\r
-                this.el.un("keydown", this.relay, this);\r
-            }else{\r
-                this.el.un("keydown", this.prepareEvent, this);\r
-                this.el.un("keypress", this.relay, this);\r
-            }\r
-                   this.disabled = true;\r
-               }\r
-       }\r
-};
\ No newline at end of file