Skip to content

Commit

Permalink
Merge pull request DefinitelyTyped#2779 from rcchen/master
Browse files Browse the repository at this point in the history
Add typings for Keypress v2.0.3
  • Loading branch information
vvakame committed Sep 6, 2014
2 parents 7e492ce + 81f4b1f commit 0031a67
Show file tree
Hide file tree
Showing 3 changed files with 123 additions and 0 deletions.
1 change: 1 addition & 0 deletions CONTRIBUTORS.md
Original file line number Diff line number Diff line change
Expand Up @@ -216,6 +216,7 @@ All definitions files include a header with the author and editors, so at some p
* [JWPlayer](http://developer.longtailvideo.com/trac/) (by [Martin Duparc](https://github.com/martinduparc/))
* [KeyboardJS](https://github.com/RobertWHurst/KeyboardJS) (by [Vincent Bortone](https://github.com/vbortone/))
* [keymaster.js](https://github.com/madrobby/keymaster) (by [Marting W. Kirst](https://github.com/nitram509/))
* [Keypress](https://github.com/dmauro/Keypress/) (by [Roger Chen](https://github.com/rcchen/))
* [KineticJS](http://kineticjs.com/) (by [Basarat Ali Syed](https://github.com/basarat))
* [Knockback](http://kmalakoff.github.com/knockback/) (by [Marcel Binot](https://github.com/docgit))
* [Knockout.js](http://knockoutjs.com/) (by [Boris Yankov](https://github.com/borisyankov))
Expand Down
61 changes: 61 additions & 0 deletions keypress/keypress-tests.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
/// <reference path="keypress.d.ts"/>

module KeypressComboTests {
var listener = new window.keypress.Listener();

var copyCombo = <Keypress.Combo>{
keys: "cmd c",
on_keydown: () => {
console.log("Key down");
},
on_keyup: () => {
console.log("Key up");
},
on_release: () => {
console.log("Released");
},
prevent_default: true,
prevent_repeat: false,
is_unordered: true,
is_counting: false,
is_exclusive: false,
is_sequence: true,
is_solitary: true
};

var pasteCombo = <Keypress.Combo>{
keys: "ctrl v",
on_keydown: () => {
console.log("Paste");
},
prevent_default: true,
prevent_repeat: true,
is_exclusive: true
};

listener.register_combo(copyCombo);
listener.unregister_combo("cmd c");

listener.register_many([copyCombo, pasteCombo]);
listener.stop_listening();
listener.listen();
listener.unregister_many(["cmd c", "cmd v"]);

listener.reset();
}

module KeypressBindingTests {
var element = document.createElement('div');
var defaults = <Keypress.ListenerDefaults>{
prevent_default: true,
prevent_repeat: true,
is_unordered: true,
is_counting: false,
is_exclusive: false,
is_solitary: false,
is_sequence: false
};
var listener = new window.keypress.Listener(element);
listener = new window.keypress.Listener(element, defaults);
listener.reset();
}
61 changes: 61 additions & 0 deletions keypress/keypress.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
// Type definitions for Keypress v2.0.3
// Project: https://github.com/dmauro/Keypress/
// Definitions by: Roger Chen <https://github.com/rcchen>
// Definitions: https://github.com/borisyankov/DefinitelyTyped

// A keyboard input capturing utility in which any key can be a modifier key.
declare module Keypress {

interface ListenerDefaults {
keys: string;
prevent_default: boolean;
prevent_repeat: boolean;
is_unordered: boolean;
is_counting: boolean;
is_exclusive: boolean;
is_solitary: boolean;
is_sequence: boolean;
}

interface Combo {
keys: string;
on_keydown: () => any;
on_keyup: () => any;
on_release: () => any;
this: Element;
prevent_default: boolean;
prevent_repeat: boolean;
is_unordered: boolean;
is_counting: boolean;
is_exclusive: boolean;
is_sequence: boolean;
is_solitary: boolean;
}

interface Listener {
new(element: Element, defaults: ListenerDefaults): Listener;
new(element: Element): Listener;
new(): Listener;
simple_combo(keys: string, on_keydown_callback: () => any): void;
counting_combo(keys: string, on_count_callback: () => any): void;
sequence_combo(keys: string, callback: () => any): void;
register_combo(combo: Combo): void;
unregister_combo(combo: Combo): void;
unregister_combo(keys: string): void;
register_many(combos: Combo[]): void;
unregister_many(combos: Combo[]): void;
unregister_many(keys: string[]): void;
get_registered_combos(): Combo[];
reset(): void;
listen(): void;
stop_listening(): void;
}

interface Keypress {
Listener: Listener;
}
}

interface Window {
keypress: Keypress.Keypress;
}

0 comments on commit 0031a67

Please sign in to comment.