function GuacamoleKeyboard(element) {
+ var guac_keyboard = this;
+
// Keymap
var unshiftedKeySym = new Array();
var shiftedKeySym = new Array();
shiftedKeySym[18] = 0xFFE7; // alt
-
- /*****************************************/
- /*** Keyboard Handler ***/
- /*****************************************/
-
// Single key state/modifier buffer
var modShift = 0;
var modCtrl = 0;
// Sends a single keystroke over the network
function sendKeyPressed(keysym) {
- if (keysym != null && keyPressedHandler)
- keyPressedHandler(keysym);
+ if (keysym != null && guac_keyboard.onkeydown)
+ guac_keyboard.onkeydown(keysym);
}
// Sends a single keystroke over the network
function sendKeyReleased(keysym) {
- if (keysym != null)
- keyReleasedHandler(keysym);
+ if (keysym != null && guac_keyboard.onkeyup)
+ guac_keyboard.onkeyup(keysym);
}
element.onkeydown = function(e) {
// Only intercept if handler set
- if (!keyPressedHandler) return true;
+ if (!guac_keyboard.onkeydown) return true;
var keynum;
if (window.event) keynum = window.event.keyCode;
element.onkeypress = function(e) {
// Only intercept if handler set
- if (!keyPressedHandler) return true;
+ if (!guac_keyboard.onkeydown) return true;
if (keySymSource != KEYPRESS) return false;
element.onkeyup = function(e) {
// Only intercept if handler set
- if (!keyReleasedHandler) return true;
+ if (!guac_keyboard.onkeyup) return true;
var keynum;
if (window.event) keynum = window.event.keyCode;
if (docOnblur != null) docOnblur();
};
- var keyPressedHandler = null;
- var keyReleasedHandler = null;
-
- this.setKeyPressedHandler = function(kh) { keyPressedHandler = kh; };
- this.setKeyReleasedHandler = function(kh) { keyReleasedHandler = kh; };
+ guac_keyboard.onkeydown = null;
+ guac_keyboard.onkeyup = null;
}