From 23bc7ca9e72593dc015beaa2ff634f3c557439dd Mon Sep 17 00:00:00 2001 From: Andifaind Date: Wed, 17 Jun 2020 18:36:46 -0300 Subject: [PATCH] Implemented /kb_enter and /kb_escape on Dialogs Added this to default values for "showInfo" method Added this to "Delete" & "Cut" confirmation dialogs --- src/js/core/modal_dialog_elements.js | 15 +++++++++++---- src/js/game/hud/parts/mass_selector.js | 4 ++-- src/js/game/hud/parts/modal_dialogs.js | 2 +- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/src/js/core/modal_dialog_elements.js b/src/js/core/modal_dialog_elements.js index 0902a193..4acbb090 100644 --- a/src/js/core/modal_dialog_elements.js +++ b/src/js/core/modal_dialog_elements.js @@ -50,6 +50,8 @@ export class Dialog { this.closeRequested = new Signal(); this.buttonSignals = {}; + this.enterHandler = null; + this.escapeHandler = null; for (let i = 0; i < buttons.length; ++i) { if (G_IS_DEV && globalConfig.debug.disableTimedButtons) { @@ -58,6 +60,14 @@ export class Dialog { const buttonId = this.buttonIds[i].split(":")[0]; this.buttonSignals[buttonId] = new Signal(); + if (this.buttonIds[i].indexOf("/kb_enter") >= 0) { + this.enterHandler = buttonId; + this.buttonIds[i] = this.buttonIds[i].replace("/kb_enter", ""); + } + if (this.buttonIds[i].indexOf("/kb_escape") >= 0) { + this.escapeHandler = buttonId; + this.buttonIds[i] = this.buttonIds[i].replace("/kb_escape", ""); + } } this.timeouts = []; @@ -66,9 +76,6 @@ export class Dialog { this.inputReciever = new InputReceiver("dialog-" + this.title); this.inputReciever.keydown.add(this.handleKeydown, this); - - this.enterHandler = null; - this.escapeHandler = null; } /** @@ -297,7 +304,7 @@ export class DialogOptionChooser extends Dialog {
- ${iconHtml} + ${iconHtml} ${text} ${descHtml}
diff --git a/src/js/game/hud/parts/mass_selector.js b/src/js/game/hud/parts/mass_selector.js index 0dc872c5..47228b4f 100644 --- a/src/js/game/hud/parts/mass_selector.js +++ b/src/js/game/hud/parts/mass_selector.js @@ -91,7 +91,7 @@ export class HUDMassSelector extends BaseHUDPart { "", "" + formatBigNumberFull(this.selectedUids.size) ), - ["cancel:good", "ok:bad"] + ["cancel:good/kb_escape", "ok:bad/kb_enter"] ); ok.add(() => this.doDelete()); } else { @@ -141,7 +141,7 @@ export class HUDMassSelector extends BaseHUDPart { "", "" + formatBigNumberFull(this.selectedUids.size) ), - ["cancel:good", "ok:bad"] + ["cancel:good/kb_escape", "ok:bad/kb_enter"] ); ok.add(() => this.doCut()); } else { diff --git a/src/js/game/hud/parts/modal_dialogs.js b/src/js/game/hud/parts/modal_dialogs.js index 95428691..21e08aa3 100644 --- a/src/js/game/hud/parts/modal_dialogs.js +++ b/src/js/game/hud/parts/modal_dialogs.js @@ -53,7 +53,7 @@ export class HUDModalDialogs extends BaseHUDPart { * @param {string} text * @param {Array} buttons */ - showInfo(title, text, buttons = ["ok:good"]) { + showInfo(title, text, buttons = ["ok:good/kb_enter/kb_escape"]) { const dialog = new Dialog({ app: this.app, title: title,