Improvements to the keyboard.

Add a number pad to the keyboard.  Make it hidden by default for
RLG-Web.
This commit is contained in:
John "Elwin" Edwards 2012-06-23 17:11:51 -07:00
parent 9ddc3c685c
commit 2ab0de0799
6 changed files with 59 additions and 6 deletions

View file

@ -16,6 +16,7 @@
</div>
<div id="termwrap">TERM</div>
<div class="modal" id="keyboard">
<div id="keys">
<div class="keyrow">
<div class="key" onclick="vkey('`')">`</div>
<div class="key" onclick="vkey('1')">1</div>
@ -31,6 +32,9 @@
<div class="key" onclick="vkey('-')">-</div>
<div class="key" onclick="vkey('=')">=</div>
<div class="key" onclick="vkey('\b')" style="width: 2.5em">Bksp</div>
<div class="rkey" onclick="vkey('KP9')"></div>
<div class="rkey" onclick="vkey('KP8')"></div>
<div class="rkey" onclick="vkey('KP7')"></div>
</div>
<div class="keyrow">
<div class="key" onclick="vkey('\t')" style="width: 2.5em">Tab</div>
@ -47,6 +51,9 @@
<div class="key" onclick="vkey('[')">[</div>
<div class="key" onclick="vkey(']')">]</div>
<div class="key" onclick="vkey('\\')">\</div>
<div class="rkey" onclick="vkey('KP6')"></div>
<div class="rkey" onclick="vkey('KP5')">·</div>
<div class="rkey" onclick="vkey('KP4')"></div>
</div>
<div class="keyrow">
<div class="key" onclick="togglectrl()" id="ctrlkey">Ctrl</div>
@ -62,6 +69,9 @@
<div class="key" onclick="vkey(';')">;</div>
<div class="key" onclick="vkey('\'')">'</div>
<div class="key" onclick="vkey('\n')" style="width: 4em">Ret</div>
<div class="rkey" onclick="vkey('KP3')"></div>
<div class="rkey" onclick="vkey('KP2')"></div>
<div class="rkey" onclick="vkey('KP1')"></div>
</div>
<div class="keyrow">
<div class="key" onclick="toggleshift()" id="shiftkey">Shift</div>
@ -79,6 +89,8 @@
<div class="keyrow">
<div class="key" onclick="vkey(' ')" id="spacebar"></div>
</div>
</div>
<div class="centerb"><span class="ibutton" onclick="toggleBlock('keys')">Keyboard</span></div>
<div class="rfloat"><span class="ibutton" onclick="stop()">Stop</span></div>
<div class="rfloat">Font:
<span onclick="textsize(false)" class="ibutton">Smaller</span>
@ -105,7 +117,7 @@
</div>
<div class="modal" id="register">
<div class="formtable">
<div><div>Name:</div><div><input type="text" name="name" id="regin_name"></div></div>
<div><div>Name:</div><div><input type="text" name="name" id="regin_name" maxlength="10"></div></div>
<div><div>Password:</div><div><input type="password" name="pw" id="regin_pw"></div></div>
<div><div>E-mail (optional):</div><div><input type="text" name="email" id="regin_email"></div></div>
<div>
@ -115,7 +127,7 @@
</div>
</div>
<div class="modal" id="misc">
<div class="centerb"><span class="ibutton" onclick="toggledebug()">Messages</span></div>
<div class="centerb"><span class="ibutton" onclick="toggleBlock('debug')">Messages</span></div>
</div>
<div id="debug">
</div>

View file

@ -31,6 +31,9 @@ Browsing with Javascript turned off? I sympathize. I didn't want Javascript to
<div class="key" onclick="vkey('-')">-</div>
<div class="key" onclick="vkey('=')">=</div>
<div class="key" onclick="vkey('\b')" style="width: 2.5em">Bksp</div>
<div class="rkey" onclick="vkey('KP9')"></div>
<div class="rkey" onclick="vkey('KP8')"></div>
<div class="rkey" onclick="vkey('KP7')"></div>
</div>
<div class="keyrow">
<div class="key" onclick="vkey('\t')" style="width: 2.5em">Tab</div>
@ -47,6 +50,9 @@ Browsing with Javascript turned off? I sympathize. I didn't want Javascript to
<div class="key" onclick="vkey('[')">[</div>
<div class="key" onclick="vkey(']')">]</div>
<div class="key" onclick="vkey('\\')">\</div>
<div class="rkey" onclick="vkey('KP6')"></div>
<div class="rkey" onclick="vkey('KP5')">·</div>
<div class="rkey" onclick="vkey('KP4')"></div>
</div>
<div class="keyrow">
<div class="key" onclick="togglectrl()" id="ctrlkey">Ctrl</div>
@ -62,6 +68,9 @@ Browsing with Javascript turned off? I sympathize. I didn't want Javascript to
<div class="key" onclick="vkey(';')">;</div>
<div class="key" onclick="vkey('\'')">'</div>
<div class="key" onclick="vkey('\n')" style="width: 4em">Ret</div>
<div class="rkey" onclick="vkey('KP3')"></div>
<div class="rkey" onclick="vkey('KP2')"></div>
<div class="rkey" onclick="vkey('KP1')"></div>
</div>
<div class="keyrow">
<div class="key" onclick="toggleshift()" id="shiftkey">Shift</div>

View file

@ -327,6 +327,10 @@ var charshifts = { '-': "5f", '=': "2b", '[': "7b", ']': "7d", '\\': "7c",
';': "3a", '\'': "22", ',': "3c", '.': "3e", '/': "3f", '`': "7e"
}
var kpkeys = { "KP1": "1b4f46", "KP2": "1b4f42", "KP3": "1b5b367e",
"KP4": "1b4f44", "KP5": "1b5b45", "KP6": "1b4f43",
"KP7": "1b4f48", "KP8": "1b4f41", "KP9": "1b5b357e" };
function vkey(c) {
if (!session.playing)
return;
@ -363,6 +367,9 @@ function vkey(c) {
else
keystr = c.charCodeAt(0).toString(16);
}
else if (c in kpkeys) {
keystr = kpkeys[c];
}
else
return;
var datareq = new XMLHttpRequest();
@ -760,11 +767,14 @@ function setmode(mode, ev) {
}
}
function toggledebug() {
if (document.getElementById("debug").style.display != "block")
document.getElementById("debug").style.display = "block";
function toggleBlock(id) {
var element = document.getElementById(id);
if (!element)
return;
if (element.style.display != "block")
element.style.display = "block";
else
document.getElementById("debug").style.display = "none";
element.style.display = "none";
}
function debug(level, msg) {

View file

@ -260,6 +260,10 @@ var charshifts = { '-': "5f", '=': "2b", '[': "7b", ']': "7d", '\\': "7c",
';': "3a", '\'': "22", ',': "3c", '.': "3e", '/': "3f", '`': "7e"
}
var kpkeys = { "KP1": "1b4f46", "KP2": "1b4f42", "KP3": "1b5b367e",
"KP4": "1b4f44", "KP5": "1b5b45", "KP6": "1b4f43",
"KP7": "1b4f48", "KP8": "1b4f41", "KP9": "1b5b357e" };
function vkey(c) {
var keystr;
if (c.match(/^[a-z]$/)) {
@ -294,6 +298,9 @@ function vkey(c) {
else
keystr = c.charCodeAt(0).toString(16);
}
else if (c in kpkeys) {
keystr = kpkeys[c];
}
else
return;
//writeData("Sending " + keystr);

View file

@ -21,6 +21,7 @@ div.rfloat {
}
div.centerb {
clear: both;
margin: 0.2em;
padding: 0.4em;
text-align: center;
@ -74,6 +75,10 @@ div#nogames {
text-align: center;
}
div#keys {
display: none;
}
div#debug {
display: none;
}

10
tty.css
View file

@ -23,6 +23,16 @@ div.key {
background-color: white;
color: black;
}
div.rkey {
width: 2em;
height: 2em;
float: right;
border: 2px solid black;
margin: 0.2em;
text-align: center;
background-color: white;
color: black;
}
div.keysel {
width: 2em;
height: 2em;