diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/PYEditor.h | 3 | ||||
-rw-r--r-- | src/PYPEmojiCandidates.cc | 15 |
2 files changed, 11 insertions, 7 deletions
diff --git a/src/PYEditor.h b/src/PYEditor.h index e5b2319..6829675 100644 --- a/src/PYEditor.h +++ b/src/PYEditor.h @@ -40,6 +40,7 @@ typedef std::shared_ptr<Editor> EditorPtr; class TraditionalCandidates; class LuaTriggerCandidates; class LuaConverterCandidates; +class EmojiCandidates; class Editor { friend class TraditionalCandidates; @@ -49,6 +50,8 @@ class Editor { friend class LuaConverterCandidates; #endif + friend class EmojiCandidates; + public: Editor (PinyinProperties & prop, Config & config); virtual ~Editor (void); diff --git a/src/PYPEmojiCandidates.cc b/src/PYPEmojiCandidates.cc index c046a2a..a0587fe 100644 --- a/src/PYPEmojiCandidates.cc +++ b/src/PYPEmojiCandidates.cc @@ -25,6 +25,7 @@ #include <algorithm> #include <string> #include "PYPPhoneticEditor.h" +#include "PYConfig.h" #include "PYPEmojiTable.h" using namespace PY; @@ -35,14 +36,14 @@ EmojiCandidates::EmojiCandidates (Editor *editor) } static bool compare_match_less_than (const EmojiItem & lhs, - const EmojiItem & rhs) { + const EmojiItem & rhs) { return 0 > strcmp (lhs.m_emoji_match, rhs.m_emoji_match); } -static bool search_emoji (EmojiItem * emojis, - guint emojis_len, - const char * match, - std::string & emoji) { +static bool search_emoji (const EmojiItem * emojis, + guint emojis_len, + const char * match, + std::string & emoji) { const EmojiItem item = {match, NULL}; std::pair<const EmojiItem *, const EmojiItem *> range; @@ -78,7 +79,7 @@ EmojiCandidates::processCandidates (std::vector<EnhancedCandidate> & candidates) std::string emoji; if (search_emoji (english_emoji_table, G_N_ELEMENTS (english_emoji_table), - m_text, emoji)) { + m_editor->m_text, emoji)) { enhanced.m_display_string = emoji; candidates.insert (pos, enhanced); return TRUE; @@ -86,7 +87,7 @@ EmojiCandidates::processCandidates (std::vector<EnhancedCandidate> & candidates) int num = std::min (m_editor->m_config.pageSize (), (guint)candidates.size ()); for (int i = 0; i < num; ++i) { - text = candidates[i].m_display_string.c_str (); + String text = candidates[i].m_display_string; if (search_emoji (chinese_emoji_table, G_N_ELEMENTS (chinese_emoji_table), |