#pragma once

#include <filesystem>
#include <string>

#include <imgui.h>

namespace game::util::imgui
{
  std::filesystem::path path_base_get(const std::filesystem::path& schemaPath, const std::string& rootPath);
  std::filesystem::path path_absolute_get(const std::filesystem::path& schemaPath, const std::string& rootPath,
                                          const std::string& path);
  std::string path_display_get(const std::filesystem::path& schemaPath, const std::string& rootPath,
                               const std::string& path);
  std::string path_store_get(const std::filesystem::path& schemaPath, const std::string& rootPath,
                             const std::filesystem::path& path);

  bool path_widget(const char* id, const std::string& path, const ImVec2& size = ImVec2(-FLT_MIN, 0.0f));
  bool path_widget(const char* id, const std::string& path, const std::string& displayPath, const ImVec2& size);
  bool folder_widget(const char* id, const std::string& path, const ImVec2& size = ImVec2(-FLT_MIN, 0.0f));
  bool folder_widget(const char* id, const std::string& path, const std::string& displayPath, const ImVec2& size);
}
