From a2437eafb1a2d7f39c7e816a693ec4f03654b636 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 c9e30e5..2777326 100644 --- a/ui.js +++ b/ui.js @@ -59,7 +59,7 @@ const { } = require('tui-lib') /* 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') */ @@ -242,6 +242,12 @@ 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 } @@ -430,7 +436,8 @@ class AppElement extends FocusElement { 'handleProcessMetadataProgress', 'handleQueueUpdated', 'handleAddedQueuePlayer', - 'handleRemovedQueuePlayer' + 'handleRemovedQueuePlayer', + 'handleLogMessage' ]) { this[key] = this[key].bind(this) } @@ -501,12 +508,14 @@ class AppElement extends FocusElement { this.backend.on('processMetadata progress', this.handleProcessMetadataProgress) this.backend.on('added queue player', this.handleAddedQueuePlayer) this.backend.on('removed queue player', this.handleRemovedQueuePlayer) + this.backend.on('log message', this.handleLogMessage) } removeBackendListeners() { this.backend.removeListener('processMetadata progress', this.handleProcessMetadataProgress) this.backend.removeListener('added queue player', this.handleAddedQueuePlayer) this.backend.removeListener('removed queue player', this.handleRemovedQueuePlayer) + this.backend.removeListener('log message', this.handleLogMessage) } handleAddedQueuePlayer(queuePlayer) { @@ -520,6 +529,10 @@ class AppElement extends FocusElement { } } + handleLogMessage(text) { + this.log.newLogMessage(text) + } + async handlePlayingDetails(track, oldTrack, queuePlayer) { const PIE = this.getPlaybackInfoElementForQueuePlayer(queuePlayer) if (PIE) { @@ -1247,10 +1260,21 @@ 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 @@ -4366,4 +4390,20 @@ 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 {} + module.exports = AppElement -- cgit 1.3.0-6-gf8a5