diff options
Diffstat (limited to 'src/features/settings/settingThings/textSetting.js')
-rw-r--r-- | src/features/settings/settingThings/textSetting.js | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/features/settings/settingThings/textSetting.js b/src/features/settings/settingThings/textSetting.js new file mode 100644 index 0000000..edc0989 --- /dev/null +++ b/src/features/settings/settingThings/textSetting.js @@ -0,0 +1,41 @@ + +import SoopyContentChangeEvent from "../../../../guimanager/EventListener/SoopyContentChangeEvent"; +import TextBox from "../../../../guimanager/GuiElement/TextBox"; +import PasswordInput from "../../../../guimanager/GuiElement/PasswordInput" +import SettingBase from "./settingBase"; + +class TextSetting extends SettingBase { + constructor(name, description, defaultVal, settingId, module, placeholder, isSecret) { + super(name, description, defaultVal, settingId, module) + + this.textObject = (isSecret ? new PasswordInput() : new TextBox()).setLocation(0, 0.2, 0.9, 0.6).setText(this.getValue() || "").setPlaceholder(placeholder) + this.settingObject.addChild(this.textObject) + + this.settingObject.setLocation(0.6, 0, 0.4, 1) + this.guiObject.text.setLocation(0, 0, 0.6, 0.6) + this.guiObject.description.setLocation(0, 0.6, 0.55, 0.4) + + this.textObject.text.addEvent(new SoopyContentChangeEvent().setHandler((newVal, oldVal, resetFun) => { + this.setValue(newVal) + })) + + } + update() { + if (this.hasHelp()) { + this.guiObject.addChild(this.helpButton) + + this.guiObject.text.setLocation(0.075, 0, 0.6 - 0.075, 0.6) + } else { + this.guiObject.text.setLocation(0, 0, 0.6, 0.6) + } + } + setValue(newVal) { + super.setValue(newVal) + + this.textObject.setText(newVal) + + return this + } +} + +export default TextSetting
\ No newline at end of file |