diff options
author | Peng Wu <alexepico@gmail.com> | 2018-06-04 17:20:12 +0800 |
---|---|---|
committer | Peng Wu <alexepico@gmail.com> | 2018-06-04 17:20:12 +0800 |
commit | e0d134cb400b563f65bd9de36b5391a34b9e308c (patch) | |
tree | 411289e5be3f7ec5569fe8750a62e36e99239061 /src/PYPPhoneticEditor.cc | |
parent | 2720cbc52c5e31d4b4a0ad193c6ae369fcd0c5b2 (diff) | |
download | ibus-libpinyin-e0d134cb400b563f65bd9de36b5391a34b9e308c.tar.gz ibus-libpinyin-e0d134cb400b563f65bd9de36b5391a34b9e308c.tar.xz ibus-libpinyin-e0d134cb400b563f65bd9de36b5391a34b9e308c.zip |
re-factor LibPinyinCandidates
Diffstat (limited to 'src/PYPPhoneticEditor.cc')
-rw-r--r-- | src/PYPPhoneticEditor.cc | 35 |
1 files changed, 34 insertions, 1 deletions
diff --git a/src/PYPPhoneticEditor.cc b/src/PYPPhoneticEditor.cc index 481a06f..5e58854 100644 --- a/src/PYPPhoneticEditor.cc +++ b/src/PYPPhoneticEditor.cc @@ -18,7 +18,9 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + #include "PYPPhoneticEditor.h" +#include <assert.h> #include "PYConfig.h" #include "PYPinyinProperties.h" #include "PYSimpTradConverter.h" @@ -30,7 +32,9 @@ PhoneticEditor::PhoneticEditor (PinyinProperties &props, Config &config): Editor (props, config), m_pinyin_len (0), - m_lookup_table (m_config.pageSize ()) + m_lookup_table (m_config.pageSize ()), + m_libpinyin_candidates (this), + m_traditional_candidates (this) { } @@ -192,6 +196,7 @@ PhoneticEditor::updateLookupTable (void) { m_lookup_table.clear (); + updateCandidates (); fillLookupTable (); if (m_lookup_table.size()) { Editor::updateLookupTable (m_lookup_table, TRUE); @@ -200,6 +205,17 @@ PhoneticEditor::updateLookupTable (void) } } +gboolean +PhoneticEditor::updateCandidates (void) +{ + m_libpinyin_candidates.processCandidates (m_candidates); + + if (!m_props.modeSimp ()) + m_traditional_candidates.processCandidates (m_candidates); + + return TRUE; +} + #if 0 gboolean PhoneticEditor::fillLookupTableByPage (void) @@ -372,6 +388,23 @@ PhoneticEditor::getLookupCursor (void) return lookup_cursor; } +SelectCandidateAction +PhoneticEditor::selectCandidateInternal (EnhancedCandidate & candidate) +{ + switch (candidate.m_candidate_type) { + case CANDIDATE_NBEST_MATCH: + case CANDIDATE_NORMAL: + case CANDIDATE_USER: + return m_libpinyin_candidates.selectCandidate (candidate); + + case CANDIDATE_TRADITIONAL_CHINESE: + return m_traditional_candidates.selectCandidate (candidate); + + default: + assert (FALSE); + } +} + gboolean PhoneticEditor::selectCandidate (guint i) { |