3 <head><title>Input Test
</title></head>
8 <span id=
"button-selection" style=
"display: none;">
9 <input id=
"button1" type=
"button" value=
"L"><input id=
"button2" type=
"button" value=
"M"><input id=
"button4" type=
"button" value=
"R">
12 <canvas id=
"canvas" width=
"640" height=
"20"
13 style=
"border-style: dotted; border-width: 1px;">
19 <textarea id=
"messages" style=
"font-size: 9;" cols=
80 rows=
25></textarea>
23 <script type='text/javascript'
24 src='http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js'></script>
26 <script src=
"../core/util.js"></script>
27 <script src=
"../app/webutil.js"></script>
28 <script src=
"../core/base64.js"></script>
29 <script src=
"../core/keysym.js"></script>
30 <script src=
"../core/keysymdef.js"></script>
31 <script src=
"../core/xtscancodes.js"></script>
32 <script src=
"../core/keyboard.js"></script>
33 <script src=
"../core/input.js"></script>
34 <script src=
"../core/display.js"></script>
36 var msg_cnt =
0, iterations,
37 width =
400, height =
200,
38 canvas, keyboard, mouse;
41 if (Util.Engine.trident) {
42 var newline =
"<br>\n";
45 function message(str) {
47 cell = document.getElementById('messages');
48 cell.innerHTML += msg_cnt +
": " + str + newline;
49 cell.scrollTop = cell.scrollHeight;
53 function mouseButton(x, y, down, bmask) {
54 msg = 'mouse x,y: ' + x + ',' + y + ' down: ' + down;
55 msg += ' bmask: ' + bmask;
59 function mouseMove(x, y) {
60 msg = 'mouse x,y: ' + x + ',' + y;
64 function rfbKeyPress(keysym, down) {
65 var d = down ?
"down" :
" up ";
66 var key = keysyms.lookup(keysym);
67 var msg =
"RFB keypress " + d +
" keysym: " + keysym;
68 if (key && key.keyname) {
69 msg +=
" key name: " + key.keyname;
74 msg =
"raw key event " + e.type +
75 " (key: " + e.keyCode +
", char: " + e.charCode +
76 ", which: " + e.which +
")";
80 function selectButton(num) {
81 var b, blist = [
1,
2,
4];
83 if (typeof num === 'undefined') {
85 num = mouse.get_touchButton();
86 } else if (num === mouse.get_touchButton()) {
87 // Set all buttons off (no clicks)
88 mouse.set_touchButton(
0);
92 mouse.set_touchButton(num);
95 for (b =
0; b < blist.length; b++) {
96 if (blist[b] === num) {
97 document.getElementById('button' + blist[b]).style.backgroundColor =
"black";
98 document.getElementById('button' + blist[b]).style.color =
"lightgray";
100 document.getElementById('button' + blist[b]).style.backgroundColor =
"";
101 document.getElementById('button' + blist[b]).style.color =
"";
106 window.onload = function() {
107 canvas = new Display({'target' : document.getElementById('canvas')});
108 keyboard = new Keyboard({'target': document,
109 'onKeyPress': rfbKeyPress});
110 Util.addEvent(document, 'keypress', rawKey);
111 Util.addEvent(document, 'keydown', rawKey);
112 Util.addEvent(document, 'keyup', rawKey);
113 mouse = new Mouse({'target': document.getElementById('canvas'),
114 'onMouseButton': mouseButton,
115 'onMouseMove': mouseMove});
117 canvas.resize(width, height, true);
120 message(
"Display initialized");
122 if ('ontouchstart' in document.documentElement) {
123 message(
"Touch device detected");
124 document.getElementById('button-selection').style.display =
"inline";
125 document.getElementById('button1').onclick = function(){ selectButton(
1) };
126 document.getElementById('button2').onclick = function(){ selectButton(
2) };
127 document.getElementById('button4').onclick = function(){ selectButton(
4) };