From afeda69313e0250d654986ba0203974c56b30670 Mon Sep 17 00:00:00 2001 From: Florrie Date: Wed, 15 Jul 2020 21:20:39 -0300 Subject: basic command log implementation --- ui.js | 44 ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 42 insertions(+), 2 deletions(-) (limited to 'ui.js') diff --git a/ui.js b/ui.js index f9f8e5f..05e359e 100644 --- a/ui.js +++ b/ui.js @@ -55,7 +55,7 @@ import { } from './serialized-backend.js' /* text editor features disabled because theyre very much incomplete and havent - * gotten much use from me or anyonea afaik! + * gotten much use from me or anyone afaik! const TuiTextEditor = require('tui-text-editor') */ @@ -239,6 +239,12 @@ export default class AppElement extends FocusElement { }) */ + this.logPane = new Pane() + this.addChild(this.logPane) + + this.log = new Log() + this.logPane.addChild(this.log) + if (!this.config.showTabberPane) { this.tabberPane.visible = false } @@ -465,7 +471,8 @@ export default class AppElement extends FocusElement { 'handleQueueUpdated', 'handleAddedQueuePlayer', 'handleRemovedQueuePlayer', - 'handleSetLoopQueueAtEnd' + 'handleSetLoopQueueAtEnd', + 'handleLogMessage' ]) { this[key] = this[key].bind(this) } @@ -537,6 +544,7 @@ export default class AppElement extends FocusElement { this.backend.on('added queue player', this.handleAddedQueuePlayer) this.backend.on('removed queue player', this.handleRemovedQueuePlayer) this.backend.on('set-loop-queue-at-end', this.handleSetLoopQueueAtEnd) + this.backend.on('log message', this.handleLogMessage) } removeBackendListeners() { @@ -544,6 +552,7 @@ export default class AppElement extends FocusElement { this.backend.removeListener('added queue player', this.handleAddedQueuePlayer) this.backend.removeListener('removed queue player', this.handleRemovedQueuePlayer) this.backend.removeListener('set-loop-queue-at-end', this.handleSetLoopQueueAtEnd) + this.backend.removeListener('log message', this.handleLogMessage) } handleAddedQueuePlayer(queuePlayer) { @@ -561,6 +570,10 @@ export default class AppElement extends FocusElement { this.updateQueueLengthLabel() } + handleLogMessage(text) { + this.log.newLogMessage(text) + } + async handlePlayingDetails(track, oldTrack, startTime, queuePlayer) { const PIE = this.getPlaybackInfoElementForQueuePlayer(queuePlayer) if (PIE) { @@ -1711,10 +1724,21 @@ export default class AppElement extends FocusElement { } */ + if (this.logPane.visible) { + this.logPane.w = leftWidth + this.logPane.h = 6 + this.log.fillParent() + this.log.fixLayout() + } + if (this.tabberPane.visible) { this.tabberPane.w = leftWidth this.tabberPane.y = bottomY this.tabberPane.h = topY - this.tabberPane.y + if (this.logPane.visible) { + this.tabberPane.h -= this.logPane.h + this.logPane.y = this.tabberPane.bottom + } /* if (this.textInfoPane.visible) { this.tabberPane.h -= this.textInfoPane.h @@ -5499,3 +5523,19 @@ class NotesTextEditor extends TuiTextEditor { } } */ + +class Log extends ListScrollForm { + constructor() { + super('vertical') + } + + newLogMessage(text) { + const logMessage = new LogMessage(text) + this.addInput(logMessage) + this.fixLayout() + this.scrollToEnd() + return logMessage + } +} + +class LogMessage extends Button {} -- cgit 1.3.0-6-gf8a5