summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeng Wu <alexepico@gmail.com>2019-12-19 15:00:01 +0800
committerPeng Wu <alexepico@gmail.com>2019-12-19 15:00:01 +0800
commit362e5a9dc697decd93382dd66507d4838800cbf9 (patch)
treea173c1a244ffa0ecc80c63aea100fd2886eaf3d8
parent503de9a7f203eb3d98f1313e5e0acd2ad77be2a7 (diff)
downloadibus-libpinyin-362e5a9dc697decd93382dd66507d4838800cbf9.tar.gz
ibus-libpinyin-362e5a9dc697decd93382dd66507d4838800cbf9.tar.xz
ibus-libpinyin-362e5a9dc697decd93382dd66507d4838800cbf9.zip
write removeCandidate method
-rw-r--r--src/PYPEmojiCandidates.cc9
-rw-r--r--src/PYPEmojiCandidates.h1
-rw-r--r--src/PYPLuaConverterCandidates.cc12
-rw-r--r--src/PYPLuaConverterCandidates.h1
-rw-r--r--src/PYPLuaTriggerCandidates.cc9
-rw-r--r--src/PYPLuaTriggerCandidates.h1
-rw-r--r--src/PYPTradCandidates.cc12
-rw-r--r--src/PYPTradCandidates.h1
8 files changed, 46 insertions, 0 deletions
diff --git a/src/PYPEmojiCandidates.cc b/src/PYPEmojiCandidates.cc
index 928e617..805b2e4 100644
--- a/src/PYPEmojiCandidates.cc
+++ b/src/PYPEmojiCandidates.cc
@@ -111,3 +111,12 @@ EmojiCandidates::selectCandidate (EnhancedCandidate & enhanced)
return SELECT_CANDIDATE_COMMIT;
}
+
+gboolean
+EmojiCandidates::removeCandidate (EnhancedCandidate & enhanced)
+{
+ assert (CANDIDATE_EMOJI == enhanced.m_candidate_type);
+ assert (0 == enhanced.m_candidate_id);
+
+ return FALSE;
+}
diff --git a/src/PYPEmojiCandidates.h b/src/PYPEmojiCandidates.h
index 19a2c6d..fe69623 100644
--- a/src/PYPEmojiCandidates.h
+++ b/src/PYPEmojiCandidates.h
@@ -36,6 +36,7 @@ public:
gboolean processCandidates (std::vector<EnhancedCandidate> & candidates);
int selectCandidate (EnhancedCandidate & enhanced);
+ gboolean removeCandidate (EnhancedCandidate & enhanced);
protected:
EnhancedCandidate m_candidate;
diff --git a/src/PYPLuaConverterCandidates.cc b/src/PYPLuaConverterCandidates.cc
index 472fc90..81b93b6 100644
--- a/src/PYPLuaConverterCandidates.cc
+++ b/src/PYPLuaConverterCandidates.cc
@@ -100,3 +100,15 @@ LuaConverterCandidates::selectCandidate (EnhancedCandidate & enhanced)
return action;
}
+
+gboolean
+LuaConverterCandidates::removeCandidate (EnhancedCandidate & enhanced)
+{
+ guint id = enhanced.m_candidate_id;
+ assert (CANDIDATE_LUA_CONVERTER == enhanced.m_candidate_type);
+
+ if (G_UNLIKELY (id >= m_candidates.size ()))
+ return FALSE;
+
+ return m_editor->removeCandidateInternal (m_candidates[id]);
+}
diff --git a/src/PYPLuaConverterCandidates.h b/src/PYPLuaConverterCandidates.h
index be0204b..a520e65 100644
--- a/src/PYPLuaConverterCandidates.h
+++ b/src/PYPLuaConverterCandidates.h
@@ -44,6 +44,7 @@ public:
gboolean processCandidates (std::vector<EnhancedCandidate> & candidates);
int selectCandidate (EnhancedCandidate & enhanced);
+ gboolean removeCandidate (EnhancedCandidate & enhanced);
protected:
std::vector<EnhancedCandidate> m_candidates;
diff --git a/src/PYPLuaTriggerCandidates.cc b/src/PYPLuaTriggerCandidates.cc
index 9201f11..486819b 100644
--- a/src/PYPLuaTriggerCandidates.cc
+++ b/src/PYPLuaTriggerCandidates.cc
@@ -99,3 +99,12 @@ LuaTriggerCandidates::selectCandidate (EnhancedCandidate & enhanced)
return SELECT_CANDIDATE_COMMIT;
}
+
+gboolean
+LuaTriggerCandidates::removeCandidate (EnhancedCandidate & enhanced)
+{
+ assert (CANDIDATE_LUA_TRIGGER == enhanced.m_candidate_type);
+ assert (0 == enhanced.m_candidate_id);
+
+ return FALSE;
+}
diff --git a/src/PYPLuaTriggerCandidates.h b/src/PYPLuaTriggerCandidates.h
index bf926e8..82287a8 100644
--- a/src/PYPLuaTriggerCandidates.h
+++ b/src/PYPLuaTriggerCandidates.h
@@ -41,6 +41,7 @@ public:
gboolean processCandidates (std::vector<EnhancedCandidate> & candidates);
int selectCandidate (EnhancedCandidate & enhanced);
+ gboolean removeCandidate (EnhancedCandidate & enhanced);
protected:
Pointer<IBusEnginePlugin> m_lua_plugin;
diff --git a/src/PYPTradCandidates.cc b/src/PYPTradCandidates.cc
index c16b669..fba4c9d 100644
--- a/src/PYPTradCandidates.cc
+++ b/src/PYPTradCandidates.cc
@@ -68,3 +68,15 @@ TraditionalCandidates::selectCandidate (EnhancedCandidate & enhanced)
return action;
}
+
+gboolean
+TraditionalCandidates::removeCandidate (EnhancedCandidate & enhanced)
+{
+ guint id = enhanced.m_candidate_id;
+ assert (CANDIDATE_TRADITIONAL_CHINESE == enhanced.m_candidate_type);
+
+ if (G_UNLIKELY (id >= m_candidates.size ()))
+ return FALSE;
+
+ return m_editor->removeCandidateInternal (m_candidates[id]);
+}
diff --git a/src/PYPTradCandidates.h b/src/PYPTradCandidates.h
index 377206c..3ad18a6 100644
--- a/src/PYPTradCandidates.h
+++ b/src/PYPTradCandidates.h
@@ -41,6 +41,7 @@ public:
gboolean processCandidates (std::vector<EnhancedCandidate> & candidates);
int selectCandidate (EnhancedCandidate & enhanced);
+ gboolean removeCandidate (EnhancedCandidate & enhanced);
protected:
std::vector<EnhancedCandidate> m_candidates;