#pragma once #include #include #include #include #include namespace psemek::ui { enum class file_dialog_type { save, load }; struct file_dialog_options { struct element_factory & element_factory; file_dialog_type type; std::string caption; std::filesystem::path path; std::function on_visited = nullptr; std::function on_selected = nullptr; std::function on_canceled = nullptr; std::shared_ptr extra_widget = nullptr; }; std::shared_ptr make_file_dialog(file_dialog_options const & options); }