]> git.proxmox.com Git - mirror_novnc.git/blob - tests/input.html
Merge pull request #195 from moobyfr/keyboard-altgr
[mirror_novnc.git] / tests / input.html
1 <!DOCTYPE html>
2 <html>
3 <head><title>Input Test</title></head>
4 <body>
5 <br><br>
6
7 Canvas:
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">
10 </span>
11 <br>
12 <canvas id="canvas" width="640" height="20"
13 style="border-style: dotted; border-width: 1px;">
14 Canvas not supported.
15 </canvas>
16
17 <br>
18 Results:<br>
19 <textarea id="messages" style="font-size: 9;" cols=80 rows=25></textarea>
20 </body>
21
22 <!--
23 <script type='text/javascript'
24 src='http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js'></script>
25 -->
26 <script src="../include/util.js"></script>
27 <script src="../include/webutil.js"></script>
28 <script src="../include/base64.js"></script>
29 <script src="../include/input.js"></script>
30 <script src="../include/display.js"></script>
31 <script>
32 var msg_cnt = 0, iterations,
33 width = 400, height = 200,
34 canvas, keyboard, mouse;
35
36 var newline = "\n";
37 if (Util.Engine.trident) {
38 var newline = "<br>\n";
39 }
40
41 function message(str) {
42 console.log(str);
43 cell = $D('messages');
44 cell.innerHTML += msg_cnt + ": " + str + newline;
45 cell.scrollTop = cell.scrollHeight;
46 msg_cnt++;
47 }
48
49 function mouseButton(x, y, down, bmask) {
50 msg = 'mouse x,y: ' + x + ',' + y + ' down: ' + down;
51 msg += ' bmask: ' + bmask;
52 message(msg);
53 }
54
55 function mouseMove(x, y) {
56 msg = 'mouse x,y: ' + x + ',' + y;
57 //console.log(msg);
58 }
59
60 function keyPress(keysym, down, e) {
61 var d = down ? "down" : " up ";
62 msg = "keyPress " + d + " keysym: " + keysym +
63 " (key: " + e.keyCode + ", char: " + e.charCode +
64 ", which: " + e.which +")";
65 message(msg);
66 }
67
68 function selectButton(num) {
69 var b, blist = [1,2,4];
70
71 if (typeof num === 'undefined') {
72 // Show the default
73 num = mouse.get_touchButton();
74 } else if (num === mouse.get_touchButton()) {
75 // Set all buttons off (no clicks)
76 mouse.set_touchButton(0);
77 num = 0;
78 } else {
79 // Turn on one button
80 mouse.set_touchButton(num);
81 }
82
83 for (b = 0; b < blist.length; b++) {
84 if (blist[b] === num) {
85 $D('button' + blist[b]).style.backgroundColor = "black";
86 $D('button' + blist[b]).style.color = "lightgray";
87 } else {
88 $D('button' + blist[b]).style.backgroundColor = "";
89 $D('button' + blist[b]).style.color = "";
90 }
91 }
92 }
93
94 window.onload = function() {
95 canvas = new Display({'target' : $D('canvas')});
96 keyboard = new Keyboard({'target': document,
97 'onKeyPress': keyPress});
98 mouse = new Mouse({'target': $D('canvas'),
99 'onMouseButton': mouseButton,
100 'onMouseMove': mouseMove});
101
102 canvas.resize(width, height, true);
103 keyboard.grab();
104 mouse.grab();
105 message("Display initialized");
106
107 if ('ontouchstart' in document.documentElement) {
108 message("Touch device detected");
109 $D('button-selection').style.display = "inline";
110 $D('button1').onclick = function(){ selectButton(1) };
111 $D('button2').onclick = function(){ selectButton(2) };
112 $D('button4').onclick = function(){ selectButton(4) };
113 selectButton();
114 }
115
116 }
117 </script>
118 </html>