1 /*
2  * SPDX-FileCopyrightText: 2012~2017 CSSlayer <wengxt@gmail.com>
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  *
6  */
7 #ifndef _COMMON_FCITXFLAGS_H_
8 #define _COMMON_FCITXFLAGS_H_
9 
10 #include <cstdint>
11 
12 namespace fcitx {
13 
14 // This need to keep sync with fcitx5.
15 enum FcitxCapabilityFlag : uint64_t {
16     FcitxCapabilityFlag_Preedit = (1 << 1),
17     FcitxCapabilityFlag_Password = (1 << 3),
18     FcitxCapabilityFlag_FormattedPreedit = (1 << 4),
19     FcitxCapabilityFlag_ClientUnfocusCommit = (1 << 5),
20     FcitxCapabilityFlag_SurroundingText = (1 << 6),
21     FcitxCapabilityFlag_Email = (1 << 7),
22     FcitxCapabilityFlag_Digit = (1 << 8),
23     FcitxCapabilityFlag_Uppercase = (1 << 9),
24     FcitxCapabilityFlag_Lowercase = (1 << 10),
25     FcitxCapabilityFlag_NoAutoUpperCase = (1 << 11),
26     FcitxCapabilityFlag_Url = (1 << 12),
27     FcitxCapabilityFlag_Dialable = (1 << 13),
28     FcitxCapabilityFlag_Number = (1 << 14),
29     FcitxCapabilityFlag_NoSpellCheck = (1 << 17),
30     FcitxCapabilityFlag_Alpha = (1 << 21),
31     FcitxCapabilityFlag_GetIMInfoOnFocus = (1 << 23),
32     FcitxCapabilityFlag_RelativeRect = (1 << 24),
33 
34     FcitxCapabilityFlag_Multiline = (1ull << 35),
35     FcitxCapabilityFlag_Sensitive = (1ull << 36),
36     FcitxCapabilityFlag_KeyEventOrderFix = (1ull << 37),
37     FcitxCapabilityFlag_ReportKeyRepeat = (1ull << 38),
38     FcitxCapabilityFlag_ClientSideInputPanel = (1ull << 39),
39 };
40 
41 enum FcitxTextFormatFlag : int {
42     FcitxTextFormatFlag_Underline = (1 << 3), /**< underline is a flag */
43     FcitxTextFormatFlag_HighLight = (1 << 4), /**< highlight the preedit */
44     FcitxTextFormatFlag_DontCommit = (1 << 5),
45     FcitxTextFormatFlag_Bold = (1 << 6),
46     FcitxTextFormatFlag_Strike = (1 << 7),
47     FcitxTextFormatFlag_Italic = (1 << 8),
48     FcitxTextFormatFlag_None = 0,
49 };
50 
51 enum FcitxKeyStates {
52     FcitxKeyState_Alt = 1 << 3,
53     FcitxKeyState_Shift = 1 << 0,
54     FcitxKeyState_Ctrl = 1 << 2,
55 };
56 
57 enum class FcitxCandidateLayoutHint { NotSet, Vertical, Horizontal };
58 
59 } // namespace fcitx
60 
61 #endif // _COMMON_FCITXFLAGS_H_
62