111 function keyboard(obj,_defaultHandler)
115 obj.bind(
"keydown keyup", this.
keyHandler.bind(
this) );
117 this._defaultHandler = _defaultHandler;
154 keyboard.ignore = [
"TEXTAREA",
"INPUT",
"SELECT"];
176 var _keyboard =
new keyboard($(document));
178 _keyboard.registerCommand(
"Meta-a",
false );
180 _keyboard.registerCommand(
"DEL,BACKSPACE",
false,
false,
false,1);
181 _keyboard.registerCommand(
"Meta-s,Ctrl-s,Alt-s",
false,
false,
false,1);
227 var cs = c.split(
",");
228 p = Math.max( (p || this._commands.length)-1, 0 );
230 for(var i=0;i<cs.length;i++)
232 var cc = jQuery.trim(cs[i]).toLowerCase();
254 var cs = c.split(
",");
257 for (var j=0;j<cs.length;j++)
259 c = jQuery.trim(cs[j]).toLowerCase();
262 for (var i=0;i<this._commands.length;i++)
264 var m = this._commands[i];
265 if ((m._command === c) && (m._releaseOnly === r))
267 var cc = this._commands.splice(i,1);
298 for (var i=0; i<this._commands.length; i++)
300 if ( (e.type ===
"keydown" && !
this._commands[i]._releaseOnly) ||
301 (e.type ===
"keyup" && this._commands[i]._releaseOnly) )
305 if (!this._commands[i]._always &&
keyboard.ignore.indexOf( e.target.nodeName.toUpperCase() ) != -1)
308 x |= this._commands[i].exec(e);
322 if (this._defaultHandler)
323 return this._defaultHandler(e)
337 listen:
function(jq,_defaultHandler)
339 return new keyboard(jq,_defaultHandler);
386 this._releaseOnly = releaseOnly;
387 this._always = always;
388 this._command = command;
395 this._keyChar =
null;
397 this.
parse(jQuery.trim(command));
415 this._meta == e.metaKey &&
416 this._shift == e.shiftKey &&
417 this._alt == e.altKey &&
418 this._ctrl == e.ctrlKey
425 if (ubers || this._releaseOnly)
429 if (String.fromCharCode(e.keyCode) === this._keyChar || e.keyCode === this._keyChar)
462 c = c.replace(
" ",
"");
464 this._ctrl = (c.indexOf(
"ctrl")>-1) ?
true :
false;
465 this._alt = (c.indexOf(
"alt")>-1) ?
true :
false;
466 this._meta = ((c.indexOf(
"meta")>-1) || (c.indexOf(
"apple")>-1)) ? true :
false;
467 this._shift = (c.indexOf(
"shift")>-1) ?
true :
false;
469 if (c===
"-" || c===
"+")
472 this._keyChar = c.split(/[+-]/).pop().toUpperCase();
474 if (this._keyChar in
keyboard.codes)
keyboardCommand(command, functor, always, releaseOnly)
This library creates convenient methods for adding keyboard shortcuts to an application.
registerCommand(c, f, l, r, p)
Register a command with a keyboard listener.
init()
Return a new instance of a keyboard handler.
listen(jq, _defaultHandler)
unregisterCommand(c, r)
Unregister a command from a keyboard listener.
keyboard(obj, _defaultHandler)