From 0c58ec6048c282c7c0ae22ebfe2860f2cef40df5 Mon Sep 17 00:00:00 2001 From: Florrie Date: Sat, 9 Dec 2017 17:23:56 -0400 Subject: Add Dialog.js file, apparently --- ui/Dialog.js | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 ui/Dialog.js (limited to 'ui/Dialog.js') diff --git a/ui/Dialog.js b/ui/Dialog.js new file mode 100644 index 0000000..26d94d8 --- /dev/null +++ b/ui/Dialog.js @@ -0,0 +1,37 @@ +const FocusElement = require('./form/FocusElement') + +const Pane = require('./Pane') + +const telc = require('../util/telchars') + +module.exports = class Dialog extends FocusElement { + // A simple base dialog. + // + // Emits the 'cancelled' event when the cancel key (escape) is pressed, + // which should (probably) be handled by the dialog's creator. + // + // Doesn't do anything when focused by default - this should be overridden + // in subclasses. + // + // Automatically adjusts to fill its parent. Has a pane child (this.pane), + // but the pane isn't adjusted at all (you should change its size and + // likely center it in your subclass). + + constructor() { + super() + + this.pane = new Pane() + this.addChild(this.pane) + } + + fixLayout() { + this.w = this.parent.contentW + this.h = this.parent.contentH + } + + keyPressed(keyBuf) { + if (telc.isCancel(keyBuf)) { + this.emit('cancelled') + } + } +} -- cgit 1.3.0-6-gf8a5