diff options
author | DeDiamondPro <67508414+DeDiamondPro@users.noreply.github.com> | 2022-04-29 17:27:45 +0200 |
---|---|---|
committer | DeDiamondPro <67508414+DeDiamondPro@users.noreply.github.com> | 2022-04-29 17:27:45 +0200 |
commit | 86f6f3e8c3ae91ddbc29985f73e1d4f29f0a4b17 (patch) | |
tree | 36a7e8aafc3d29a844f611211b3d1f06ee48e7e8 /src/main/java/io/polyfrost/oneconfig/gui/elements | |
parent | 117d80ff0e343eecf260fd363db896166d8061d7 (diff) | |
download | OneConfig-86f6f3e8c3ae91ddbc29985f73e1d4f29f0a4b17.tar.gz OneConfig-86f6f3e8c3ae91ddbc29985f73e1d4f29f0a4b17.tar.bz2 OneConfig-86f6f3e8c3ae91ddbc29985f73e1d4f29f0a4b17.zip |
text box config done
Diffstat (limited to 'src/main/java/io/polyfrost/oneconfig/gui/elements')
-rw-r--r-- | src/main/java/io/polyfrost/oneconfig/gui/elements/config/ConfigSwitch.java | 19 | ||||
-rw-r--r-- | src/main/java/io/polyfrost/oneconfig/gui/elements/config/ConfigTextBox.java | 33 |
2 files changed, 38 insertions, 14 deletions
diff --git a/src/main/java/io/polyfrost/oneconfig/gui/elements/config/ConfigSwitch.java b/src/main/java/io/polyfrost/oneconfig/gui/elements/config/ConfigSwitch.java index 804fc62..5a4288b 100644 --- a/src/main/java/io/polyfrost/oneconfig/gui/elements/config/ConfigSwitch.java +++ b/src/main/java/io/polyfrost/oneconfig/gui/elements/config/ConfigSwitch.java @@ -16,31 +16,30 @@ import static org.lwjgl.nanovg.NanoVG.nvgScissor; public class ConfigSwitch extends BasicOption { private int color; private float percentOn = 0f; - private boolean toggled ; public ConfigSwitch(Field field, String name, int size) { - super(field, name, size); - try { - toggled = (boolean) get(); - } catch (IllegalAccessException e) { - System.err.println("failed to get config value: class=" + this + " fieldWatching=" + field); - } + super(field, name, size); + } @Override public void draw(long vg, int x, int y) { + boolean toggled = false; + try { + toggled = (boolean) get(); + } catch (IllegalAccessException ignored) { + } nvgScissor(vg, x, y, size == 1 ? 480 : 992, 32); int x2 = x + 19 + (int) (percentOn * 18); color = ColorUtils.smoothColor(color, OneConfigConfig.GRAY_400, OneConfigConfig.BLUE_500, toggled, 20f); - if(color == -15123643) { + if (color == -15123643) { color = OneConfigConfig.GRAY_400; } RenderManager.drawRoundedRect(vg, x + 16, y + 4, 42, 24, color, 12f); RenderManager.drawRoundedRect(vg, x2, y + 7, 18, 18, OneConfigConfig.WHITE, 9f); RenderManager.drawString(vg, name, x + 66, y + 17, OneConfigConfig.WHITE, 18f, Fonts.INTER_MEDIUM); - if (InputUtils.isAreaClicked(x + 16, y, 42, 32)) - { + if (InputUtils.isAreaClicked(x + 16, y, 42, 32)) { toggled = !toggled; try { set(toggled); diff --git a/src/main/java/io/polyfrost/oneconfig/gui/elements/config/ConfigTextBox.java b/src/main/java/io/polyfrost/oneconfig/gui/elements/config/ConfigTextBox.java index e09ad77..8b96df1 100644 --- a/src/main/java/io/polyfrost/oneconfig/gui/elements/config/ConfigTextBox.java +++ b/src/main/java/io/polyfrost/oneconfig/gui/elements/config/ConfigTextBox.java @@ -1,28 +1,53 @@ package io.polyfrost.oneconfig.gui.elements.config; +import io.polyfrost.oneconfig.config.OneConfigConfig; import io.polyfrost.oneconfig.config.interfaces.BasicOption; +import io.polyfrost.oneconfig.gui.elements.TextInputField; +import io.polyfrost.oneconfig.lwjgl.RenderManager; +import io.polyfrost.oneconfig.lwjgl.font.Fonts; +import org.lwjgl.nanovg.NanoVG; import java.lang.reflect.Field; public class ConfigTextBox extends BasicOption { - private final String placeholder; private final boolean secure; private final boolean multiLine; + private final TextInputField textField; - public ConfigTextBox(Field field, String name, int size, String placeholder, boolean secure, boolean multiLine) { + public ConfigTextBox(Field field, String name, int size, boolean secure, boolean multiLine) { super(field, name, size); - this.placeholder = placeholder; this.secure = secure; this.multiLine = multiLine; + String value = null; + try { + value = (String) get(); + } catch (IllegalAccessException ignored) { + } + if (value == null) value = ""; + this.textField = new TextInputField(size == 1 && hasHalfSize() ? 216 : 640, multiLine ? 64 : 32, value, multiLine, secure); } @Override public void draw(long vg, int x, int y) { + NanoVG.nvgScissor(vg, x, y, size == 1 && !secure && !multiLine ? 216 : 344, 32); + RenderManager.drawString(vg, name, x, y + 16, OneConfigConfig.WHITE, 14, Fonts.INTER_MEDIUM); + NanoVG.nvgResetScissor(vg); + textField.draw(vg, x + (size == 1 && hasHalfSize() ? 224 : 352), y); + } + + @Override + public void keyTyped(char key, int keyCode) { + textField.keyTyped(key, keyCode); } @Override public int getHeight() { - return 0; + return multiLine ? 64 : 32; + } + + @Override + public boolean hasHalfSize() { + return !secure && !multiLine; } } |