X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/0494b8d9b9bb03ab6c22b34dae81261e3cd7e3e6..7a654f8d43fdb43d78b63d90528bed6e86b608cc:/src/core/src/dom/Element.keys.js diff --git a/src/core/src/dom/Element.keys.js b/src/core/src/dom/Element.keys.js new file mode 100644 index 00000000..af02067e --- /dev/null +++ b/src/core/src/dom/Element.keys.js @@ -0,0 +1,46 @@ +/** + * @class Ext.core.Element + */ +Ext.core.Element.addMethods({ + /** + * Convenience method for constructing a KeyMap + * @param {Number/Array/Object/String} key Either a string with the keys to listen for, the numeric key code, array of key codes or an object with the following options: + * {key: (number or array), shift: (true/false), ctrl: (true/false), alt: (true/false)} + * @param {Function} fn The function to call + * @param {Object} scope (optional) The scope (this reference) in which the specified function is executed. Defaults to this Element. + * @return {Ext.util.KeyMap} The KeyMap created + */ + addKeyListener : function(key, fn, scope){ + var config; + if(typeof key != 'object' || Ext.isArray(key)){ + config = { + key: key, + fn: fn, + scope: scope + }; + }else{ + config = { + key : key.key, + shift : key.shift, + ctrl : key.ctrl, + alt : key.alt, + fn: fn, + scope: scope + }; + } + return Ext.create('Ext.util.KeyMap', this, config); + }, + + /** + * Creates a KeyMap for this element + * @param {Object} config The KeyMap config. See {@link Ext.util.KeyMap} for more details + * @return {Ext.util.KeyMap} The KeyMap created + */ + addKeyMap : function(config){ + return Ext.create('Ext.util.KeyMap', this, config); + } +}); + +//Import the newly-added Ext.core.Element functions into CompositeElementLite. We call this here because +//Element.keys.js is the last extra Ext.core.Element include in the ext-all.js build +Ext.CompositeElementLite.importElementMethods();