Elevate Engine 1
Loading...
Searching...
No Matches
FileDialog.h
Go to the documentation of this file.
1#pragma once
2
3#include <string>
4#include <vector>
5
6namespace Elevate
7{
9 {
10 public:
11 FileDialogImpl() = default;
12 virtual ~FileDialogImpl() = default;
13
14 virtual void OpenFile(const std::string& title, const std::string& defaultPathOrFile,
15 const std::vector<std::string>& filters, const std::string& filterDescription, bool allowMultiple) = 0;
16
17 virtual void SaveFile(const std::string& title, const std::string& defaultPathOrFile,
18 const std::vector<std::string>& filters, const std::string& filterDescription) = 0;
19
20 virtual void SelectFolder(const std::string& title, const std::string& defaultPath) = 0;
21
22 virtual bool DisplayAndGetResult(std::string& outPath);
23
24 bool HasResult();
25 std::string ConsumeResult();
26
27 protected:
28 void SetResult(const std::string& result);
29
30 private:
31 bool m_hasResult = false;
32 std::string m_result = "";
33 };
34
36 {
37 public:
38 static std::string RequestOpenFile(const std::string& title, const std::string& defaultPathOrFile,
39 const std::vector<std::string>& filters, const std::string& filterDescription, bool allowMultiple);
40
41 static std::string RequestSaveFile(const std::string& title, const std::string& defaultPathOrFile,
42 const std::vector<std::string>& filters, const std::string& filterDescription);
43
44 static std::string RequestSelectFolder(const std::string& title, const std::string& defaultPath);
45
46 static bool DisplayAndGetResult(std::string& outPath);
47 private:
48 static bool ValidateImpl();
49
50 static FileDialogImpl* s_impl;
51 };
52}
virtual void OpenFile(const std::string &title, const std::string &defaultPathOrFile, const std::vector< std::string > &filters, const std::string &filterDescription, bool allowMultiple)=0
void SetResult(const std::string &result)
virtual ~FileDialogImpl()=default
virtual bool DisplayAndGetResult(std::string &outPath)
std::string ConsumeResult()
virtual void SaveFile(const std::string &title, const std::string &defaultPathOrFile, const std::vector< std::string > &filters, const std::string &filterDescription)=0
virtual void SelectFolder(const std::string &title, const std::string &defaultPath)=0
static std::string RequestSelectFolder(const std::string &title, const std::string &defaultPath)
static std::string RequestOpenFile(const std::string &title, const std::string &defaultPathOrFile, const std::vector< std::string > &filters, const std::string &filterDescription, bool allowMultiple)
static std::string RequestSaveFile(const std::string &title, const std::string &defaultPathOrFile, const std::vector< std::string > &filters, const std::string &filterDescription)
static bool DisplayAndGetResult(std::string &outPath)