1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- import {Pane} from 'tui-lib/ui/presentation'
- import {FocusElement} from 'tui-lib/ui/primitives'
- import telc from 'tui-lib/util/telchars'
- export default 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
- }
- open() {
- this.oldSelectedElement = this.root.selectedElement
- this.opened()
- this.visible = true
- this.root.select(this)
- this.fixLayout()
- }
- close() {
- this.closed()
- this.visible = false
- this.root.select(this.oldSelectedElement)
- }
- opened() {}
- closed() {}
- keyPressed(keyBuf) {
- if (telc.isCancel(keyBuf)) {
- this.emit('cancelled')
- return false
- }
- }
- }
|