]> git.proxmox.com Git - mirror_novnc.git/blame - tests/input.html
Drop UI.rfb reference on all disconnects
[mirror_novnc.git] / tests / input.html
CommitLineData
f8990704 1<!DOCTYPE html>
a575a383
JM
2<html>
3 <head><title>Input Test</title></head>
4 <body>
5 <br><br>
6
ad3f7624
JM
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>
a575a383
JM
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 <!--
99feba6b 23 <script type='text/javascript'
a575a383
JM
24 src='http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js'></script>
25 -->
ae510306
SR
26 <script src="../core/util.js"></script>
27 <script src="../app/webutil.js"></script>
28 <script src="../core/base64.js"></script>
bd5340c7 29 <script src="../core/input/keysym.js"></script>
c464f47e 30 <script src="../core/input/keysymdef.js"></script>
bd5340c7 31 <script src="../core/input/xtscancodes.js"></script>
80cb8ffd 32 <script src="../core/input/vkeys.js"></script>
bd5340c7 33 <script src="../core/input/util.js"></script>
c1e2785f
SM
34 <script src="../core/input/keyboard.js"></script>
35 <script src="../core/input/mouse.js"></script>
ae510306 36 <script src="../core/display.js"></script>
a575a383 37 <script>
ad3f7624
JM
38 var msg_cnt = 0, iterations,
39 width = 400, height = 200,
40 canvas, keyboard, mouse;
a575a383 41
c96f9003 42 var newline = "\n";
c96f9003 43
a575a383
JM
44 function message(str) {
45 console.log(str);
72bdd06e 46 cell = document.getElementById('messages');
6048299a 47 cell.textContent += msg_cnt + ": " + str + newline;
a575a383 48 cell.scrollTop = cell.scrollHeight;
c96f9003 49 msg_cnt++;
a575a383
JM
50 }
51
61dd52c9
JM
52 function mouseButton(x, y, down, bmask) {
53 msg = 'mouse x,y: ' + x + ',' + y + ' down: ' + down;
54 msg += ' bmask: ' + bmask;
a575a383
JM
55 message(msg);
56 }
57
61dd52c9
JM
58 function mouseMove(x, y) {
59 msg = 'mouse x,y: ' + x + ',' + y;
60 //console.log(msg);
a575a383
JM
61 }
62
d0703d1b 63 function rfbKeyEvent(keysym, code, down) {
c96f9003 64 var d = down ? "down" : " up ";
d0703d1b 65 var msg = "RFB key event " + d + " keysym: " + keysym + " code: " + code;
9ceef041 66 message(msg);
67 }
68 function rawKey(e) {
69 msg = "raw key event " + e.type +
c96f9003
JM
70 " (key: " + e.keyCode + ", char: " + e.charCode +
71 ", which: " + e.which +")";
a575a383
JM
72 message(msg);
73 }
74
ad3f7624
JM
75 function selectButton(num) {
76 var b, blist = [1,2,4];
77
78 if (typeof num === 'undefined') {
79 // Show the default
80 num = mouse.get_touchButton();
81 } else if (num === mouse.get_touchButton()) {
82 // Set all buttons off (no clicks)
83 mouse.set_touchButton(0);
84 num = 0;
85 } else {
86 // Turn on one button
87 mouse.set_touchButton(num);
88 }
89
90 for (b = 0; b < blist.length; b++) {
91 if (blist[b] === num) {
72bdd06e
SR
92 document.getElementById('button' + blist[b]).style.backgroundColor = "black";
93 document.getElementById('button' + blist[b]).style.color = "lightgray";
ad3f7624 94 } else {
72bdd06e
SR
95 document.getElementById('button' + blist[b]).style.backgroundColor = "";
96 document.getElementById('button' + blist[b]).style.color = "";
ad3f7624
JM
97 }
98 }
99 }
100
a575a383 101 window.onload = function() {
72bdd06e 102 canvas = new Display({'target' : document.getElementById('canvas')});
d3796c14 103 keyboard = new Keyboard({'target': document,
d0703d1b 104 'onKeyEvent': rfbKeyEvent});
b4ef49ea
SR
105 document.addEventListener('keypress', rawKey);
106 document.addEventListener('keydown', rawKey);
107 document.addEventListener('keyup', rawKey);
72bdd06e 108 mouse = new Mouse({'target': document.getElementById('canvas'),
ad3f7624
JM
109 'onMouseButton': mouseButton,
110 'onMouseMove': mouseMove});
111
8db09746 112 canvas.resize(width, height, true);
d3796c14
JM
113 keyboard.grab();
114 mouse.grab();
ad3f7624
JM
115 message("Display initialized");
116
bea2b3fd 117 if (Util.isTouchDevice) {
ad3f7624 118 message("Touch device detected");
72bdd06e
SR
119 document.getElementById('button-selection').style.display = "inline";
120 document.getElementById('button1').onclick = function(){ selectButton(1) };
121 document.getElementById('button2').onclick = function(){ selectButton(2) };
122 document.getElementById('button4').onclick = function(){ selectButton(4) };
ad3f7624
JM
123 selectButton();
124 }
125
a575a383
JM
126 }
127 </script>
128</html>