diff --git a/honoka/src/anthyconversion.cpp b/honoka/src/anthyconversion.cpp index 798806b..39447ff 100644 --- a/honoka/src/anthyconversion.cpp +++ b/honoka/src/anthyconversion.cpp @@ -83,7 +83,7 @@ WideString AnthyConversion::getText() { WideString text; for(unsigned int i = 0;i < convResult.size();i ++) { - text += convResult[i].kouho[convResult[i].pos]; + text += convResult[i].kouho[convResult[i].pos].kanji; } return text; } @@ -120,10 +120,10 @@ int l = 0; for(unsigned int i = 0;i < convResult.size();i ++) { if (pos == i) { - Attribute a(l,convResult[i].kouho[convResult[i].pos].length(),SCIM_ATTR_DECORATE,SCIM_ATTR_DECORATE_REVERSE); + Attribute a(l,convResult[i].kouho[convResult[i].pos].kanji.length(),SCIM_ATTR_DECORATE,SCIM_ATTR_DECORATE_REVERSE); attr.push_back(a); } - l += convResult[i].kouho[convResult[i].pos].length(); + l += convResult[i].kouho[convResult[i].pos].kanji.length(); } return attr; } @@ -155,7 +155,7 @@ int l = 0; for(unsigned int i = 0;i < convResult.size();i ++) { if (pos == i) return l; - l += convResult[i].kouho[convResult[i].pos].length(); + l += convResult[i].kouho[convResult[i].pos].kanji.length(); } return 0; } diff --git a/honoka/src/convertor.cpp b/honoka/src/convertor.cpp index 6f11076..c820940 100644 --- a/honoka/src/convertor.cpp +++ b/honoka/src/convertor.cpp @@ -19,6 +19,11 @@ ***************************************************************************/ #include "convertor.h" +ResultEntry::ResultEntry(WideString k,WideString l) +{ + kanji = k; + label = l; +} ResultList::ResultList() { diff --git a/honoka/src/convertor.h b/honoka/src/convertor.h index 8611844..e92d2cc 100644 --- a/honoka/src/convertor.h +++ b/honoka/src/convertor.h @@ -38,6 +38,13 @@ /** @author TAM (Teppei Tamra) */ +class ResultEntry { +public: + ResultEntry(WideString k = WideString(),WideString l = WideString()); + WideString kanji; + WideString label; +}; + class ResultList{ public: ResultList(); @@ -46,8 +53,7 @@ int pos; int count; int kType; - vector label; - vector kouho; + vector kouho; }; class Convertor : public HonokaPluginBase { diff --git a/honoka/src/honoka_imengine.cpp b/honoka/src/honoka_imengine.cpp index badeb70..c0330e9 100644 --- a/honoka/src/honoka_imengine.cpp +++ b/honoka/src/honoka_imengine.cpp @@ -493,7 +493,7 @@ if (m_convList.count) { m_lookup_table.clear(); for(unsigned int i = 0;i < m_convList.count;i ++) { - m_lookup_table.append_candidate(m_convList.kouho.at(i)); + m_lookup_table.append_candidate(m_convList.kouho.at(i).kanji); } startLookup(); } else { @@ -831,7 +831,7 @@ WideString res = m_convList.Yomi; k_convert_hiragana.comp(key) ? m_preeditor->convKataHira(res) : m_preeditor->convHiraKata(res); for(unsigned int i = 0;i < m_convList.count;i ++) { - if (res == m_convList.kouho[i]) { + if (res == m_convList.kouho[i].kanji) { m_convList.pos = i; m_convertor->select(m_convList.pos); updateConversion(); @@ -928,7 +928,7 @@ // ͽ¬������Υ������٥�Ƚ����� if (!m_yosoku) { m_yosoku = true; - update_preedit_string(m_convList.kouho.at(m_convList.pos)); + update_preedit_string(m_convList.kouho.at(m_convList.pos).kanji); update_preedit_caret(0); show_preedit_string(); updateProperty(); @@ -949,14 +949,14 @@ else if (m_convList.pos < 0) m_convList.pos = m_convList.count - 1; m_lookup_table.set_cursor_pos(m_convList.pos); update_lookup_table(m_lookup_table); - update_preedit_string(m_convList.kouho.at(m_convList.pos)); + update_preedit_string(m_convList.kouho.at(m_convList.pos).kanji); update_preedit_caret(0); updateProperty(); return true; } else if (k_commit.comp(key)) { m_yosoku = false; - commit_string(m_convList.kouho.at(m_convList.pos)); + commit_string(m_convList.kouho.at(m_convList.pos).kanji); m_preeditor->reset(); updatePreEditor(); return true; @@ -991,7 +991,7 @@ } */ m_yosoku = false; - commit_string(m_convList.kouho.at(m_convList.pos)); + commit_string(m_convList.kouho.at(m_convList.pos).kanji); m_preeditor->reset(); updatePreEditor(); return process_preedit_key_event(key); @@ -1016,7 +1016,7 @@ update_preedit_string(m_convertor->getText(),m_convertor->getAttributeList()); update_preedit_caret(m_convertor->getCaretPos()); } else { - update_preedit_string(m_convList.kouho.at(m_convList.pos)); + update_preedit_string(m_convList.kouho.at(m_convList.pos).kanji); update_preedit_caret(0); if (!m_yosoku) { // �ޥ��������򤷤�����ͽ¬����⡼�ɤ������� @@ -1222,8 +1222,8 @@ m_lookup_table.clear(); if (!cList.count) return; for (unsigned int i = 0;i < cList.count;i ++) { - if (cList.label.size() > i) m_lookup_table.append_candidate(cList.label.at(i)); - else m_lookup_table.append_candidate(cList.kouho.at(i)); + if (cList.kouho.at(i).label.length()) m_lookup_table.append_candidate(cList.kouho.at(i).label); + else m_lookup_table.append_candidate(cList.kouho.at(i).kanji); } m_lookup_table.set_cursor_pos(cList.pos); update_lookup_table(m_lookup_table); diff --git a/honoka/src/multiconvertor.cpp b/honoka/src/multiconvertor.cpp index 2d7aca1..9a6f1be 100644 --- a/honoka/src/multiconvertor.cpp +++ b/honoka/src/multiconvertor.cpp @@ -56,7 +56,7 @@ int b = instance->m_def_convertor->ren_conversion(); for(unsigned int i = 0;i < b;i ++) { ResultList l = instance->m_def_convertor->getResultList(i); - texts.push_back(l.kouho[0]); + texts.push_back(l.kouho[0].kanji); } for(unsigned int i = 0;i < instance->convertors.size();i ++) { if (instance->m_def_convertor != instance->convertors[i]) { @@ -98,8 +98,8 @@ result.kouho.clear(); ResultList l = instance->m_def_convertor->getResultList(p,kt); for(unsigned int i = 0;i < l.kouho.size();i ++) { - l.label.push_back(l.kouho[i] + utf8_mbstowcs(String(" (")) + - utf8_mbstowcs(instance->m_def_convertor->getName()) + utf8_mbstowcs(String(")"))); + l.kouho[i].label = l.kouho[i].kanji + utf8_mbstowcs(String(" (")) + + utf8_mbstowcs(instance->m_def_convertor->getName()) + utf8_mbstowcs(String(")")); } MultiResultList m; m.list = l; @@ -114,9 +114,9 @@ } for(unsigned int i = 1;i < results.size();i ++) { for(unsigned int j = 0;j < results[i].list.kouho.size();j ++) { - l.label.push_back(results[i].list.kouho[j] + utf8_mbstowcs(String(" (")) + - utf8_mbstowcs(results[i].convertor->getName()) + utf8_mbstowcs(String(")"))); - l.kouho.push_back(results[i].list.kouho[j]); + l.kouho.push_back(ResultEntry(results[i].list.kouho[j].kanji, + results[i].list.kouho[j].kanji + utf8_mbstowcs(String(" (")) + + utf8_mbstowcs(results[i].convertor->getName()) + utf8_mbstowcs(String(")")))); } } l.count = l.kouho.size(); @@ -129,7 +129,7 @@ } bool MultiConvertor::select(int p) { - if (p < result.kouho.size()) texts[getPos()] = result.kouho[p]; + if (p < result.kouho.size()) texts[getPos()] = result.kouho[p].kanji; return true; } @@ -159,7 +159,7 @@ ResultList l = instance->m_def_convertor->getResultList(i); if (!l.count) break; s.push_back(l.Yomi.length()); - texts.push_back(l.kouho[0]); + texts.push_back(l.kouho[0].kanji); } instance->m_def_convertor->setPos(p); for(unsigned int i = 0;i < instance->convertors.size();i ++) { diff --git a/honoka/src/wnnconversion.cpp b/honoka/src/wnnconversion.cpp index a55c350..26c3060 100644 --- a/honoka/src/wnnconversion.cpp +++ b/honoka/src/wnnconversion.cpp @@ -361,7 +361,7 @@ for(unsigned int i = 0;i < convList.count;i ++) { WideString w; m_iconv.convert(w,ykYosokuKouho[i],strlen(ykYosokuKouho[i])); - convList.kouho.push_back(w); + convList.kouho.push_back(ResultEntry(w)); } //jl_yosoku_free(wnn); #endif @@ -464,7 +464,7 @@ } } - bunList.at(pos) = convList.kouho.at(p); + bunList.at(pos) = convList.kouho.at(p).kanji; createText(); return true;