Elevate Engine 1
Loading...
Searching...
No Matches
FileDialog.cpp
Go to the documentation of this file.
1#include "FileDialog.h"
5
6#ifndef EE_PLATFORM_WEB
8 Elevate::FileDialogImpl* Elevate::FileDialog::s_impl = new Elevate::DesktropFileDialog();
9#else
11 Elevate::FileDialogImpl* Elevate::FileDialog::s_impl = new Elevate::WebFileDialog();
12#endif
13
14namespace Elevate
15{
16 bool FileDialogImpl::DisplayAndGetResult(std::string& outPath)
17 {
18 if (HasResult())
19 {
20 outPath = ConsumeResult();
21 return true;
22 }
23 return false;
24 }
25
27 {
28 return m_hasResult;
29 }
30
32 {
33 m_hasResult = false;
34 return m_result;
35 }
36
37 void FileDialogImpl::SetResult(const std::string& result)
38 {
39 m_hasResult = true;
40 m_result = result;
41 }
42
43 std::string FileDialog::RequestOpenFile(const std::string& title, const std::string& defaultPathOrFile, const std::vector<std::string>& filters, const std::string& filterDescription, bool allowMultiple)
44 {
45 if (ValidateImpl())
46 {
47 s_impl->OpenFile(title, PathResolver::Resolve(defaultPathOrFile), filters, filterDescription, allowMultiple);
48 }
49 return "";
50 }
51
52 std::string FileDialog::RequestSaveFile(const std::string& title, const std::string& defaultPathOrFile, const std::vector<std::string>& filters, const std::string& filterDescription)
53 {
54 if (ValidateImpl())
55 {
56 s_impl->SaveFile(title, PathResolver::Resolve(defaultPathOrFile), filters, filterDescription);
57 }
58 return "";
59 }
60
61 std::string FileDialog::RequestSelectFolder(const std::string& title, const std::string& defaultPath)
62 {
63 if (ValidateImpl())
64 {
65 s_impl->SelectFolder(title, PathResolver::Resolve(defaultPath));
66 }
67 return "";
68 }
69
70 bool FileDialog::DisplayAndGetResult(std::string& outPath)
71 {
72 return s_impl->DisplayAndGetResult(outPath);
73 }
74
75 bool FileDialog::ValidateImpl()
76 {
77 if (!s_impl)
78 {
79 EE_CORE_ERROR("FileDialog implementation not set!");
80 return false;
81 }
82 return true;
83 }
84}
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 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)
static std::string Resolve(const std::string &virtualPath)