#pragma once #include #include #include #include #include #include #include namespace hex { namespace prv { class Provider; } namespace ImHexApi { namespace Common { void closeImHex(bool noQuestions = false); void restartImHex(); }; namespace Bookmarks { struct Entry { Region region; std::vector name; std::vector comment; u32 color; bool locked; }; void add(Region region, const std::string &name, const std::string &comment, u32 color = 0x00000000); void add(u64 addr, size_t size, const std::string &name, const std::string &comment, u32 color = 0x00000000); std::list& getEntries(); }; namespace Provider { prv::Provider* get(); const std::vector& getProviders(); bool isValid(); void add(prv::Provider *provider); template T> void add(auto&& ... args) { add(new T(std::forward(args)...)); } void remove(prv::Provider *provider); }; namespace Tasks { Task createTask(const std::string &unlocalizedName, u64 maxValue); } }; }