whole_func_string: function(key, fn, scope) {
          var keyCode, shift, ctrl, alt;
          if (Ext.isObject(key) && !Ext.isArray(key)) {
              keyCode = key.key;
              shift = key.shift;
              ctrl = key.ctrl;
              alt = key.alt;
          } else {
              keyCode = key;
          }
          this.addBinding({
              key: keyCode,
              shift: shift,
              ctrl: ctrl,
              alt: alt,
              fn: fn,
              scope: scope
          });
      }
func_code_string: function(key, fn, scope) {
          var keyCode, shift, ctrl, alt;
          if (Ext.isObject(key) && !Ext.isArray(key)) {
              keyCode = key.key;
              shift = key.shift;
              ctrl = key.ctrl;
              alt = key.alt;
          } else {
              keyCode = key;
          }
          this.addBinding({
              key: keyCode,
              shift: shift,
              ctrl: ctrl,
              alt: alt,
              fn: fn,
              scope: scope
          });
      }
func_documentation_string: Shorthand for adding a single key listener.
  
  @param {Number/Number[]/Object} key Either 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] The scope (`this` reference) in which the function is executed.
  Defaults to the browser window.