keyboard.html revision 666fb1af175d6536aa882340e6249b6733bf6bf2
dd5e6c0fb2c0b7982b165d58d06c336362a59e92Dav Glass <!-- reset the default browser styles -->
dd5e6c0fb2c0b7982b165d58d06c336362a59e92Dav Glass height:100%;
a3eb4ece3de41a536cc59498ef19ffbab1c4dfbfDav Glass font-size:6em;
a3eb4ece3de41a536cc59498ef19ffbab1c4dfbfDav Glass border:dotted;
a3eb4ece3de41a536cc59498ef19ffbab1c4dfbfDav Glass font-family: Terminal, monospace;
a3eb4ece3de41a536cc59498ef19ffbab1c4dfbfDav Glass text-align:center;
a3eb4ece3de41a536cc59498ef19ffbab1c4dfbfDav Glass display:inline-block;
dd5e6c0fb2c0b7982b165d58d06c336362a59e92Dav Glass padding:10px;
dd5e6c0fb2c0b7982b165d58d06c336362a59e92Dav Glass background-color: #444444;
dd5e6c0fb2c0b7982b165d58d06c336362a59e92Dav Glass background-image: -webkit-linear-gradient(top, #ccc, #999); /* FF3.6 */
dd5e6c0fb2c0b7982b165d58d06c336362a59e92Dav Glass background-image: -moz-linear-gradient(top, #ccc, #999); /* FF3.6 */
dd5e6c0fb2c0b7982b165d58d06c336362a59e92Dav Glass position: absolute;
dd5e6c0fb2c0b7982b165d58d06c336362a59e92Dav Glass body .yui3-button-selected {
dd5e6c0fb2c0b7982b165d58d06c336362a59e92Dav Glass background-color:#666;
dd5e6c0fb2c0b7982b165d58d06c336362a59e92Dav Glass color:white;
9eacd4f0aa36d89d83ef25c2ea6e6bf265ab08abDav Glass body .yui3-button{
9eacd4f0aa36d89d83ef25c2ea6e6bf265ab08abDav Glass font-size:2em;
body .yui3-button.space {
textarea = Y.one("#output");
Y.Array.each(keys, function(key){
var button = new Y.ButtonGenerator({
var node = button.getDOMNode();
node.set('name', key);
if (key[0] === "[" && key.length > 1) {
node.addClass('wide');
node.addClass('space');
Y.one("#keyboard").append(node);
button.set('type', 'toggle');
nodeList = Y.all('#keyboard .yui3-button');
Y.Array.each(altKeys, function(pair){
nodeList.each(function(node){
if (node.getContent() === pair[x]) {
node.setContent(pair[y]);
var nodeList = Y.all('#keyboard .yui3-button');
nodeList.each(function(node){
var key = node.getContent();
if (key.length === 1) { // Only need to worry about the 1-character 'input' buttons
key = key.toUpperCase();
key = key.toLowerCase();
node.setContent(key);
Y.one("#keyboard").delegate("click", function(e){
key = e.target.getContent();
content = Y.one("#output").get("value");
newContent = Y.Lang.trimRight(newContent);
textarea.set('value', newContent);
textarea.set('value', content + '\t');
textarea.set('value', content + ' ');
textarea.set('value', content + '\n');
key = key.toUpperCase();
textarea.set('value', content + key);
Y.one("#output").on(["keydown", "keyup"], function(e){
Y.Object.some(codes, function(val, key){
if (e.button === val) {
node = Y.one('#keyboard .yui3-button[name='+ pressed +']');
node.toggleClass('yui3-button-selected');