-
-
Notifications
You must be signed in to change notification settings - Fork 103
/
Copy pathExampleImGuiFileDialog.java
61 lines (52 loc) · 2.28 KB
/
ExampleImGuiFileDialog.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import imgui.extension.imguifiledialog.ImGuiFileDialog;
import imgui.extension.imguifiledialog.callback.ImGuiFileDialogPaneFun;
import imgui.extension.imguifiledialog.flag.ImGuiFileDialogFlags;
import imgui.flag.ImGuiCond;
import imgui.internal.ImGui;
import imgui.type.ImBoolean;
import java.awt.*;
import java.net.URI;
import java.util.Map;
public class ExampleImGuiFileDialog {
private static final String URL = "https://github.com/aiekick/ImGuiFileDialog";
private static Map<String, String> selection = null;
private static long userData = 0;
private static ImGuiFileDialogPaneFun callback = new ImGuiFileDialogPaneFun() {
@Override
public void paneFun(String filter, long userDatas, boolean canContinue) {
ImGui.text("Filter: " + filter);
}
};
public static void show(ImBoolean showImGuiFileDialogDemo) {
ImGui.setNextWindowSize(800, 200, ImGuiCond.Once);
ImGui.setNextWindowPos(ImGui.getMainViewport().getPosX() + 100, ImGui.getMainViewport().getPosY() + 100, ImGuiCond.Once);
if (ImGui.begin("ImGuiFileDialogDemo Demo", showImGuiFileDialogDemo)) {
ImGui.text("This a demo for ImGuiFileDialog");
ImGui.alignTextToFramePadding();
ImGui.text("Repo:");
ImGui.sameLine();
if (ImGui.button(URL)) {
try {
Desktop.getDesktop().browse(new URI(URL));
} catch (Exception e) {
e.printStackTrace();
}
}
if (ImGui.button("Browse File")) {
ImGuiFileDialog.openModal("browse-key", "Choose File", ".java", ".", callback, 250, 1, 42, ImGuiFileDialogFlags.None);
}
if (ImGuiFileDialog.display("browse-key", ImGuiFileDialogFlags.None, 200, 400, 800, 600)) {
if (ImGuiFileDialog.isOk()) {
selection = ImGuiFileDialog.getSelection();
userData = ImGuiFileDialog.getUserDatas();
}
ImGuiFileDialog.close();
}
}
if (selection != null && !selection.isEmpty()) {
ImGui.text("Selected: " + selection.values().stream().findFirst().get());
ImGui.text("User Data: " + userData);
}
ImGui.end();
}
}