diff options
author | Florrie <towerofnix@gmail.com> | 2018-12-14 23:49:41 -0400 |
---|---|---|
committer | Florrie <towerofnix@gmail.com> | 2018-12-14 23:49:41 -0400 |
commit | d712d405f76178fc67b9421c113dccc3537e2a0c (patch) | |
tree | e43f2b49471fb6f0ef3bb9749d6d34207005dd50 /ui | |
parent | 99d2ed5b2f8bb39fa2517efd5a68dbb2b27b3121 (diff) |
Add options to not call fixLayout automatically
Diffstat (limited to 'ui')
-rw-r--r-- | ui/DisplayElement.js | 14 | ||||
-rw-r--r-- | ui/form/Form.js | 10 |
2 files changed, 15 insertions, 9 deletions
diff --git a/ui/DisplayElement.js b/ui/DisplayElement.js index 952c78e..8a2aa71 100644 --- a/ui/DisplayElement.js +++ b/ui/DisplayElement.js @@ -77,7 +77,7 @@ module.exports = class DisplayElement extends EventEmitter { } } - addChild(child, afterIndex = this.children.length) { + addChild(child, afterIndex = this.children.length, {fixLayout = true} = {}) { // TODO Don't let a direct ancestor of this be added as a child. Don't // let itself be one of its childs either! @@ -88,10 +88,13 @@ module.exports = class DisplayElement extends EventEmitter { child.parent = this this.children.splice(afterIndex, 0, child) - child.fixLayout() + + if (fixLayout) { + child.fixLayout() + } } - removeChild(child) { + removeChild(child, {fixLayout = true} = {}) { // Removes the given child element from the children list of this // element. It won't be rendered in the future. If the given element // isn't a direct child of this element, nothing will happen. @@ -102,7 +105,10 @@ module.exports = class DisplayElement extends EventEmitter { child.parent = null this.children.splice(this.children.indexOf(child), 1) - this.fixLayout() + + if (fixLayout) { + this.fixLayout() + } } centerInParent() { diff --git a/ui/form/Form.js b/ui/form/Form.js index 6cdd5a5..7a82b31 100644 --- a/ui/form/Form.js +++ b/ui/form/Form.js @@ -11,19 +11,19 @@ module.exports = class Form extends FocusElement { this.captureTab = true } - addInput(input, asChild = true) { + addInput(input, asChild = true, opts = {}) { // Adds the given input as a child element and pushes it to the input - // list. If the second optional, asChild, is false, it won't add the + // list. If the optional argument asChild is false, it won't add the // input element as a child of the form. this.inputs.push(input) if (asChild) { - this.addChild(input) + this.addChild(input, opts) } } - removeInput(input, asChild = true) { + removeInput(input, asChild = true, opts = {}) { // Removes the given input from the form's input list. If the optional // argument asChild is false, it won't try to removeChild the input. @@ -31,7 +31,7 @@ module.exports = class Form extends FocusElement { this.inputs.splice(this.inputs.indexOf(input), 1) if (asChild) { - this.removeChild(input) + this.removeChild(input, opts) } } } |