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