1#include "FileDialogue.h"
7static Vector<nfdfilteritem_t> makeFilterItem(Vector<String> names, Vector<String> specs);
11 String FileDialogue::OpenFile(Vector<String> filterName, Vector<String> filterSpecs)
16 Vector<nfdfilteritem_t> filterItem = makeFilterItem(filterName, filterSpecs);
17 nfdresult_t result = NFD_OpenDialog(&outPath, filterItem.data(), filterItem.size(), NULL);
19 if (result == NFD_OKAY)
21 path = String(outPath);
22 std::cout <<
"Open Path: " << outPath << std::endl;
23 NFD_FreePath(outPath);
25 else if (result == NFD_CANCEL)
27 std::cout <<
"User pressed cancel." << std::endl;
31 std::cerr <<
"Error: " << NFD_GetError() << std::endl;
39 String FileDialogue::SaveFile(Vector<String> filter, Vector<String> filterSpecs)
45 Vector<nfdfilteritem_t> filterItem = makeFilterItem(filter, filterSpecs);
47 nfdresult_t result = NFD_SaveDialog(&savePath, filterItem.data(), 2, NULL,
"Untitled.c");
49 if (result == NFD_OKAY)
51 std::cout <<
"Save Path: " << savePath << std::endl;
52 path = String(savePath);
53 NFD_FreePath(savePath);
55 else if (result == NFD_CANCEL)
57 std::cout <<
"User pressed cancel." << std::endl;
61 std::cerr <<
"Error: " << NFD_GetError() << std::endl;
69static Vector<nfdfilteritem_t> makeFilterItem(Vector<String> names, Vector<String> specs)
71 int size = names.size();
72 Vector<nfdfilteritem_t> filterItems(size);
73 if (size != specs.size())
75 printf(
"Error: Name and extensions size mismatch\n");
79 for (
int i = 0; i < size; i++)
81 filterItems[i].name = names[i].c_str();
82 filterItems[i].spec = specs[i].c_str();