[API] Added callback binding for InputText (#156)
* Added callback binding for InputText * Add JavaDoc * Change * Add Javadoc * Fix Import * Teaks and improvements - Extended example; - Added input text callback ImGuiInputTextFlags#CallbackEdit; - Minor code improvements. --------- Co-authored-by: SpaiR <klimbetoo@gmail.com>
This commit is contained in:
1 parent
f3c971ca60
commit
986aa532ff
6 files changed
+296
-6
No files matched your search
@@ -0,0 +1,44 @@
|
||||
import imgui.ImGui;
|
||||
import imgui.ImGuiInputTextCallbackData;
|
||||
import imgui.callback.ImGuiInputTextCallback;
|
||||
import imgui.flag.ImGuiCond;
|
||||
import imgui.flag.ImGuiInputTextFlags;
|
||||
import imgui.type.ImBoolean;
|
||||
import imgui.type.ImString;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
|
||||
public class ExampleInputTextCallback {
|
||||
private static final ImString STR = new ImString();
|
||||
private static final StringBuilder OUTPUT = new StringBuilder();
|
||||
private static final DateTimeFormatter DATE_FORMAT = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
|
||||
|
||||
private static final ImGuiInputTextCallback CALLBACK = new ImGuiInputTextCallback() {
|
||||
@Override
|
||||
public void accept(final ImGuiInputTextCallbackData data) {
|
||||
final char c = (char) data.getEventChar();
|
||||
if (c == 'h' || c == 'H') {
|
||||
data.setEventChar('!');
|
||||
OUTPUT.append(DATE_FORMAT.format(LocalDateTime.now())).append(" :: Replaced!\n");
|
||||
} else if (c == 'w' || c == 'W') {
|
||||
data.setEventChar(0);
|
||||
OUTPUT.append(DATE_FORMAT.format(LocalDateTime.now())).append(" :: Discarded!\n");
|
||||
} else {
|
||||
OUTPUT.append(DATE_FORMAT.format(LocalDateTime.now())).append(" :: Typed: ").append(c).append('\n');
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
public static void show(final ImBoolean showInputTextCallback) {
|
||||
ImGui.setNextWindowSize(400, 300, ImGuiCond.Once);
|
||||
if (ImGui.begin("Input Text Callback Demo", showInputTextCallback)) {
|
||||
ImGui.alignTextToFramePadding();
|
||||
ImGui.text("Try to input \"Hello World!\":");
|
||||
ImGui.sameLine();
|
||||
ImGui.inputText("##input", STR, ImGuiInputTextFlags.CallbackCharFilter, CALLBACK);
|
||||
ImGui.text(OUTPUT.toString());
|
||||
}
|
||||
ImGui.end();
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user