From 3a09e4dd09a6af3b228fcda68aa0709626b5ee51 Mon Sep 17 00:00:00 2001 From: Teddy Wing Date: Sat, 23 May 2015 16:21:38 -0400 Subject: Set up Bower. Install Mousetrap. * Create limited bower.json file * Create .bowerrc that tells Bower to use the `lib` directory * Install Mousetrap for key events --- lib/mousetrap/plugins/record/tests/index.html | 29 +++++++++++++++ lib/mousetrap/plugins/record/tests/jelly.css | 18 +++++++++ lib/mousetrap/plugins/record/tests/jelly.js | 53 +++++++++++++++++++++++++++ 3 files changed, 100 insertions(+) create mode 100644 lib/mousetrap/plugins/record/tests/index.html create mode 100644 lib/mousetrap/plugins/record/tests/jelly.css create mode 100644 lib/mousetrap/plugins/record/tests/jelly.js (limited to 'lib/mousetrap/plugins/record/tests') diff --git a/lib/mousetrap/plugins/record/tests/index.html b/lib/mousetrap/plugins/record/tests/index.html new file mode 100644 index 0000000..5608f09 --- /dev/null +++ b/lib/mousetrap/plugins/record/tests/index.html @@ -0,0 +1,29 @@ + + + + + Jelly + + + + + +

Jelly

+ +

For testing the record extension

+ +

Click "Record" to test recording a sequence.

+ +
+ + + + + + + + + + diff --git a/lib/mousetrap/plugins/record/tests/jelly.css b/lib/mousetrap/plugins/record/tests/jelly.css new file mode 100644 index 0000000..a071c77 --- /dev/null +++ b/lib/mousetrap/plugins/record/tests/jelly.css @@ -0,0 +1,18 @@ +body { + font-family: helvetica, arial, sans-serif; + line-height: 20px; +} + +kbd { + background-color: #ccc; + display: inline-block; + padding: 0.5ex 1em; +} + +.test-record-result { + margin-top: 20px; +} + +.test-record-result span:nth-child(n+2) { + margin-left: 10px; +} diff --git a/lib/mousetrap/plugins/record/tests/jelly.js b/lib/mousetrap/plugins/record/tests/jelly.js new file mode 100644 index 0000000..57ff01a --- /dev/null +++ b/lib/mousetrap/plugins/record/tests/jelly.js @@ -0,0 +1,53 @@ +/** + * Peanut butter goes great with jelly. + * + * @author Dan Tao + */ +var Jelly = (function() { + var recordButton = $("button.test-record"), + recordResult = $("div.test-record-result"); + + function _formatSequenceAsHtml(sequence) { + var combos = [], + i; + + for (i = 0; i < sequence.length; ++i) { + combos.push('' + _formatKeysAsHtml(sequence[i].split('+')) + ''); + } + + return combos.join(' '); + } + + function _formatKeysAsHtml(keys) { + var htmlKeys = [], + i; + + for (i = 0; i < keys.length; ++i) { + htmlKeys.push('' + keys[i] + ''); + } + + return htmlKeys.join('+'); + } + + function _prepareRecordTest() { + recordButton.prop('disabled', true); + recordButton.text('Recording'); + + Mousetrap.record(function(sequence) { + recordResult.html(_formatSequenceAsHtml(sequence)); + recordButton.prop('disabled', false); + recordButton.text('Record'); + }); + + // take focus away from the button so that Mousetrap will actually + // capture keystrokes + recordButton.blur(); + } + + return { + spread: function() { + recordButton.click(_prepareRecordTest); + } + }; + +})(); -- cgit v1.2.3