1 /* 2 * SPDX-FileCopyrightText: 2017-2017 CSSlayer <wengxt@gmail.com> 3 * 4 * SPDX-License-Identifier: LGPL-2.1-or-later 5 */ 6 #ifndef _FCITX_LIBIME_TABLE_TABLEOPTIONS_H_ 7 #define _FCITX_LIBIME_TABLE_TABLEOPTIONS_H_ 8 9 #include "libimetable_export.h" 10 #include <cstdint> 11 #include <fcitx-utils/macros.h> 12 #include <memory> 13 #include <set> 14 #include <string> 15 #include <unordered_set> 16 17 namespace libime { 18 19 enum class OrderPolicy { 20 No, 21 Fast, 22 Freq, 23 }; 24 25 class TableOptionsPrivate; 26 27 class LIBIMETABLE_EXPORT TableOptions { 28 public: 29 TableOptions(); 30 FCITX_DECLARE_VIRTUAL_DTOR_COPY_AND_MOVE(TableOptions) 31 32 FCITX_DECLARE_PROPERTY(OrderPolicy, orderPolicy, setOrderPolicy); 33 FCITX_DECLARE_PROPERTY(uint32_t, noSortInputLength, setNoSortInputLength); 34 FCITX_DECLARE_PROPERTY(bool, autoSelect, setAutoSelect); 35 FCITX_DECLARE_PROPERTY(int, autoSelectLength, setAutoSelectLength); 36 FCITX_DECLARE_PROPERTY(std::string, autoSelectRegex, setAutoSelectRegex); 37 FCITX_DECLARE_PROPERTY(int, noMatchAutoSelectLength, 38 setNoMatchAutoSelectLength); 39 FCITX_DECLARE_PROPERTY(std::string, noMatchAutoSelectRegex, 40 setNoMatchAutoSelectRegex); 41 FCITX_DECLARE_PROPERTY(bool, commitRawInput, setCommitRawInput); 42 FCITX_DECLARE_PROPERTY(std::set<uint32_t>, endKey, setEndKey); 43 FCITX_DECLARE_PROPERTY(uint32_t, matchingKey, setMatchingKey); 44 FCITX_DECLARE_PROPERTY(bool, exactMatch, setExactMatch); 45 FCITX_DECLARE_PROPERTY(bool, learning, setLearning); 46 FCITX_DECLARE_PROPERTY(int, autoPhraseLength, setAutoPhraseLength); 47 FCITX_DECLARE_PROPERTY(int, saveAutoPhraseAfter, setSaveAutoPhraseAfter); 48 FCITX_DECLARE_PROPERTY(std::unordered_set<std::string>, autoRuleSet, 49 setAutoRuleSet); 50 FCITX_DECLARE_PROPERTY(std::string, languageCode, setLanguageCode); 51 52 private: 53 std::unique_ptr<TableOptionsPrivate> d_ptr; 54 FCITX_DECLARE_PRIVATE(TableOptions); 55 }; 56 } // namespace libime 57 58 #endif // _FCITX_LIBIME_TABLE_TABLEOPTIONS_H_ 59