From 34f5b833d86ea1dad98d683723cf05a17684237b Mon Sep 17 00:00:00 2001 From: Aldrik Ramaekers Date: Thu, 7 Mar 2024 20:49:22 +0100 Subject: add ImFileDialog with minor changes --- src/main.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'src/main.cpp') diff --git a/src/main.cpp b/src/main.cpp index 5dc0f04..a709ef4 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -2,6 +2,7 @@ #include "../imgui/imgui_spectrum.h" #include "../imgui/imgui_impl_opengl3_loader.h" #include "../imspinner/imspinner.h" +#include "../imfiledialog/imFileDialog.h" #include "../utf8.h" #include "definitions.h" #include "search.h" @@ -328,7 +329,17 @@ void ts_create_gui(int window_w, int window_h) { ImGui::BeginChild("search-boxes2", ImVec2(frame_w, textbox_area_height), false); { ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, 1.0f); - ImGui::ImageButton("Folder", (void*)(intptr_t)img_folder.id, ImVec2(18.0f, 18.0f)); + if (ImGui::ImageButton("Folder", (void*)(intptr_t)img_folder.id, ImVec2(18.0f, 18.0f))) { + ifd::FileDialog::Instance().Open("FolderSelectDialog", "Select a directory", ""); + } + if (ifd::FileDialog::Instance().IsDone("FolderSelectDialog", window_w, window_h)) { + if (ifd::FileDialog::Instance().HasResult()) { + std::string res = ifd::FileDialog::Instance().GetResult().u8string(); + snprintf(path_buffer, MAX_INPUT_LENGTH, res.c_str()); + } + ifd::FileDialog::Instance().Close(); + } + ImGui::SameLine(); ImGui::PushItemWidth(-1); if (ImGui::InputTextWithHint("filter-ti", "Filter", filter_buffer, MAX_INPUT_LENGTH, ImGuiInputTextFlags_EnterReturnsTrue)) { -- cgit v1.2.3-70-g09d2