Added ImGuiFileDialog to the project for opening ROMs

This commit is contained in:
scawful
2022-06-08 23:51:21 -04:00
parent 9069d7729f
commit 1fc487c283
5 changed files with 28 additions and 0 deletions

3
.gitmodules vendored
View File

@@ -1,3 +1,6 @@
[submodule "src/Library/imgui"]
path = src/Library/imgui
url = https://github.com/ocornut/imgui.git
[submodule "src/Library/ImGuiFileDialog"]
path = src/Library/ImGuiFileDialog
url = https://github.com/aiekick/ImGuiFileDialog.git

View File

@@ -36,11 +36,25 @@ void Editor::DrawYazeMenu() const {
}
ImGui::EndMenuBar();
}
// display
if (ImGuiFileDialog::Instance()->Display("ChooseFileDlgKey")) {
// action if OK
if (ImGuiFileDialog::Instance()->IsOk()) {
std::string filePathName = ImGuiFileDialog::Instance()->GetFilePathName();
std::string filePath = ImGuiFileDialog::Instance()->GetCurrentPath();
}
// close
ImGuiFileDialog::Instance()->Close();
}
}
void Editor::DrawFileMenu() const {
if (ImGui::MenuItem("Open", "Ctrl+O")) {
// TODO: Add the ability to open ALTTP ROM
ImGuiFileDialog::Instance()->OpenDialog("ChooseFileDlgKey", "Open ROM", ".sfc,.smc", ".");
}
if (ImGui::BeginMenu("Open Recent")) {
ImGui::MenuItem("alttp.sfc");

View File

@@ -6,6 +6,7 @@
#include "imgui/backends/imgui_impl_sdl.h"
#include "imgui/backends/imgui_impl_sdlrenderer.h"
#include "imgui/misc/cpp/imgui_stdlib.h"
#include "ImGuiFileDialog/ImGuiFileDialog.h"
namespace yaze {
namespace Application {

View File

@@ -15,6 +15,14 @@ target_include_directories("ImGui" PUBLIC ${IMGUI_PATH})
target_include_directories(ImGui PUBLIC ${SDL2_INCLUDE_DIR})
target_compile_definitions(ImGui PUBLIC IMGUI_IMPL_OPENGL_LOADER_CUSTOM=<SDL2/SDL_opengl.h> GL_GLEXT_PROTOTYPES=1)
# ImGuiFileDialog
set(IMGUI_FILE_DLG_PATH "Library/ImGuiFileDialog")
file(GLOB IMGUI_FILE_DLG_SOURCES ${IMGUI_FILE_DLG_PATH}/*.cpp)
add_library("ImGuiFileDialog" STATIC ${IMGUI_FILE_DLG_SOURCES})
target_include_directories(ImGuiFileDialog PUBLIC ${IMGUI_PATH})
target_include_directories(ImGuiFileDialog PUBLIC ${SDL2_INCLUDE_DIR})
target_compile_definitions(ImGuiFileDialog PUBLIC IMGUI_IMPL_OPENGL_LOADER_CUSTOM=<SDL2/SDL_opengl.h> GL_GLEXT_PROTOTYPES=1)
# Executable Linkage --------------------------------------------------------------------------------------
add_executable(
yaze
@@ -32,6 +40,7 @@ add_executable(
${IMGUI_PATH}/backends/imgui_impl_sdl.cpp
${IMGUI_PATH}/backends/imgui_impl_sdlrenderer.cpp
${IMGUI_PATH}/misc/cpp/imgui_stdlib.cpp
${IMGUI_FILE_DLG_PATH}/ImGuiFileDialog.cpp
)
target_include_directories(