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
28class OpenWnnEngineJAJPPrivate;
29
30class OpenWnnEngineJAJP : public QObject
31{
32 Q_OBJECT
33 Q_DISABLE_COPY(OpenWnnEngineJAJP)
34 Q_DECLARE_PRIVATE(OpenWnnEngineJAJP)
35public:
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

source code of qtvirtualkeyboard/src/plugins/openwnn/3rdparty/openwnn/wnnEngine/include/openwnnenginejajp.h