Put common key tables into a common file.
This commit is contained in:
parent
797e84ed08
commit
f40a08f3ef
5 changed files with 69 additions and 128 deletions
|
|
@ -3,6 +3,7 @@
|
||||||
<head>
|
<head>
|
||||||
<title>WebTTY</title>
|
<title>WebTTY</title>
|
||||||
<script type="text/javascript" src="termemu.js"></script>
|
<script type="text/javascript" src="termemu.js"></script>
|
||||||
|
<script type="text/javascript" src="termemu-keys.js"></script>
|
||||||
<script type="text/javascript" src="rlgterm.js"></script>
|
<script type="text/javascript" src="rlgterm.js"></script>
|
||||||
<link rel="stylesheet" type="text/css" href="tty.css">
|
<link rel="stylesheet" type="text/css" href="tty.css">
|
||||||
</head>
|
</head>
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@
|
||||||
<head>
|
<head>
|
||||||
<title>WebTTY</title>
|
<title>WebTTY</title>
|
||||||
<script type="text/javascript" src="termemu.js"></script>
|
<script type="text/javascript" src="termemu.js"></script>
|
||||||
|
<script type="text/javascript" src="termemu-keys.js"></script>
|
||||||
<script type="text/javascript" src="shterm.js"></script>
|
<script type="text/javascript" src="shterm.js"></script>
|
||||||
<link rel="stylesheet" type="text/css" href="tty.css">
|
<link rel="stylesheet" type="text/css" href="tty.css">
|
||||||
</head>
|
</head>
|
||||||
|
|
|
||||||
63
rlgterm.js
63
rlgterm.js
|
|
@ -181,69 +181,6 @@ function sendback(str) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ASCII values of keys 0-9. */
|
|
||||||
var numShifts = [41, 33, 64, 35, 36, 37, 94, 38, 42, 40];
|
|
||||||
|
|
||||||
var keyHexCodes = {
|
|
||||||
init: function () {
|
|
||||||
this[KeyboardEvent.DOM_VK_RETURN] = ["0d", "0d"];
|
|
||||||
this[KeyboardEvent.DOM_VK_SPACE] = ["20", "20"];
|
|
||||||
this[KeyboardEvent.DOM_VK_TAB] = ["09", "09"];
|
|
||||||
this[KeyboardEvent.DOM_VK_BACK_QUOTE] = ["60", "7e"];
|
|
||||||
this[KeyboardEvent.DOM_VK_OPEN_BRACKET] = ["5b", "7b"];
|
|
||||||
this[KeyboardEvent.DOM_VK_CLOSE_BRACKET] = ["5d", "7d"];
|
|
||||||
this[KeyboardEvent.DOM_VK_BACK_SLASH] = ["5c", "7c"];
|
|
||||||
this[KeyboardEvent.DOM_VK_SEMICOLON] = ["3b", "3a"];
|
|
||||||
this[KeyboardEvent.DOM_VK_QUOTE] = ["27", "22"];
|
|
||||||
this[KeyboardEvent.DOM_VK_COMMA] = ["2c", "3c"];
|
|
||||||
this[KeyboardEvent.DOM_VK_PERIOD] = ["2e", "3e"];
|
|
||||||
this[KeyboardEvent.DOM_VK_SLASH] = ["2f", "3f"];
|
|
||||||
this[KeyboardEvent.DOM_VK_EQUALS] = ["3d", "2b"];
|
|
||||||
this[KeyboardEvent.DOM_VK_SUBTRACT] = ["2d", "5f"];
|
|
||||||
this[KeyboardEvent.DOM_VK_BACK_SPACE] = ["08", "08"];
|
|
||||||
this[KeyboardEvent.DOM_VK_ESCAPE] = ["1b", "1b"];
|
|
||||||
/* Multi-char control sequences! Neat! */
|
|
||||||
this[KeyboardEvent.DOM_VK_PAGE_UP] = ["1b5b357e", "1b5b357e"];
|
|
||||||
this[KeyboardEvent.DOM_VK_PAGE_DOWN] = ["1b5b367e", "1b5b367e"];
|
|
||||||
this.appCursor(false);
|
|
||||||
this.appKeypad(false);
|
|
||||||
},
|
|
||||||
appCursor: function (on) {
|
|
||||||
if (on) {
|
|
||||||
this[KeyboardEvent.DOM_VK_LEFT] = ["1b4f44", "1b4f44"];
|
|
||||||
this[KeyboardEvent.DOM_VK_RIGHT] = ["1b4f43", "1b4f43"];
|
|
||||||
this[KeyboardEvent.DOM_VK_UP] = ["1b4f41", "1b4f41"];
|
|
||||||
this[KeyboardEvent.DOM_VK_DOWN] = ["1b4f42", "1b4f42"];
|
|
||||||
this[KeyboardEvent.DOM_VK_END] = ["1b4f46", "1b4f46"];
|
|
||||||
this[KeyboardEvent.DOM_VK_HOME] = ["1b4f48", "1b4f48"];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
this[KeyboardEvent.DOM_VK_LEFT] = ["1b5b44", "1b5b44"];
|
|
||||||
this[KeyboardEvent.DOM_VK_RIGHT] = ["1b5b43", "1b5b43"];
|
|
||||||
this[KeyboardEvent.DOM_VK_UP] = ["1b5b41", "1b5b41"];
|
|
||||||
this[KeyboardEvent.DOM_VK_DOWN] = ["1b5b42", "1b5b42"];
|
|
||||||
this[KeyboardEvent.DOM_VK_END] = ["1b5b46", "1b5b46"];
|
|
||||||
this[KeyboardEvent.DOM_VK_HOME] = ["1b5b48", "1b5b48"];
|
|
||||||
}
|
|
||||||
},
|
|
||||||
appKeypad: function (on) {
|
|
||||||
/* In theory, these should produce either numerals or the k[a-c][1-3]
|
|
||||||
* sequences. Since we can't count on the terminfo description actually
|
|
||||||
* containing those sequences, pretend they're just arrow keys etc.
|
|
||||||
*/
|
|
||||||
this[KeyboardEvent.DOM_VK_NUMPAD1] = ["1b4f46", "1b4f46"];
|
|
||||||
this[KeyboardEvent.DOM_VK_NUMPAD2] = ["1b4f42", "1b4f42"];
|
|
||||||
this[KeyboardEvent.DOM_VK_NUMPAD3] = ["1b5b367e", "1b5b367e"];
|
|
||||||
this[KeyboardEvent.DOM_VK_NUMPAD4] = ["1b4f44", "1b4f44"];
|
|
||||||
this[KeyboardEvent.DOM_VK_NUMPAD5] = ["1b5b45", "1b5b45"];
|
|
||||||
this[KeyboardEvent.DOM_VK_NUMPAD6] = ["1b4f43", "1b4f43"];
|
|
||||||
this[KeyboardEvent.DOM_VK_NUMPAD7] = ["1b4f48", "1b4f48"];
|
|
||||||
this[KeyboardEvent.DOM_VK_NUMPAD8] = ["1b4f41", "1b4f41"];
|
|
||||||
this[KeyboardEvent.DOM_VK_NUMPAD9] = ["1b5b357e", "1b5b357e"];
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
function sendkey(ev) {
|
function sendkey(ev) {
|
||||||
if (termemu.sessid == null)
|
if (termemu.sessid == null)
|
||||||
return;
|
return;
|
||||||
|
|
|
||||||
65
shterm.js
65
shterm.js
|
|
@ -174,71 +174,6 @@ function sendback(str) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ASCII values of keys 0-9. */
|
|
||||||
var numShifts = [41, 33, 64, 35, 36, 37, 94, 38, 42, 40];
|
|
||||||
|
|
||||||
var keyHexCodes = {
|
|
||||||
init: function () {
|
|
||||||
this[KeyboardEvent.DOM_VK_RETURN] = ["0d", "0d"];
|
|
||||||
this[KeyboardEvent.DOM_VK_SPACE] = ["20", "20"];
|
|
||||||
this[KeyboardEvent.DOM_VK_TAB] = ["09", "09"];
|
|
||||||
this[KeyboardEvent.DOM_VK_BACK_QUOTE] = ["60", "7e"];
|
|
||||||
this[KeyboardEvent.DOM_VK_OPEN_BRACKET] = ["5b", "7b"];
|
|
||||||
this[KeyboardEvent.DOM_VK_CLOSE_BRACKET] = ["5d", "7d"];
|
|
||||||
this[KeyboardEvent.DOM_VK_BACK_SLASH] = ["5c", "7c"];
|
|
||||||
this[KeyboardEvent.DOM_VK_SEMICOLON] = ["3b", "3a"];
|
|
||||||
this[KeyboardEvent.DOM_VK_QUOTE] = ["27", "22"];
|
|
||||||
this[KeyboardEvent.DOM_VK_COMMA] = ["2c", "3c"];
|
|
||||||
this[KeyboardEvent.DOM_VK_PERIOD] = ["2e", "3e"];
|
|
||||||
this[KeyboardEvent.DOM_VK_SLASH] = ["2f", "3f"];
|
|
||||||
this[KeyboardEvent.DOM_VK_EQUALS] = ["3d", "2b"];
|
|
||||||
this[KeyboardEvent.DOM_VK_SUBTRACT] = ["2d", "5f"];
|
|
||||||
this[KeyboardEvent.DOM_VK_BACK_SPACE] = ["08", "08"];
|
|
||||||
this[KeyboardEvent.DOM_VK_DELETE] = ["1b5b337e", "1b5b337e"];
|
|
||||||
this[KeyboardEvent.DOM_VK_ESCAPE] = ["1b", "1b"];
|
|
||||||
this[KeyboardEvent.DOM_VK_PAGE_UP] = ["1b5b357e", "1b5b357e"];
|
|
||||||
this[KeyboardEvent.DOM_VK_PAGE_DOWN] = ["1b5b367e", "1b5b367e"];
|
|
||||||
this.appCursor(false);
|
|
||||||
this.appKeypad(false);
|
|
||||||
},
|
|
||||||
/* Multi-char control sequences! Neat! */
|
|
||||||
appCursor: function (on) {
|
|
||||||
/* Aren't special keys vile? */
|
|
||||||
if (on) {
|
|
||||||
this[KeyboardEvent.DOM_VK_LEFT] = ["1b4f44", "1b4f44"];
|
|
||||||
this[KeyboardEvent.DOM_VK_RIGHT] = ["1b4f43", "1b4f43"];
|
|
||||||
this[KeyboardEvent.DOM_VK_UP] = ["1b4f41", "1b4f41"];
|
|
||||||
this[KeyboardEvent.DOM_VK_DOWN] = ["1b4f42", "1b4f42"];
|
|
||||||
this[KeyboardEvent.DOM_VK_END] = ["1b4f46", "1b4f46"];
|
|
||||||
this[KeyboardEvent.DOM_VK_HOME] = ["1b4f48", "1b4f48"];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
this[KeyboardEvent.DOM_VK_LEFT] = ["1b5b44", "1b5b44"];
|
|
||||||
this[KeyboardEvent.DOM_VK_RIGHT] = ["1b5b43", "1b5b43"];
|
|
||||||
this[KeyboardEvent.DOM_VK_UP] = ["1b5b41", "1b5b41"];
|
|
||||||
this[KeyboardEvent.DOM_VK_DOWN] = ["1b5b42", "1b5b42"];
|
|
||||||
this[KeyboardEvent.DOM_VK_END] = ["1b5b46", "1b5b46"];
|
|
||||||
this[KeyboardEvent.DOM_VK_HOME] = ["1b5b48", "1b5b48"];
|
|
||||||
}
|
|
||||||
},
|
|
||||||
appKeypad: function (on) {
|
|
||||||
/* In theory, these should produce either numerals or the k[a-c][1-3]
|
|
||||||
* sequences. Since we can't count on the terminfo description actually
|
|
||||||
* containing those sequences, pretend they're just arrow keys etc.
|
|
||||||
*/
|
|
||||||
this[KeyboardEvent.DOM_VK_NUMPAD1] = ["1b4f46", "1b4f46"];
|
|
||||||
this[KeyboardEvent.DOM_VK_NUMPAD2] = ["1b4f42", "1b4f42"];
|
|
||||||
this[KeyboardEvent.DOM_VK_NUMPAD3] = ["1b5b367e", "1b5b367e"];
|
|
||||||
this[KeyboardEvent.DOM_VK_NUMPAD4] = ["1b4f44", "1b4f44"];
|
|
||||||
this[KeyboardEvent.DOM_VK_NUMPAD5] = ["1b5b45", "1b5b45"];
|
|
||||||
this[KeyboardEvent.DOM_VK_NUMPAD6] = ["1b4f43", "1b4f43"];
|
|
||||||
this[KeyboardEvent.DOM_VK_NUMPAD7] = ["1b4f48", "1b4f48"];
|
|
||||||
this[KeyboardEvent.DOM_VK_NUMPAD8] = ["1b4f41", "1b4f41"];
|
|
||||||
this[KeyboardEvent.DOM_VK_NUMPAD9] = ["1b5b357e", "1b5b357e"];
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
function sendkey(ev) {
|
function sendkey(ev) {
|
||||||
var keynum = ev.keyCode;
|
var keynum = ev.keyCode;
|
||||||
var code;
|
var code;
|
||||||
|
|
|
||||||
67
termemu-keys.js
Normal file
67
termemu-keys.js
Normal file
|
|
@ -0,0 +1,67 @@
|
||||||
|
/* termemu-keys.js: some key-handling code common to both drivers. */
|
||||||
|
|
||||||
|
/* ASCII values of keys 0-9. */
|
||||||
|
var numShifts = [41, 33, 64, 35, 36, 37, 94, 38, 42, 40];
|
||||||
|
|
||||||
|
var keyHexCodes = {
|
||||||
|
init: function () {
|
||||||
|
this[KeyboardEvent.DOM_VK_RETURN] = ["0d", "0d"];
|
||||||
|
this[KeyboardEvent.DOM_VK_SPACE] = ["20", "20"];
|
||||||
|
this[KeyboardEvent.DOM_VK_TAB] = ["09", "09"];
|
||||||
|
this[KeyboardEvent.DOM_VK_BACK_QUOTE] = ["60", "7e"];
|
||||||
|
this[KeyboardEvent.DOM_VK_OPEN_BRACKET] = ["5b", "7b"];
|
||||||
|
this[KeyboardEvent.DOM_VK_CLOSE_BRACKET] = ["5d", "7d"];
|
||||||
|
this[KeyboardEvent.DOM_VK_BACK_SLASH] = ["5c", "7c"];
|
||||||
|
this[KeyboardEvent.DOM_VK_SEMICOLON] = ["3b", "3a"];
|
||||||
|
this[KeyboardEvent.DOM_VK_QUOTE] = ["27", "22"];
|
||||||
|
this[KeyboardEvent.DOM_VK_COMMA] = ["2c", "3c"];
|
||||||
|
this[KeyboardEvent.DOM_VK_PERIOD] = ["2e", "3e"];
|
||||||
|
this[KeyboardEvent.DOM_VK_SLASH] = ["2f", "3f"];
|
||||||
|
this[KeyboardEvent.DOM_VK_EQUALS] = ["3d", "2b"];
|
||||||
|
this[KeyboardEvent.DOM_VK_SUBTRACT] = ["2d", "5f"];
|
||||||
|
this[KeyboardEvent.DOM_VK_BACK_SPACE] = ["08", "08"];
|
||||||
|
this[KeyboardEvent.DOM_VK_DELETE] = ["1b5b337e", "1b5b337e"];
|
||||||
|
this[KeyboardEvent.DOM_VK_ESCAPE] = ["1b", "1b"];
|
||||||
|
this[KeyboardEvent.DOM_VK_PAGE_UP] = ["1b5b357e", "1b5b357e"];
|
||||||
|
this[KeyboardEvent.DOM_VK_PAGE_DOWN] = ["1b5b367e", "1b5b367e"];
|
||||||
|
this.appCursor(false);
|
||||||
|
this.appKeypad(false);
|
||||||
|
},
|
||||||
|
/* Multi-char control sequences! Neat! */
|
||||||
|
appCursor: function (on) {
|
||||||
|
/* Aren't special keys vile? */
|
||||||
|
if (on) {
|
||||||
|
this[KeyboardEvent.DOM_VK_LEFT] = ["1b4f44", "1b4f44"];
|
||||||
|
this[KeyboardEvent.DOM_VK_RIGHT] = ["1b4f43", "1b4f43"];
|
||||||
|
this[KeyboardEvent.DOM_VK_UP] = ["1b4f41", "1b4f41"];
|
||||||
|
this[KeyboardEvent.DOM_VK_DOWN] = ["1b4f42", "1b4f42"];
|
||||||
|
this[KeyboardEvent.DOM_VK_END] = ["1b4f46", "1b4f46"];
|
||||||
|
this[KeyboardEvent.DOM_VK_HOME] = ["1b4f48", "1b4f48"];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
this[KeyboardEvent.DOM_VK_LEFT] = ["1b5b44", "1b5b44"];
|
||||||
|
this[KeyboardEvent.DOM_VK_RIGHT] = ["1b5b43", "1b5b43"];
|
||||||
|
this[KeyboardEvent.DOM_VK_UP] = ["1b5b41", "1b5b41"];
|
||||||
|
this[KeyboardEvent.DOM_VK_DOWN] = ["1b5b42", "1b5b42"];
|
||||||
|
this[KeyboardEvent.DOM_VK_END] = ["1b5b46", "1b5b46"];
|
||||||
|
this[KeyboardEvent.DOM_VK_HOME] = ["1b5b48", "1b5b48"];
|
||||||
|
}
|
||||||
|
},
|
||||||
|
appKeypad: function (on) {
|
||||||
|
/* In theory, these should produce either numerals or the k[a-c][1-3]
|
||||||
|
* sequences. Since we can't count on the terminfo description actually
|
||||||
|
* containing those sequences, pretend they're just arrow keys etc.
|
||||||
|
*/
|
||||||
|
this[KeyboardEvent.DOM_VK_NUMPAD1] = ["1b4f46", "1b4f46"];
|
||||||
|
this[KeyboardEvent.DOM_VK_NUMPAD2] = ["1b4f42", "1b4f42"];
|
||||||
|
this[KeyboardEvent.DOM_VK_NUMPAD3] = ["1b5b367e", "1b5b367e"];
|
||||||
|
this[KeyboardEvent.DOM_VK_NUMPAD4] = ["1b4f44", "1b4f44"];
|
||||||
|
this[KeyboardEvent.DOM_VK_NUMPAD5] = ["1b5b45", "1b5b45"];
|
||||||
|
this[KeyboardEvent.DOM_VK_NUMPAD6] = ["1b4f43", "1b4f43"];
|
||||||
|
this[KeyboardEvent.DOM_VK_NUMPAD7] = ["1b4f48", "1b4f48"];
|
||||||
|
this[KeyboardEvent.DOM_VK_NUMPAD8] = ["1b4f41", "1b4f41"];
|
||||||
|
this[KeyboardEvent.DOM_VK_NUMPAD9] = ["1b5b357e", "1b5b357e"];
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue