77 lines
2.3 KiB
TypeScript
77 lines
2.3 KiB
TypeScript
|
import GuacamoleKeyboard from './guacamole-keyboard.js'
|
||
|
|
||
|
export interface GuacamoleKeyboardInterface {
|
||
|
/**
|
||
|
* Fired whenever the user presses a key with the element associated
|
||
|
* with this Guacamole.Keyboard in focus.
|
||
|
*
|
||
|
* @event
|
||
|
* @param {Number} keysym The keysym of the key being pressed.
|
||
|
* @return {Boolean} true if the key event should be allowed through to the
|
||
|
* browser, false otherwise.
|
||
|
*/
|
||
|
onkeydown?: (keysym: number) => boolean;
|
||
|
|
||
|
/**
|
||
|
* Fired whenever the user releases a key with the element associated
|
||
|
* with this Guacamole.Keyboard in focus.
|
||
|
*
|
||
|
* @event
|
||
|
* @param {Number} keysym The keysym of the key being released.
|
||
|
*/
|
||
|
onkeyup?: (keysym: number) => void;
|
||
|
|
||
|
/**
|
||
|
* Marks a key as pressed, firing the keydown event if registered. Key
|
||
|
* repeat for the pressed key will start after a delay if that key is
|
||
|
* not a modifier. The return value of this function depends on the
|
||
|
* return value of the keydown event handler, if any.
|
||
|
*
|
||
|
* @param {Number} keysym The keysym of the key to press.
|
||
|
* @return {Boolean} true if event should NOT be canceled, false otherwise.
|
||
|
*/
|
||
|
press: (keysym: number) => boolean;
|
||
|
|
||
|
/**
|
||
|
* Marks a key as released, firing the keyup event if registered.
|
||
|
*
|
||
|
* @param {Number} keysym The keysym of the key to release.
|
||
|
*/
|
||
|
release: (keysym: number) => void;
|
||
|
|
||
|
/**
|
||
|
* Presses and releases the keys necessary to type the given string of
|
||
|
* text.
|
||
|
*
|
||
|
* @param {String} str
|
||
|
* The string to type.
|
||
|
*/
|
||
|
type: (str: string) => void;
|
||
|
|
||
|
/**
|
||
|
* Resets the state of this keyboard, releasing all keys, and firing keyup
|
||
|
* events for each released key.
|
||
|
*/
|
||
|
reset: () => void;
|
||
|
|
||
|
/**
|
||
|
* Attaches event listeners to the given Element, automatically translating
|
||
|
* received key, input, and composition events into simple keydown/keyup
|
||
|
* events signalled through this Guacamole.Keyboard's onkeydown and
|
||
|
* onkeyup handlers.
|
||
|
*
|
||
|
* @param {Element|Document} element
|
||
|
* The Element to attach event listeners to for the sake of handling
|
||
|
* key or input events.
|
||
|
*/
|
||
|
listenTo: (element: Element | Document) => void;
|
||
|
}
|
||
|
|
||
|
export default function(element?: Element): GuacamoleKeyboardInterface {
|
||
|
var Keyboard = {};
|
||
|
|
||
|
GuacamoleKeyboard.bind(Keyboard, element)();
|
||
|
|
||
|
return Keyboard as GuacamoleKeyboardInterface;
|
||
|
}
|