7 #ifndef _FCITX_ADDONMANAGER_H_ 8 #define _FCITX_ADDONMANAGER_H_ 12 #include <unordered_map> 13 #include <unordered_set> 15 #include <fcitx-utils/macros.h> 16 #include <fcitx-utils/semver.h> 17 #include <fcitx/addoninfo.h> 19 #include <fcitx/addonloader.h> 20 #include <fcitx/fcitxcore_export.h> 31 class AddonManagerPrivate;
67 void registerDefaultLoader(StaticAddonRegistry *registry);
74 void registerLoader(std::unique_ptr<AddonLoader> loader);
81 void unregisterLoader(
const std::string &name);
98 void load(
const std::unordered_set<std::string> &enabled = {},
99 const std::unordered_set<std::string> &disabled = {});
123 AddonInstance *addon(
const std::string &name,
bool load =
false);
143 const std::vector<std::string> &loadedAddonNames()
const;
151 const AddonInfo *addonInfo(
const std::string &name)
const;
152 std::unordered_set<std::string> addonNames(AddonCategory category);
191 bool checkUpdate()
const;
201 void setAddonOptions(
202 std::unordered_map<std::string, std::vector<std::string>> options);
211 std::vector<std::string> addonOptions(
const std::string &name);
214 void setInstance(
Instance *instance);
215 std::unique_ptr<AddonManagerPrivate> d_ptr;
220 #endif // _FCITX_ADDONMANAGER_H_ An instance represents a standalone Fcitx instance.
Provide a Semantic version 2.0 implementation.
Base class for any addon in fcitx.