diff --git a/scim-wnn/src/Makefile.am b/scim-wnn/src/Makefile.am index 4b6e016..94ecb46 100644 --- a/scim-wnn/src/Makefile.am +++ b/scim-wnn/src/Makefile.am @@ -26,13 +26,13 @@ -DSCIM_WNN_ICON_FILE=\"@SCIM_ICONDIR@/scim-wnn.png\" noinst_HEADERS = scim_wnn_imengine.h wnnproto.h romkan.h romkan_table.h \ - wnnconversion.h scim_wnn_def.h preeditor.h kanainput.h + wnnconversion.h scim_wnn_def.h preeditor.h kanainput.h convertor.h moduledir = @SCIM_MODULEDIR@/IMEngine module_LTLIBRARIES = wnn.la wnn_la_SOURCES = scim_wnn_imengine.cpp romkan.cpp wnnconversion.cpp \ - preeditor.cpp kanainput.cpp + preeditor.cpp kanainput.cpp convertor.cpp wnn_la_CFLAGS = @SCIM_CFLAGS@ @SCIM_DEBUG_FLAGS@ wnn_la_CXXFLAGS = @SCIM_CFLAGS@ @SCIM_DEBUG_FLAGS@ diff --git a/scim-wnn/src/convertor.cpp b/scim-wnn/src/convertor.cpp new file mode 100644 index 0000000..5f87b32 --- /dev/null +++ b/scim-wnn/src/convertor.cpp @@ -0,0 +1,96 @@ +/*************************************************************************** + * Copyright (C) 2004 by TAM(Teppei Tamra) * + * tam-t@par.odn.ne.jp * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ +#include "convertor.h" + +/* �������ߡ��᥽�åɤ������� */ + +Convertor::Convertor(ConfigPointer cfg) +{ + config = cfg; +} + + +Convertor::~Convertor() +{ +} + +bool Convertor::isConnected() { + return(false); +} + +void Convertor::reset(){ + return; +} + +void Convertor::setYomiText(WideString yomi) { + return; +} + +int Convertor::ren_conversion() { + return(0); +} + +WideString Convertor::getText() { + return(WideString()); +} + +int Convertor::setPos(int p){ + return(0); +} + +int Convertor::getPos() { + return(0); +} + +ResultList Convertor::getConversionList(int p,int kt){ + return(ResultList()); +} + +ResultList Convertor::getYosokuList(const WideString &str) { + return(ResultList()); +} + +bool Convertor::select(int p) { + return(false); +} + +AttributeList Convertor::getAttributeList() { + return(AttributeList()); +} + +bool Convertor::resizeRegion(int w) { + return(false); +} + +void Convertor::updateFrequency() { + return; +} + +bool Convertor::connect() { + return(false); +} +void Convertor::disconnect() { + return; +} + +int Convertor::getCaretPos() { + return(0); +} + diff --git a/scim-wnn/src/convertor.h b/scim-wnn/src/convertor.h new file mode 100644 index 0000000..4a44fa9 --- /dev/null +++ b/scim-wnn/src/convertor.h @@ -0,0 +1,75 @@ +/*************************************************************************** + * Copyright (C) 2004 by TAM(Teppei Tamra) * + * tam-t@par.odn.ne.jp * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ +#ifndef CONVERTOR_H +#define CONVERTOR_H + +#define Uses_SCIM_CONFIG_BASE + +#include +#include +#include +#include +#include +#include + +using namespace std; +using namespace scim; + +/** +@author TAM (Teppei Tamra) +*/ +class ResultList{ +public: + WideString Yomi; + int pos; + int count; + int kType; + vector kouho; +}; + +class Convertor{ +public: + Convertor(ConfigPointer cfg); + + ~Convertor(); + virtual bool isConnected(); + virtual void reset(); + virtual void setYomiText(WideString yomi); + virtual int ren_conversion(); + virtual WideString getText(); + virtual int setPos(int p); + virtual int getPos(); + virtual ResultList getConversionList(int p = -1 ,int kt = 0); + virtual ResultList getYosokuList(const WideString &str); + virtual bool select(int p); + virtual AttributeList getAttributeList(); + virtual bool resizeRegion(int w); + virtual void updateFrequency(); + virtual bool connect(); + virtual void disconnect(); + virtual int getCaretPos(); + +protected: + ConfigPointer config; + + +}; + +#endif diff --git a/scim-wnn/src/scim_wnn_imengine.cpp b/scim-wnn/src/scim_wnn_imengine.cpp index 173c1a1..c943833 100644 --- a/scim-wnn/src/scim_wnn_imengine.cpp +++ b/scim-wnn/src/scim_wnn_imengine.cpp @@ -193,7 +193,7 @@ for(unsigned int i = 0;i < preeditors.size();i ++) { delete(preeditors.at(i)); } - if (wnn.isConnected()) wnn.wnnDisconnect(); + if (wnn->isConnected()) wnn->disconnect(); } @@ -208,24 +208,14 @@ // @todo if connected to jserver, should disconnect this. - host = _scim_config->read(String(SCIM_CONFIG_WNN_SERVER),String(SCIM_DEFAULT_WNN_SERVER)); - rc = _scim_config->read(String(SCIM_CONFIG_WNN_RC),String(SCIM_DEFAULT_WNN_RC)); + wnn = new WnnConversion(_scim_config); + alp = _scim_config->read(String(SCIM_CONFIG_WNN_ALP),SCIM_DEFAULT_WNN_ALP); mini_status = _scim_config->read(String(SCIM_CONFIG_WNN_MINISTATUS),SCIM_DEFAULT_WNN_MINISTATUS); numkeyselect = _scim_config->read(String(SCIM_CONFIG_WNN_NUMKEY_SELECT),SCIM_DEFAULT_WNN_NUMKEY_SELECT); yosoku = _scim_config->read(String(SCIM_CONFIG_WNN_YOSOKU),SCIM_DEFAULT_WNN_YOSOKU); - String t = _scim_config->read(String(SCIM_CONFIG_WNN_SERVERTYPE),String(SCIM_DEFAULT_WNN_SERVERTYPE)); - - if (t == "Wnn6") { - sType = Wnn6; - } else if (t == "Wnn7") { - sType = Wnn7; - } else if (t == "Wnn8") { - sType = Wnn8; - } else { - sType = Wnn4; - } - + sType = _scim_config->read(String(SCIM_CONFIG_WNN_SERVERTYPE),String(SCIM_DEFAULT_WNN_SERVERTYPE)); + defaultPreEditor = _scim_config->read(String(SCIM_CONFIG_WNN_DEFAULT_PREEDITOR),String(SCIM_DEFAULT_WNN_DEFAULT_PREEDITOR)); auto_conversion = _scim_config->read(String(SCIM_CONFIG_WNN_AUTO_CONVERSION),SCIM_DEFAULT_WNN_AUTO_CONVERSION);; @@ -313,7 +303,7 @@ changePreEditor(defaultPreEditor); // �����ǰ�����³���Ƥ������� - wnn.wnnConnect(String("scim-wnn"),host,rc,sType,0); + wnn->connect(); } @@ -388,8 +378,8 @@ update_preedit_string(m_preeditor->getText()); update_preedit_caret(m_preeditor->getPos()); } - if ((!m_conversion) && yosoku && wnn.isConnected() && (sType == Wnn7) && (!auto_conversion)) { - m_convList = wnn.getYosokuList(m_preeditor->getText()); + if ((!m_conversion) && yosoku && wnn->isConnected() && (sType == "Wnn7") && (!auto_conversion)) { + m_convList = wnn->getYosokuList(m_preeditor->getText()); if (m_convList.count) { m_lookup_table.clear(); for(unsigned int i = 0;i < m_convList.count;i ++) { @@ -419,8 +409,8 @@ */ void WnnInstance::updateConversion() { - update_preedit_string(wnn.getText(),wnn.getAttributeList()); - update_preedit_caret(wnn.getCaretPos()); + update_preedit_string(wnn->getText(),wnn->getAttributeList()); + update_preedit_caret(wnn->getCaretPos()); if (m_lookup) { m_lookup_table.set_cursor_pos(m_convList.pos); update_lookup_table(m_lookup_table); @@ -466,8 +456,8 @@ } else if (k_commit.comp(key)) { if (auto_conversion) { - commit_string(wnn.getText()); - wnn.reset(); + commit_string(wnn->getText()); + wnn->reset(); } else commit_string(m_preeditor->getText(true)); m_preeditor->reset(); updatePreEditor(); @@ -542,8 +532,8 @@ // preeditor�ǽ����Ǥ��ʤ��ä����Ϥ�Ϥ�commit���ƥ��ץꥱ���������֤��٤����� if (m_preeditor->getTextLength()) { if (auto_conversion) { - commit_string(wnn.getText()); - wnn.reset(); + commit_string(wnn->getText()); + wnn->reset(); } else commit_string(m_preeditor->getText(true)); } m_preeditor->reset(); @@ -589,10 +579,10 @@ } } else if (k_commit.comp(key)) { - commit_string(wnn.getText()); - wnn.updateFrequency(); + commit_string(wnn->getText()); + wnn->updateFrequency(); m_preeditor->reset(); - wnn.reset(); + wnn->reset(); m_conversion = false; updatePreEditor(); m_lookup = false; @@ -600,7 +590,7 @@ return(true); } else if (k_cancel.comp(key) || k_backspace.comp(key)) { - wnn.reset(); + wnn->reset(); m_conversion = false; m_lookup = false; alp_count = 0; @@ -613,15 +603,15 @@ else if (m_convList.pos < 0) m_convList.pos = m_convList.count - 1; alp_count ++; - wnn.select(m_convList.pos); + wnn->select(m_convList.pos); updateConversion(); return(true); } else if (k_conversion_expand.comp(key) || k_conversion_shrink.comp(key)) { bool r; - k_conversion_shrink.comp(key) ? r = wnn.resizeRegion(-1) : r = wnn.resizeRegion(1); + k_conversion_shrink.comp(key) ? r = wnn->resizeRegion(-1) : r = wnn->resizeRegion(1); if (!r) return(true); - m_convList = wnn.getConversionList(); + m_convList = wnn->getConversionList(); if (alp == -1) { startLookup(); } else m_lookup = false; @@ -629,16 +619,16 @@ alp_count = 1; return(true); } else - if (k_conversion_rensou.comp(key) && ((sType == Wnn7) || (sType == Wnn8)) ) { - m_convList = wnn.getConversionList(wnn.getPos(),RENSOU); + if (k_conversion_rensou.comp(key) && ((sType == "Wnn7") || (sType == "Wnn8")) ) { + m_convList = wnn->getConversionList(wnn->getPos(),RENSOU); if (m_convList.count == 0) return(true); startLookup(); updateConversion(); alp_count = 1; return(true); } else - if (k_conversion_ikeiji.comp(key) && ((sType == Wnn7) || (sType == Wnn8)) ) { - m_convList = wnn.getConversionList(wnn.getPos(),IKEIJI); + if (k_conversion_ikeiji.comp(key) && ((sType == "Wnn7") || (sType == "Wnn8")) ) { + m_convList = wnn->getConversionList(wnn->getPos(),IKEIJI); if (m_convList.count == 0) return(true); startLookup(); updateConversion(); @@ -646,8 +636,8 @@ return(true); } else if (k_conversion_forward.comp(key) || k_conversion_backward.comp(key)) { - k_conversion_backward.comp(key) ? wnn.setPos(wnn.getPos() - 1) : wnn.setPos(wnn.getPos() + 1); - m_convList = wnn.getConversionList(); + k_conversion_backward.comp(key) ? wnn->setPos(wnn->getPos() - 1) : wnn->setPos(wnn->getPos() + 1); + m_convList = wnn->getConversionList(); if (alp == -1) { startLookup(); } else m_lookup = false; @@ -661,7 +651,7 @@ for(unsigned int i = 0;i < m_convList.count;i ++) { if (res == m_convList.kouho[i]) { m_convList.pos = i; - wnn.select(m_convList.pos); + wnn->select(m_convList.pos); updateConversion(); break; } @@ -683,19 +673,19 @@ if (numkey) { if (m_lookup_table.get_current_page_size() < numc) return(true); m_convList.pos = numc + m_lookup_table.get_current_page_start(); - wnn.select(m_convList.pos); - wnn.setPos(wnn.getPos() + 1); - m_convList = wnn.getConversionList(); + wnn->select(m_convList.pos); + wnn->setPos(wnn->getPos() + 1); + m_convList = wnn->getConversionList(); updateConversion(); startLookup(); return(true); } } - commit_string(wnn.getText()); - wnn.updateFrequency(); + commit_string(wnn->getText()); + wnn->updateFrequency(); m_preeditor->reset(); - wnn.reset(); + wnn->reset(); m_conversion = false; m_lookup = false; alp_count = 0; @@ -788,10 +778,10 @@ int p = m_lookup_table.get_current_page_start() + item; m_convList.pos = p; - wnn.select(m_convList.pos); + wnn->select(m_convList.pos); if (m_convList.kType != YOSOKU) { - update_preedit_string(wnn.getText(),wnn.getAttributeList()); - update_preedit_caret(wnn.getCaretPos()); + update_preedit_string(wnn->getText(),wnn->getAttributeList()); + update_preedit_caret(wnn->getCaretPos()); } else { update_preedit_string(m_convList.kouho.at(m_convList.pos)); update_preedit_caret(0); @@ -818,9 +808,9 @@ int p = m_convList.pos - m_lookup_table.get_current_page_size(); if (p < 0) p = 0; m_convList.pos = p; - wnn.select(m_convList.pos); - update_preedit_string(wnn.getText(),wnn.getAttributeList()); - update_preedit_caret(wnn.getCaretPos()); + wnn->select(m_convList.pos); + update_preedit_string(wnn->getText(),wnn->getAttributeList()); + update_preedit_caret(wnn->getCaretPos()); m_lookup_table.set_cursor_pos(m_convList.pos); update_lookup_table(m_lookup_table); } @@ -835,9 +825,9 @@ int p = m_convList.pos + m_lookup_table.get_current_page_size(); if (p >= m_convList.count) p = m_convList.count - 1; m_convList.pos = p; - wnn.select(m_convList.pos); - update_preedit_string(wnn.getText(),wnn.getAttributeList()); - update_preedit_caret(wnn.getCaretPos()); + wnn->select(m_convList.pos); + update_preedit_string(wnn->getText(),wnn->getAttributeList()); + update_preedit_caret(wnn->getCaretPos()); m_lookup_table.set_cursor_pos(m_convList.pos); update_lookup_table(m_lookup_table); } @@ -848,10 +838,10 @@ alp_count = 0; m_conversion = false; m_lookup = false; - wnn.reset(); + wnn->reset(); m_preeditor->reset(); - //if (wnn.isConnected()) wnn.wnnDisconnect(); - //wnn.wnnConnect(String("scim-wnn"),host,rc,sType,0); + //if (wnn->isConnected()) wnn->wnnDisconnect(); + //wnn->wnnConnect(String("scim-wnn"),host,rc,sType,0); //updatePreEditor(); } @@ -864,9 +854,9 @@ void WnnInstance::focus_out () { if (m_conversion) { - commit_string(wnn.getText()); - wnn.updateFrequency(); - wnn.reset(); + commit_string(wnn->getText()); + wnn->updateFrequency(); + wnn->reset(); m_conversion = false; m_lookup = false; alp_count = 0; @@ -907,29 +897,29 @@ hide_lookup_table(); hide_aux_string(); - if (!wnn.isConnected()) { - if (!wnn.wnnConnect(String("scim-wnn"),host,rc,sType,0)) { + if (!wnn->isConnected()) { + if (!wnn->connect()) { update_aux_string(utf8_mbstowcs(String(_("could not connect to jserver.")))); show_aux_string(); return; } } - wnn.setYomiText(s); - if (wnn.ren_conversion() == -1) { + wnn->setYomiText(s); + if (wnn->ren_conversion() == -1) { update_aux_string(utf8_mbstowcs(String(_("could not connect to jserver.")))); show_aux_string(); return; } m_convList.kouho.clear(); - m_convList = wnn.getConversionList(); + m_convList = wnn->getConversionList(); m_conversion = true; alp_count = 1; show_preedit_string(); - update_preedit_string(wnn.getText(),wnn.getAttributeList()); - update_preedit_caret(wnn.getCaretPos()); + update_preedit_string(wnn->getText(),wnn->getAttributeList()); + update_preedit_caret(wnn->getCaretPos()); if (alp == -1) { startLookup(); } @@ -942,8 +932,8 @@ */ void WnnInstance::autoConversion() { - if (!wnn.isConnected()) { - if (!wnn.wnnConnect(String("scim-wnn"),host,rc,sType,0)) { + if (!wnn->isConnected()) { + if (!wnn->connect()) { update_aux_string(utf8_mbstowcs(String(_("could not connect to jserver.")))); show_aux_string(); show_preedit_string(); @@ -953,9 +943,9 @@ } } - wnn.reset(); - wnn.setYomiText(m_preeditor->getText(true)); - if (wnn.ren_conversion() == -1) { + wnn->reset(); + wnn->setYomiText(m_preeditor->getText(true)); + if (wnn->ren_conversion() == -1) { update_aux_string(utf8_mbstowcs(String(_("could not connect to jserver.")))); show_aux_string(); show_preedit_string(); @@ -965,15 +955,15 @@ } show_preedit_string(); - update_preedit_string(wnn.getText()); - update_preedit_caret(wnn.getText().size()); + update_preedit_string(wnn->getText()); + update_preedit_caret(wnn->getText().size()); } /*! - \fn WnnInstance::createLookupTable(WnnConversionList cList) + \fn WnnInstance::createLookupTable(ResultList cList) */ -void WnnInstance::createLookupTable(WnnConversionList cList) +void WnnInstance::createLookupTable(ResultList cList) { hide_lookup_table(); m_lookup_table.clear(); diff --git a/scim-wnn/src/scim_wnn_imengine.h b/scim-wnn/src/scim_wnn_imengine.h index d829bbb..47d3a5b 100644 --- a/scim-wnn/src/scim_wnn_imengine.h +++ b/scim-wnn/src/scim_wnn_imengine.h @@ -88,11 +88,11 @@ protected: CommonLookupTable m_lookup_table; PreEditor *m_preeditor; - WnnConversion wnn; + Convertor *wnn; bool m_conversion; bool m_yosoku; bool m_lookup; - WnnConversionList m_convList; + ResultList m_convList; PropertyList m_proplist; int alp; int alp_count; @@ -100,18 +100,16 @@ bool mini_status; bool yosoku; bool auto_conversion; - String host; - String rc; - JServerType sType; String defaultPreEditor; IConvert m_iconv; vector preeditors; + String sType; protected: bool process_preedit_key_event(const KeyEvent &key); bool process_conversion_key_event(const KeyEvent &key); bool process_yosoku_key_event(const KeyEvent &key); void startConversion(WideString s); - void createLookupTable(WnnConversionList cList); + void createLookupTable(ResultList cList); void init(); void updatePreEditor(); void updateProperty(); diff --git a/scim-wnn/src/wnnconversion.cpp b/scim-wnn/src/wnnconversion.cpp index 991956d..c00bf39 100644 --- a/scim-wnn/src/wnnconversion.cpp +++ b/scim-wnn/src/wnnconversion.cpp @@ -18,6 +18,7 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ #include "wnnconversion.h" +#include #ifdef HAVE_CONFIG_H #include @@ -35,7 +36,7 @@ #define bind_textdomain_codeset(domain,codeset) #endif -WnnConversion::WnnConversion() +WnnConversion::WnnConversion(ConfigPointer cfg) : Convertor(cfg) { // �Ȥꤢ������ᤦ���Ǥ����ޤ��� m_iconv.set_encoding ("EUC-JP"); @@ -83,6 +84,36 @@ *u = 0; } +/*! + \fn WnnConversion::connect() + */ +bool WnnConversion::connect() +{ + String host = config->read(String(SCIM_CONFIG_WNN_SERVER),String(SCIM_DEFAULT_WNN_SERVER)); + String rc = config->read(String(SCIM_CONFIG_WNN_RC),String(SCIM_DEFAULT_WNN_RC)); + String t = config->read(String(SCIM_CONFIG_WNN_SERVERTYPE),String(SCIM_DEFAULT_WNN_SERVERTYPE)); + + if (t == "Wnn6") { + sType = Wnn6; + } else if (t == "Wnn7") { + sType = Wnn7; + } else if (t == "Wnn8") { + sType = Wnn8; + } else { + sType = Wnn4; + } + + wnnConnect(String("scim-wnn"),host,rc,sType,0); +} + +/*! + \fn WnnConversion::disconnect() + */ +void WnnConversion::disconnect() +{ + wnnDisconnect(); +} + /*! \fn WnnConversion::wnnConnect(String name,String host,String rc,JServerType type,int timeout) @@ -306,7 +337,7 @@ /*! \fn WnnConversion::getYosokuList(const WideString &str) */ -WnnConversionList WnnConversion::getYosokuList(const WideString &str) +ResultList WnnConversion::getYosokuList(const WideString &str) { convList.Yomi = str; convList.kouho.clear(); @@ -333,9 +364,9 @@ /*! - \fn WnnConversion::getConversionList(int p,KouhoType kt) + \fn WnnConversion::getConversionList(int p,int kt) */ -WnnConversionList WnnConversion::getConversionList(int p,KouhoType kt) +ResultList WnnConversion::getConversionList(int p,int kt) { w_char k[1024]; char buf[2048]; diff --git a/scim-wnn/src/wnnconversion.h b/scim-wnn/src/wnnconversion.h index 605c2de..734aa67 100644 --- a/scim-wnn/src/wnnconversion.h +++ b/scim-wnn/src/wnnconversion.h @@ -29,6 +29,7 @@ #include #include #include +#include #ifdef HAVE_CONFIG_H #include @@ -43,42 +44,39 @@ /** @author TAM(Teppei Tamra) */ -enum KouhoType { DEFAULT, IKEIJI, RENSOU, YOSOKU }; enum JServerType { Wnn4, Wnn6, Wnn7, Wnn8 }; -class WnnConversionList{ -public: - WideString Yomi; - int pos; - int count; - KouhoType kType; - vector kouho; -}; +#define DEFAULT 0 +#define IKEIJI 1 +#define RENSOU 2 +#define YOSOKU 3 -class WnnConversion{ +class WnnConversion : public Convertor { public: - WnnConversion(); + WnnConversion(ConfigPointer cfg); ~WnnConversion(); - bool isConnected(); - void reset(); - void setYomiText(WideString yomi); - int ren_conversion(); - WideString getText(); - int setPos(int p); - int getPos(); - WnnConversionList getConversionList(int p = -1 ,KouhoType kt = DEFAULT); - WnnConversionList getYosokuList(const WideString &str); - bool select(int p); - AttributeList getAttributeList(); - bool resizeRegion(int w); - void updateFrequency(); - bool wnnConnect(String name,String host,String rc,JServerType type,int timeout); - void wnnDisconnect(); + virtual bool isConnected(); + virtual void reset(); + virtual void setYomiText(WideString yomi); + virtual int ren_conversion(); + virtual WideString getText(); + virtual int setPos(int p); + virtual int getPos(); + virtual ResultList getConversionList(int p = -1 ,int kt = DEFAULT); + virtual ResultList getYosokuList(const WideString &str); + virtual bool select(int p); + virtual AttributeList getAttributeList(); + virtual bool resizeRegion(int w); + virtual void updateFrequency(); + virtual bool connect(); + virtual void disconnect(); int getCaretPos(); protected: + bool wnnConnect(String name,String host,String rc,JServerType type,int timeout); + void wnnDisconnect(); void wstostr(unsigned char *e,w_char *u); void strtows(w_char *u,unsigned char *e); static int wnn_message (char *s); @@ -100,7 +98,7 @@ vector bunList; vector yomiList; AttributeList attr; - WnnConversionList convList; + ResultList convList; };