2018-11-17 12:28:16 +01:00
|
|
|
namespace ppt {
|
|
|
|
export enum EventType {
|
|
|
|
KEY_PRESS,
|
|
|
|
KEY_RELEASE,
|
|
|
|
KEY_TYPED
|
|
|
|
}
|
|
|
|
|
2018-11-17 16:25:44 +01:00
|
|
|
export enum SpecialKey {
|
|
|
|
CTRL,
|
|
|
|
WINDOWS,
|
|
|
|
SHIFT,
|
|
|
|
ALT
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface KeyDescriptor {
|
|
|
|
key_code: string;
|
|
|
|
|
|
|
|
key_ctrl: boolean;
|
|
|
|
key_windows: boolean;
|
|
|
|
key_shift: boolean;
|
|
|
|
key_alt: boolean;
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface KeyEvent extends KeyDescriptor {
|
2018-11-17 12:28:16 +01:00
|
|
|
readonly type: EventType;
|
|
|
|
|
|
|
|
readonly key: string;
|
2018-11-17 16:25:44 +01:00
|
|
|
}
|
2018-11-17 12:28:16 +01:00
|
|
|
|
2018-11-17 16:25:44 +01:00
|
|
|
export interface KeyHook extends KeyDescriptor {
|
|
|
|
cancel: boolean;
|
|
|
|
|
|
|
|
|
|
|
|
callback_press: () => any;
|
|
|
|
callback_release: () => any;
|
|
|
|
}
|
|
|
|
|
|
|
|
export function key_description(key: KeyDescriptor) {
|
|
|
|
let result = "";
|
|
|
|
if(key.key_shift)
|
2018-12-05 20:46:33 +01:00
|
|
|
result += " + " + tr("Shift");
|
2018-11-17 16:25:44 +01:00
|
|
|
if(key.key_alt)
|
2018-12-05 20:46:33 +01:00
|
|
|
result += " + " + tr("Alt");
|
2018-11-17 16:25:44 +01:00
|
|
|
if(key.key_ctrl)
|
2018-12-05 20:46:33 +01:00
|
|
|
result += " + " + tr("CTRL");
|
2018-11-17 16:25:44 +01:00
|
|
|
if(key.key_windows)
|
2018-12-05 20:46:33 +01:00
|
|
|
result += " + " + tr("Win");
|
2018-11-17 16:25:44 +01:00
|
|
|
|
2018-12-05 20:46:33 +01:00
|
|
|
result += " + " + (key.key_code ? key.key_code : tr("unset"));
|
2018-11-17 16:25:44 +01:00
|
|
|
return result.substr(3);
|
2018-11-17 12:28:16 +01:00
|
|
|
}
|
|
|
|
}
|