summaryrefslogtreecommitdiffstats
path: root/src/PYPPhoneticEditor.cc
diff options
context:
space:
mode:
authorPeng Wu <alexepico@gmail.com>2018-06-04 17:20:12 +0800
committerPeng Wu <alexepico@gmail.com>2018-06-04 17:20:12 +0800
commite0d134cb400b563f65bd9de36b5391a34b9e308c (patch)
tree411289e5be3f7ec5569fe8750a62e36e99239061 /src/PYPPhoneticEditor.cc
parent2720cbc52c5e31d4b4a0ad193c6ae369fcd0c5b2 (diff)
downloadibus-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.cc35
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)
{