aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/io/polyfrost/oneconfig/gui/elements
diff options
context:
space:
mode:
authorDeDiamondPro <67508414+DeDiamondPro@users.noreply.github.com>2022-04-29 17:27:45 +0200
committerDeDiamondPro <67508414+DeDiamondPro@users.noreply.github.com>2022-04-29 17:27:45 +0200
commit86f6f3e8c3ae91ddbc29985f73e1d4f29f0a4b17 (patch)
tree36a7e8aafc3d29a844f611211b3d1f06ee48e7e8 /src/main/java/io/polyfrost/oneconfig/gui/elements
parent117d80ff0e343eecf260fd363db896166d8061d7 (diff)
downloadOneConfig-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.java19
-rw-r--r--src/main/java/io/polyfrost/oneconfig/gui/elements/config/ConfigTextBox.java33
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;
}
}