« get me outta code hell

use ESM module syntax & minor cleanups - tui-lib - Pure Node.js library for making visual command-line programs (ala vim, ncdu)
about summary refs log tree commit diff
path: root/ui/form/Button.js
diff options
context:
space:
mode:
author(quasar) nebula <qznebula@protonmail.com>2023-05-12 17:42:09 -0300
committer(quasar) nebula <qznebula@protonmail.com>2023-05-13 12:48:36 -0300
commit6ea74c268a12325296a1d2e7fc31b02030ddb8bc (patch)
tree5da94d93acb64e7ab650d240d6cb23c659ad02ca /ui/form/Button.js
parente783bcf8522fa68e6b221afd18469c3c265b1bb7 (diff)
use ESM module syntax & minor cleanups
The biggest change here is moving various element classes under
more scope-specific directories, which helps to avoid circular
dependencies and is just cleaner to navigate and expand in the
future.

Otherwise this is a largely uncritical port to ESM module syntax!
There are probably a number of changes and other cleanups that
remain much needed.

Whenever I make changes to tui-lib it's hard to believe it's
already been <INSERT COUNTING NUMBER HERE> years since the
previous time. First commits are from January 2017, and the
code originates a month earlier in KAaRMNoD!
Diffstat (limited to 'ui/form/Button.js')
-rw-r--r--ui/form/Button.js51
1 files changed, 0 insertions, 51 deletions
diff --git a/ui/form/Button.js b/ui/form/Button.js
deleted file mode 100644
index 46329a6..0000000
--- a/ui/form/Button.js
+++ /dev/null
@@ -1,51 +0,0 @@
-const ansi = require('../../util/ansi')
-const telc = require('../../util/telchars')
-
-const FocusElement = require('./FocusElement')
-
-module.exports = class Button extends FocusElement {
-  // A button.
-
-  constructor(text) {
-    super()
-
-    this.text = text
-
-    this.cursorX = null
-    this.cursorY = null
-  }
-
-  fixLayout() {
-    this.w = ansi.measureColumns(this.text)
-    this.h = 1
-  }
-
-  drawTo(writable) {
-    if (this.isSelected) {
-      writable.write(ansi.invert())
-    }
-
-    writable.write(ansi.moveCursor(this.absTop, this.absLeft))
-    writable.write(this.text)
-
-    writable.write(ansi.resetAttributes())
-
-    super.drawTo(writable)
-  }
-
-  keyPressed(keyBuf) {
-    if (telc.isSelect(keyBuf)) {
-      this.emit('pressed')
-    }
-  }
-
-  clicked(button) {
-    if (button === 'left') {
-      if (this.isSelected) {
-        this.emit('pressed')
-      } else {
-        this.root.select(this)
-      }
-    }
-  }
-}