From b3355266572deef1a5c3e494ad162c592383e455 Mon Sep 17 00:00:00 2001 From: isXander Date: Mon, 14 Aug 2023 23:27:45 +0100 Subject: More-or-less complete API for YACL auto-gen --- .../string/StringControllerElement.java | 44 +++++++++++++++++++--- 1 file changed, 39 insertions(+), 5 deletions(-) (limited to 'common/src/main/java/dev/isxander/yacl3/gui/controllers') diff --git a/common/src/main/java/dev/isxander/yacl3/gui/controllers/string/StringControllerElement.java b/common/src/main/java/dev/isxander/yacl3/gui/controllers/string/StringControllerElement.java index 86cc7bd..383e188 100644 --- a/common/src/main/java/dev/isxander/yacl3/gui/controllers/string/StringControllerElement.java +++ b/common/src/main/java/dev/isxander/yacl3/gui/controllers/string/StringControllerElement.java @@ -5,6 +5,7 @@ import dev.isxander.yacl3.api.utils.Dimension; import dev.isxander.yacl3.gui.YACLScreen; import dev.isxander.yacl3.gui.controllers.ControllerWidget; import dev.isxander.yacl3.gui.utils.GuiUtils; +import dev.isxander.yacl3.gui.utils.UndoRedoHelper; import net.minecraft.ChatFormatting; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.screens.Screen; @@ -21,9 +22,10 @@ public class StringControllerElement extends ControllerWidget inputField = control.getString()); + control.option().addListener((opt, val) -> { + inputField = control.getString(); + }); setDimension(dim); } @@ -109,6 +113,10 @@ public class StringControllerElement extends ControllerWidget { +// if (Screen.hasControlDown()) { +// UndoRedoHelper.FieldState updated = Screen.hasShiftDown() ? undoRedoHelper.redo() : undoRedoHelper.undo(); +// if (updated != null) { +// System.out.println("Updated: " + updated); +// if (modifyInput(builder -> builder.replace(0, inputField.length(), updated.text()))) { +// caretPos = updated.cursorPos(); +// selectionLength = updated.selectionLength(); +// checkRenderOffset(); +// } +// } +// return true; +// } +// } } if (Screen.isPaste(keyCode)) { return doPaste(); } else if (Screen.isCopy(keyCode)) { - return doCopy(); + return doCopy(); } else if (Screen.isCut(keyCode)) { return doCut(); } else if (Screen.isSelectAll(keyCode)) { @@ -204,6 +226,7 @@ public class StringControllerElement extends ControllerWidget builder.deleteCharAt(caretPos)); } + updateUndoHistory(); } public void write(String string) { @@ -308,6 +338,10 @@ public class StringControllerElement extends ControllerWidget