#pragma once #include #include struct FileSelector { std::filesystem::path _current_file_path = std::filesystem::canonical(".") / ""; // add / bool _open_popup {false}; std::function _is_valid = [](auto){ return true; }; std::function _on_choose = [](auto){}; std::function _on_cancel = [](){}; void reset(void); public: FileSelector(void); // TODO: supply hints // HACK: until we supply hints, is_valid can modify void requestFile( std::function&& is_valid, std::function&& on_choose, std::function&& on_cancel ); // call this each frame void render(void); };