diff options
Diffstat (limited to 'ui/Label.js')
-rw-r--r-- | ui/Label.js | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/ui/Label.js b/ui/Label.js index 850edc0..faeee98 100644 --- a/ui/Label.js +++ b/ui/Label.js @@ -5,20 +5,23 @@ const DisplayElement = require('./DisplayElement') module.exports = class Label extends DisplayElement { // A simple text display. Automatically adjusts size to fit text. - constructor(text='') { + constructor(text = '') { super() this.text = text this.textAttributes = [] } + fixLayout() { + this.w = this.text.length + } + drawTo(writable) { if (this.textAttributes.length) { writable.write(ansi.setAttributes(this.textAttributes)) } - writable.write(ansi.moveCursor(this.absTop, this.absLeft)) - writable.write(this.text) + this.writeTextTo(writable) if (this.textAttributes.length) { writable.write(ansi.resetAttributes()) @@ -27,10 +30,14 @@ module.exports = class Label extends DisplayElement { super.drawTo(writable) } + writeTextTo(writable) { + writable.write(ansi.moveCursor(this.absTop, this.absLeft)) + writable.write(this.text) + } + set text(newText) { this._text = newText - - this.w = newText.length + this.fixLayout() } get text() { |