Loading...
Searching...
No Matches
FileDialog.h
Go to the documentation of this file.
1//
2// Created by denzel on 11/04/2025.
3//
4#pragma once
5#include <string>
6#include <vector>
7
8namespace hellfire::Utility {
9
10 struct FileFilter {
11 std::string name;
12 std::string extensions;
13 };
14
15 class FileDialog {
16 public:
17 static std::string open_file(const std::vector<FileFilter>& filters = {});
18
19 static std::string select_folder(const std::string &title);
20
21 static std::string save_file(std::string& save_name_to,
22 const std::string& default_filename = "",
23 const std::vector<FileFilter>& filters = {});
24
25 private:
26 // Platform-specific implementations
27 static std::string win32_open_file(const std::vector<FileFilter>& filters);
28 static std::string win32_save_file(const std::string &default_filename,
29 const std::vector<FileFilter> &filters, std::string &save_name_to);
30 static std::string imgui_open_file(const std::vector<FileFilter>& filters);
31
32 static std::string win32_select_folder(const std::string &title);
33
34 static std::string imgui_save_file(const std::string& default_filename,
35 const std::vector<FileFilter>& filters);
36 };
37
38} // namespace hellfire::Utility
static std::string imgui_open_file(const std::vector< FileFilter > &filters)
static std::string select_folder(const std::string &title)
static std::string open_file(const std::vector< FileFilter > &filters={})
static std::string save_file(std::string &save_name_to, const std::string &default_filename="", const std::vector< FileFilter > &filters={})
static std::string imgui_save_file(const std::string &default_filename, const std::vector< FileFilter > &filters)
static std::string win32_save_file(const std::string &default_filename, const std::vector< FileFilter > &filters, std::string &save_name_to)
static std::string win32_select_folder(const std::string &title)
static std::string win32_open_file(const std::vector< FileFilter > &filters)