1 | /* |
2 | * Qt implementation of OpenWnn library |
3 | * This file is part of the Qt Virtual Keyboard module. |
4 | * Contact: http://www.qt.io/licensing/ |
5 | * |
6 | * Copyright (C) 2015 The Qt Company |
7 | * Copyright (C) 2008-2012 OMRON SOFTWARE Co., Ltd. |
8 | * |
9 | * Licensed under the Apache License, Version 2.0 (the "License"); |
10 | * you may not use this file except in compliance with the License. |
11 | * You may obtain a copy of the License at |
12 | * |
13 | * http://www.apache.org/licenses/LICENSE-2.0 |
14 | * |
15 | * Unless required by applicable law or agreed to in writing, software |
16 | * distributed under the License is distributed on an "AS IS" BASIS, |
17 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
18 | * See the License for the specific language governing permissions and |
19 | * limitations under the License. |
20 | */ |
21 | |
22 | #ifndef OPENWNNENGINEJAJP_H |
23 | #define OPENWNNENGINEJAJP_H |
24 | |
25 | #include <QObject> |
26 | #include "composingtext.h" |
27 | |
28 | class OpenWnnEngineJAJPPrivate; |
29 | |
30 | class OpenWnnEngineJAJP : public QObject |
31 | { |
32 | Q_OBJECT |
33 | Q_DISABLE_COPY(OpenWnnEngineJAJP) |
34 | Q_DECLARE_PRIVATE(OpenWnnEngineJAJP) |
35 | public: |
36 | explicit OpenWnnEngineJAJP(QObject *parent = 0); |
37 | ~OpenWnnEngineJAJP(); |
38 | |
39 | enum DictionaryType { |
40 | /** Dictionary type (default) */ |
41 | DIC_LANG_INIT = 0, |
42 | /** Dictionary type (Japanese standard) */ |
43 | DIC_LANG_JP = 0, |
44 | /** Dictionary type (English standard) */ |
45 | DIC_LANG_EN = 1, |
46 | /** Dictionary type (Japanese person's name) */ |
47 | DIC_LANG_JP_PERSON_NAME = 2, |
48 | /** Dictionary type (User dictionary) */ |
49 | DIC_USERDIC = 3, |
50 | /** Dictionary type (Japanese EISU-KANA conversion) */ |
51 | DIC_LANG_JP_EISUKANA = 4, |
52 | /** Dictionary type (e-mail/URI) */ |
53 | DIC_LANG_EN_EMAIL_ADDRESS = 5, |
54 | /** Dictionary type (Japanese postal address) */ |
55 | DIC_LANG_JP_POSTAL_ADDRESS = 6, |
56 | }; |
57 | |
58 | enum KeyboardType { |
59 | /** Keyboard type (not defined) */ |
60 | KEYBOARD_UNDEF = 0, |
61 | /** Keyboard type (12-keys) */ |
62 | KEYBOARD_KEYPAD12 = 1, |
63 | /** Keyboard type (Qwerty) */ |
64 | KEYBOARD_QWERTY = 2, |
65 | }; |
66 | |
67 | enum { |
68 | /** Score(frequency value) of word in the learning dictionary */ |
69 | FREQ_LEARN = 600, |
70 | /** Score(frequency value) of word in the user dictionary */ |
71 | FREQ_USER = 500, |
72 | /** Maximum limit length of output */ |
73 | MAX_OUTPUT_LENGTH = 50, |
74 | /** Limitation of predicted candidates */ |
75 | PREDICT_LIMIT = 100, |
76 | /** Limitation of candidates one-line */ |
77 | LIMIT_OF_CANDIDATES_1LINE = 500, |
78 | }; |
79 | |
80 | bool setDictionary(DictionaryType type); |
81 | int predict(const ComposingText &text, int minLen, int maxLen); |
82 | int convert(ComposingText &text); |
83 | QSharedPointer<WnnWord> getNextCandidate(); |
84 | bool learn(WnnWord &word); |
85 | void breakSequence(); |
86 | int makeCandidateListOf(int clausePosition); |
87 | }; |
88 | |
89 | #endif // OPENWNNENGINEJAJP_H |
90 | |