diff --git a/shared/js/PPTListener.ts b/shared/js/PPTListener.ts index 43f45330..4a4fede0 100644 --- a/shared/js/PPTListener.ts +++ b/shared/js/PPTListener.ts @@ -1,3 +1,123 @@ +enum KeyCode { + KEY_CANCEL = 3, + KEY_HELP = 6, + KEY_BACK_SPACE = 8, + KEY_TAB = 9, + KEY_CLEAR = 12, + KEY_RETURN = 13, + KEY_ENTER = 14, + KEY_SHIFT = 16, + KEY_CONTROL = 17, + KEY_ALT = 18, + KEY_PAUSE = 19, + KEY_CAPS_LOCK = 20, + KEY_ESCAPE = 27, + KEY_SPACE = 32, + KEY_PAGE_UP = 33, + KEY_PAGE_DOWN = 34, + KEY_END = 35, + KEY_HOME = 36, + KEY_LEFT = 37, + KEY_UP = 38, + KEY_RIGHT = 39, + KEY_DOWN = 40, + KEY_PRINTSCREEN = 44, + KEY_INSERT = 45, + KEY_DELETE = 46, + KEY_0 = 48, + KEY_1 = 49, + KEY_2 = 50, + KEY_3 = 51, + KEY_4 = 52, + KEY_5 = 53, + KEY_6 = 54, + KEY_7 = 55, + KEY_8 = 56, + KEY_9 = 57, + KEY_SEMICOLON = 59, + KEY_EQUALS = 61, + KEY_A = 65, + KEY_B = 66, + KEY_C = 67, + KEY_D = 68, + KEY_E = 69, + KEY_F = 70, + KEY_G = 71, + KEY_H = 72, + KEY_I = 73, + KEY_J = 74, + KEY_K = 75, + KEY_L = 76, + KEY_M = 77, + KEY_N = 78, + KEY_O = 79, + KEY_P = 80, + KEY_Q = 81, + KEY_R = 82, + KEY_S = 83, + KEY_T = 84, + KEY_U = 85, + KEY_V = 86, + KEY_W = 87, + KEY_X = 88, + KEY_Y = 89, + KEY_Z = 90, + KEY_LEFT_CMD = 91, + KEY_RIGHT_CMD = 93, + KEY_CONTEXT_MENU = 93, + KEY_NUMPAD0 = 96, + KEY_NUMPAD1 = 97, + KEY_NUMPAD2 = 98, + KEY_NUMPAD3 = 99, + KEY_NUMPAD4 = 100, + KEY_NUMPAD5 = 101, + KEY_NUMPAD6 = 102, + KEY_NUMPAD7 = 103, + KEY_NUMPAD8 = 104, + KEY_NUMPAD9 = 105, + KEY_MULTIPLY = 106, + KEY_ADD = 107, + KEY_SEPARATOR = 108, + KEY_SUBTRACT = 109, + KEY_DECIMAL = 110, + KEY_DIVIDE = 111, + KEY_F1 = 112, + KEY_F2 = 113, + KEY_F3 = 114, + KEY_F4 = 115, + KEY_F5 = 116, + KEY_F6 = 117, + KEY_F7 = 118, + KEY_F8 = 119, + KEY_F9 = 120, + KEY_F10 = 121, + KEY_F11 = 122, + KEY_F12 = 123, + KEY_F13 = 124, + KEY_F14 = 125, + KEY_F15 = 126, + KEY_F16 = 127, + KEY_F17 = 128, + KEY_F18 = 129, + KEY_F19 = 130, + KEY_F20 = 131, + KEY_F21 = 132, + KEY_F22 = 133, + KEY_F23 = 134, + KEY_F24 = 135, + KEY_NUM_LOCK = 144, + KEY_SCROLL_LOCK = 145, + KEY_COMMA = 188, + KEY_PERIOD = 190, + KEY_SLASH = 191, + KEY_BACK_QUOTE = 192, + KEY_OPEN_BRACKET = 219, + KEY_BACK_SLASH = 220, + KEY_CLOSE_BRACKET = 221, + KEY_QUOTE = 222, + KEY_META = 224 +} + namespace ppt { export enum EventType { KEY_PRESS, diff --git a/shared/js/ui/client.ts b/shared/js/ui/client.ts index ece25fe0..949f4a3a 100644 --- a/shared/js/ui/client.ts +++ b/shared/js/ui/client.ts @@ -3,6 +3,8 @@ /// /// +import KeyEvent = ppt.KeyEvent; + enum ClientType { CLIENT_VOICE, CLIENT_QUERY, @@ -879,7 +881,7 @@ class LocalClientEntry extends ClientEntry { _self.renaming = true; elm.keypress(function (e) { - if(e.keyCode == JQuery.Key.Enter) { + if(e.keyCode == KeyCode.KEY_ENTER) { $(this).trigger("focusout"); return false; } diff --git a/shared/js/ui/elements/modal.ts b/shared/js/ui/elements/modal.ts index 0e4b15c7..84f04f8b 100644 --- a/shared/js/ui/elements/modal.ts +++ b/shared/js/ui/elements/modal.ts @@ -201,7 +201,7 @@ function createInputModal(headMessage: BodyCreator, question: BodyCreator, valid button_submit.prop("disabled", !valid); }); input.on('keydown', event => { - if(event.keyCode !== JQuery.Key.Enter || event.shiftKey) + if(event.keyCode !== KeyCode.KEY_ENTER || event.shiftKey) return; if(button_submit.prop("disabled")) return; diff --git a/shared/js/ui/frames/chat.ts b/shared/js/ui/frames/chat.ts index 94c73b65..e9bc26de 100644 --- a/shared/js/ui/frames/chat.ts +++ b/shared/js/ui/frames/chat.ts @@ -373,10 +373,10 @@ class ChatBox { this._input_message.on('keypress',event => { if(!event.shiftKey) { console.log(event.keyCode); - if(event.keyCode == JQuery.Key.Enter) { + if(event.keyCode == KeyCode.KEY_ENTER) { this.onSend(); return false; - } else if(event.keyCode == JQuery.Key.ArrowUp || event.keyCode == JQuery.Key.ArrowDown) { + } else if(event.keyCode == KeyCode.KEY_UP || event.keyCode == KeyCode.KEY_DOWN) { if(this._activeChat) { const message = (this._input_message.val() || "").toString(); const history = this._activeChat.send_history; @@ -385,7 +385,7 @@ class ChatBox { return; if(message.replace(/[ \n\r\t]/, "").length == 0 || this._history_index == 0 || (this._history_index > 0 && message == this._activeChat.send_history[this._history_index - 1])) { - if(event.keyCode == JQuery.Key.ArrowUp) + if(event.keyCode == KeyCode.KEY_UP) this._history_index = Math.min(history.length, this._history_index + 1); else this._history_index = Math.max(0, this._history_index - 1); diff --git a/shared/js/ui/modal/ModalConnect.ts b/shared/js/ui/modal/ModalConnect.ts index 3fde923c..fc102cc4 100644 --- a/shared/js/ui/modal/ModalConnect.ts +++ b/shared/js/ui/modal/ModalConnect.ts @@ -53,7 +53,7 @@ namespace Modals { input_address .on("keyup", () => updateFields()) .on('keydown', event => { - if(event.keyCode == JQuery.Key.Enter && !event.shiftKey) + if(event.keyCode == KeyCode.KEY_ENTER && !event.shiftKey) button_connect.trigger('click'); }); diff --git a/shared/js/ui/modal/permission/PermissionEditor.ts b/shared/js/ui/modal/permission/PermissionEditor.ts index 807d8b37..6a32b0d6 100644 --- a/shared/js/ui/modal/permission/PermissionEditor.ts +++ b/shared/js/ui/modal/permission/PermissionEditor.ts @@ -898,7 +898,7 @@ namespace ui { }); element.on('keypress', event => { - if(event.which == JQuery.Key.Enter) + if(event.which == KeyCode.KEY_ENTER) element.trigger('focusout'); const text = String.fromCharCode(event.which); diff --git a/shared/js/ui/view.ts b/shared/js/ui/view.ts index d1665e63..c6a2ad84 100644 --- a/shared/js/ui/view.ts +++ b/shared/js/ui/view.ts @@ -690,7 +690,7 @@ class ChannelTree { handle_key_press(event: KeyboardEvent) { if(!this.selected_event || !this.currently_selected || $.isArray(this.currently_selected)) return; - if(event.keyCode == JQuery.Key.ArrowUp) { + if(event.keyCode == KeyCode.KEY_UP) { event.preventDefault(); if(this.currently_selected instanceof ChannelEntry) { let previous = this.currently_selected.channel_previous; @@ -734,7 +734,7 @@ class ChannelTree { return; } - } else if(event.keyCode == JQuery.Key.ArrowDown) { + } else if(event.keyCode == KeyCode.KEY_DOWN) { event.preventDefault(); if(this.currently_selected instanceof ChannelEntry) { this.select_next_channel(this.currently_selected, true); @@ -750,7 +750,7 @@ class ChannelTree { this.select_next_channel(channel, false); } else if(this.currently_selected instanceof ServerEntry) this.onSelect(this.channel_first, true); - } else if(event.keyCode == JQuery.Key.Enter) { + } else if(event.keyCode == KeyCode.KEY_ENTER) { if(this.currently_selected instanceof ChannelEntry) { this.currently_selected.joinChannel(); }