#pragma once #include #include #include #include #include #include #include #include namespace hex::fs { enum class DialogMode { Open, Save, Folder }; void setFileBrowserErrorCallback(const std::function &callback); bool openFileBrowser(DialogMode mode, const std::vector &validExtensions, const std::function &callback, const std::string &defaultPath = {}, bool multiple = false); enum class ImHexPath : u32 { Patterns = 0, PatternsInclude, Magic, Plugins, Yara, Config, Resources, Constants, Encodings, Logs, Recent, Scripts, Inspectors, Themes, Libraries, Nodes, END }; bool isPathWritable(const std::fs::path &path); std::vector getDefaultPaths(ImHexPath path, bool listNonExisting = false); // temporarily expose these for the migration function std::vector getDataPaths(); std::vector appendPath(std::vector paths, const std::fs::path &folder); }