t-suw****@users*****
t-suw****@users*****
2007年 9月 2日 (日) 12:36:25 JST
Index: AquaSKK/src/component/SKK.h diff -u AquaSKK/src/component/SKK.h:1.1.2.1 AquaSKK/src/component/SKK.h:1.1.2.2 --- AquaSKK/src/component/SKK.h:1.1.2.1 Sun Aug 19 19:00:32 2007 +++ AquaSKK/src/component/SKK.h Sun Sep 2 12:36:24 2007 @@ -1,5 +1,5 @@ /* -*- C++ -*- - $Id: SKK.h,v 1.1.2.1 2007/08/19 10:00:32 t-suwa Exp $ + $Id: SKK.h,v 1.1.2.2 2007/09/02 03:36:24 t-suwa Exp $ MacOS X implementation of the SKK input method. @@ -31,6 +31,17 @@ Jisx0208Latin, Ascii }; + + enum EditState { + DirectInput, + EntryInput, + OkuriInput, + AbbrevInput, + Completion, + SingleCandidate, + MultipleCandidate, + EntryRemove + }; } #endif Index: AquaSKK/src/component/SKKSession.cpp diff -u AquaSKK/src/component/SKKSession.cpp:1.1.2.2 AquaSKK/src/component/SKKSession.cpp:1.1.2.3 --- AquaSKK/src/component/SKKSession.cpp:1.1.2.2 Sun Aug 26 01:34:45 2007 +++ AquaSKK/src/component/SKKSession.cpp Sun Sep 2 12:36:24 2007 @@ -1,5 +1,5 @@ /* -*- C++ -*- - $Id: SKKSession.cpp,v 1.1.2.2 2007/08/25 16:34:45 t-suwa Exp $ + $Id: SKKSession.cpp,v 1.1.2.3 2007/09/02 03:36:24 t-suwa Exp $ MacOS X implementation of the SKK input method. @@ -29,6 +29,7 @@ #include "SKKConfig.h" SKKSession::SKKSession(const ComponentInstance instance) : instance_(instance) { + engine_.Start(); } // ã¤ãã³ã @@ -36,6 +37,8 @@ SKKEventParam param = SKKPreProcessor::theInstance().Execute(event); std::cerr << param.dump() << std::endl; + engine_.Dispatch(Event(param.event, param)); + // ã¬ã¬ã·ã¼ã¨ã³ã¸ã³ SKKEvent legacy_event(event); @@ -66,38 +69,48 @@ // å ¥åã¢ã¼ãå¤æ´ void SKKSession::SelectInputMode(SKK::InputMode mode) { + SKKEventParam param; + // å ¥åã¢ã¼ããå¤æ´ãã switch(mode) { case SKK::Hirakana: + param.event = SKK_HIRAKANA; if(!legacy_.isHiraganaInputMode()) { legacy_.goHiraganaInputMode(); } break; case SKK::Katakana: + param.event = SKK_KATAKANA; if(!legacy_.isZenKataInputMode()) { legacy_.goZenKataInputMode(); } break; case SKK::Jisx0201Kana: + param.event = SKK_JISX0201KANA; if(!legacy_.isHanKataInputMode()) { legacy_.goHanKataInputMode(); } break; case SKK::Jisx0208Latin: + param.event = SKK_JISX0208LATIN; if(!legacy_.isZenAscInputMode()) { legacy_.goZenAscInputMode(); } break; case SKK::Ascii: + param.event = SKK_ASCII; if(!legacy_.isHanAscInputMode()) { legacy_.goHanAscInputMode(); } break; } + + // æ°ã¨ã³ã¸ã³ã®å ¥åã¢ã¼ãå¤æ´ + engine_.Dispatch(Event(param.event, param)); } Point SKKSession::GetInputPosition(long offset) const { Index: AquaSKK/src/component/SKKSession.h diff -u AquaSKK/src/component/SKKSession.h:1.1.2.1 AquaSKK/src/component/SKKSession.h:1.1.2.2 --- AquaSKK/src/component/SKKSession.h:1.1.2.1 Sun Aug 19 19:00:32 2007 +++ AquaSKK/src/component/SKKSession.h Sun Sep 2 12:36:24 2007 @@ -1,5 +1,5 @@ /* -*- C++ -*- - $Id: SKKSession.h,v 1.1.2.1 2007/08/19 10:00:32 t-suwa Exp $ + $Id: SKKSession.h,v 1.1.2.2 2007/09/02 03:36:24 t-suwa Exp $ MacOS X implementation of the SKK input method. @@ -28,9 +28,11 @@ #include "SKK.h" #include "SKKEvent.h" #include "IMSessionInputMode.h" +#include "SKKEngine.h" -class SKKSession { +class SKKSession : StateContainerTraits<SKKEnvironment> { ComponentInstance instance_; + SKKEngine engine_; IMSessionInputMode legacy_; struct buffer_size {