7 #ifndef _FCITX_ADDON_H_ 8 #define _FCITX_ADDON_H_ 14 #include <fcitx-config/enum.h> 15 #include <fcitx-config/rawconfig.h> 16 #include <fcitx-utils/i18nstring.h> 17 #include <fcitx-utils/macros.h> 18 #include <fcitx-utils/semver.h> 19 #include <fcitx/fcitxcore_export.h> 23 class AddonInfoPrivate;
25 FCITX_CONFIG_ENUM(AddonCategory, InputMethod, Frontend, Loader, Module, UI)
27 enum class OverrideEnabled { NotSet, Enabled, Disabled };
29 FCITX_CONFIG_ENUM(UIType, PhyscialKeyboard, OnScreenKeyboard);
37 const std::string &uniqueName()
const;
40 const std::string &type()
const;
41 AddonCategory category()
const;
42 const std::string &library()
const;
43 const std::vector<std::string> &dependencies()
const;
44 const std::vector<std::string> &optionalDependencies()
const;
45 const std::vector<std::tuple<std::string, SemanticVersion>> &
46 dependenciesWithVersion()
const;
47 const std::vector<std::tuple<std::string, SemanticVersion>> &
48 optionalDependenciesWithVersion()
const;
49 bool onDemand()
const;
50 int uiPriority()
const;
51 UIType uiType()
const;
52 bool isEnabled()
const;
53 bool isDefaultEnabled()
const;
54 void setOverrideEnabled(OverrideEnabled overrideEnabled);
55 bool isConfigurable()
const;
61 std::unique_ptr<AddonInfoPrivate> d_ptr;
66 #endif // _FCITX_ADDON_H_
Provide a Semantic version 2.0 implementation.