Tomotaka SUWA
t-suw****@users*****
2007年 6月 12日 (火) 23:25:09 JST
Index: AquaSKK/BIMClientServer.h diff -u AquaSKK/BIMClientServer.h:1.6 AquaSKK/BIMClientServer.h:1.7 --- AquaSKK/BIMClientServer.h:1.6 Sat Jun 3 10:23:18 2006 +++ AquaSKK/BIMClientServer.h Tue Jun 12 23:25:08 2007 @@ -1,10 +1,10 @@ /* - $Id: BIMClientServer.h,v 1.6 2006/06/03 01:23:18 t-suwa Exp $ + $Id: BIMClientServer.h,v 1.7 2007/06/12 14:25:08 t-suwa Exp $ MacOS X implementation of the SKK input method. Copyright (C) 2002 phonohawk - Copyright (C) 2005-2006 Tomotaka SUWA <t.suw****@mac*****> + Copyright (C) 2005-2007 Tomotaka SUWA <t.suw****@mac*****> 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 @@ -24,29 +24,27 @@ #ifndef INC__BIMClientServer__ #define INC__BIMClientServer__ -// R|[lgÌoh¼ +// ã³ã³ãã¼ãã³ãã®ãã³ãã«å #define kIMBundleIdentifier "jp.sourceforge.AquaSKKInputMethod" -// T[o[¼ -//#define kBasicServerName "\pAquaSKKServer.app" +// ãµã¼ãã¼å #define kCSTR_SKKServerName "AquaSKKServer.app" -// T[o[|[g¼ +// ãµã¼ãã¼ãã¼ãå #define kBasicServerPortName "jp.sourceforge.AquaSKKServer" -// T[o[Ì RunLoopMode +// ãµã¼ãã¼ã® RunLoopMode #define kAquaSKKServerRunLoopMode CFSTR("AquaSKK::ServerRunLoopMode") -// NCAgÌ RunLoopMode +// ã¯ã©ã¤ã¢ã³ãã® RunLoopMode #define kAquaSKKClientRunLoopMode CFSTR("AquaSKK::ClientRunLoopMode") -// NCAg¨IÖÌbZ[WÌMÅAcontentÌæªÉtwb_B +// ã¯ã©ã¤ã¢ã³ãâé¯ã¸ã®ã¡ãã»ã¼ã¸ã®éä¿¡ã§ãcontentã®å é ã«ä»ããããã struct BasicMessageHeader { ProcessSerialNumber fProcessSerialNumber; }; -typedef struct BasicMessageHeader BasicMessageHeader; -// TSM©çîñðø«o·Égp·é\¢ÌB +// TSMããæ å ±ãå¼ãåºãæã«ä½¿ç¨ããæ§é ä½ã struct OffsetToPosParams { long fRefCon; long fTextOffset; @@ -70,51 +68,82 @@ typedef SInt32 BasicMessageID; -// bZ[WÌæØè¶ -#define SKK_MSG_DELIMITER (0x0b) /* ¼^u */ +// ã¡ãã»ã¼ã¸ã®åºåãæå +#define SKK_MSG_DELIMITER (0x0b) // åç´ã¿ã -enum { // NCAg©çIÖÌbZ[W - kBasicMessageActivated = 100, // SKKªANeBuÉÈÁ½B - kBasicMessageDeactivated = 101, // SKKªANeBuÅÈÈÁ½B - kBasicMessageHidePalettes = 102, // pbgðB·æ¤ATSMÉw¦³ê½ - - kSKKMessageSearch = 200, // õBNGÌ`®ÍUniCharÌzñÅá¦Îu+½Æe ¦vâu-Í¢êÂvB - // è¼¼ª êÎ檪+A³¯êÎ-Bè¼¼ª éêͼpXy[XÅæØçêÄ¢éB - // X|XÍá¦Îuᦠg¦vuzñ rñvÌæ¤É¼pXy[XÅæØçêÄ¢éB - kSKKCreateCandidatesWindow = 201, // óâIðæÊð\¦B - // NGÌ`®Í - // +0 \¦·×«xÀW(QuickDrawÀW) t«2oCg® - // +2 \¦·×«yÀW(QuickDrawÀW) t«2oCg® - // +4 óâ(ãq) UniCharzñ - // óâ:u¢ ± gvÌæ¤É¿Ìªð¼pXy[XÅæØÁÄÀ×½àÌB +enum { // ã¯ã©ã¤ã¢ã³ãããé¯ã¸ã®ã¡ãã»ã¼ã¸ + // SKKãã¢ã¯ãã£ãã«ãªã£ã + kBasicMessageActivated = 100, + + // SKKãã¢ã¯ãã£ãã§ãªããªã£ã + kBasicMessageDeactivated = 101, + + // ãã¬ãããé ããããTSMã«æ示ããã + kBasicMessageHidePalettes = 102, + + // æ¤ç´¢ï¼ã¯ã¨ãªã®å½¢å¼ã¯UniCharã®é åã§ä¾ãã°ã+ãã¨e ãããã-ã¯ããã¤ã + // éãä»®åãããã°å é ã+ãç¡ããã°- + // éãä»®åãããå ´å㯠SKK_MSG_DELIMITER ã§åºåããã¦ãã + // ã¬ã¹ãã³ã¹ã¯ä¾ãã°ãé å æåãã®ããã« SKK_MSG_DELIMITER ã§åºåããã¦ãã + kSKKMessageSearch = 200, + + // åè£é¸æç»é¢ã表示 + // ã¯ã¨ãªã®å½¢å¼ã¯ + // +0 表示ãã¹ãx座æ¨(QuickDraw座æ¨) 符å·ä»ã2ãã¤ãæ´æ° + // +2 表示ãã¹ãy座æ¨(QuickDraw座æ¨) 符å·ä»ã2ãã¤ãæ´æ° + // +4 åè£(å¾è¿°) UniCharé å + // åè£:ãé¿ äº äº æãã®ããã«æ¼¢åã®é¨åã SKK_MSG_DELIMITER ã§åºåã£ã¦ä¸¦ã¹ããã®ã // - // X|XÍ - // +0 óâIðæÊID ³µ2oCg® - // +2 1t[É\¦·éóâÌ ³µ2oCg® - // +4 t[ ³µ2oCg® - // v6oCgB - kSKKCandidatesWindowNext = 202, // wèµ½óâIðæÊðÖXN[BNGÍ2oCgÌóâIðæÊIDBX|X³µB - kSKKCandidatesWindowPrev = 203, // OÖXN[BãÍNextƯ¶B - kSKKCloseCandidatesWindow = 204, // ¶éBãÍNextƯ¶B - kSKKRegisterThisToUserDic = 205, // [U[«ÖÌo^BNGÌ`®ÍUniCharÌzñÅA - // á¦Îu+½Æe ¦ ávu-Í¢ê zñvÆÈÁÄ¢éBX|Xͳ¢B - kSKKRemoveThisFromUserDic = 206, // [U[«©çíBNGÌ`®ÍkSKKRegisterThisToUserDicƯ¶B + // ã¬ã¹ãã³ã¹ã¯ + // +0 åè£é¸æç»é¢ID 符å·ç¡ã2ãã¤ãæ´æ° + // +2 1ãã¬ã¼ã ã«è¡¨ç¤ºããåè£ã®æ° 符å·ç¡ã2ãã¤ãæ´æ° + // +4 ãã¬ã¼ã æ° ç¬¦å·ç¡ã2ãã¤ãæ´æ° + kSKKCreateCandidatesWindow = 201, + + // æå®ããåè£é¸æç»é¢ã次ã¸ã¹ã¯ãã¼ã« + // ã¯ã¨ãªã¯2ãã¤ãã®åè£é¸æç»é¢ ID + kSKKCandidatesWindowNext = 202, + + // åã¸ã¹ã¯ãã¼ã« + kSKKCandidatesWindowPrev = 203, + + // éãã + kSKKCloseCandidatesWindow = 204, + + // ã¦ã¼ã¶ã¼è¾æ¸ã¸ã®ç»é² + // ã¯ã¨ãªã®å½¢å¼ã¯UniCharã®é åã§ã + // ä¾ãã°ã+ãã¨e ã ä¾ãã-ã¯ãã㤠é åãã¨ãªã£ã¦ãã + kSKKRegisterThisToUserDic = 205, + + // ã¦ã¼ã¶ã¼è¾æ¸ããåé¤ + // ã¯ã¨ãªã®å½¢å¼ã¯kSKKRegisterThisToUserDicã¨åã + kSKKRemoveThisFromUserDic = 206, - kSKKShowAboutBox = 300, // AboutBoxð\¦·éBX|Xͳ¢B - kSKKShowPreferencesBox = 301, // «ÝèEChEð\¦·éBX|Xͳ¢B - kSKKShowWordRegistrationBox = 302, // Pêo^EChEð\¦·éBX|Xͳ¢B + // AboutBoxã表示ãã(ã¬ã¹ãã³ã¹ç¡) + kSKKShowAboutBox = 300, + + // ç°å¢è¨å®ã¦ã¤ã³ãã¦ã表示(ã¬ã¹ãã³ã¹ç¡) + kSKKShowPreferencesBox = 301, + + // åèªç»é²ã¦ã¤ã³ãã¦ã表示(ã¬ã¹ãã³ã¹ç¡) + kSKKShowWordRegistrationBox = 302, - kSKKFetchCompletions = 400, // â®ÌóâðõBNGÌ`®ÍUniCharÌzñÅA - // á¦ÎuÙvBX|XÍuÙ© Ù©ñvÌæ¤É¼pXy[XÅæØç꽩oµêÌXgB + // è£å®ã®åè£ãæ¤ç´¢ + // ã¯ã¨ãªã®å½¢å¼ã¯UniCharã®é åã§ä¾ãã°ãã»ããªã© + // ã¬ã¹ãã³ã¹ã¯ãã»ã ã»ãããã®ããã« SKK_MSG_DELIMITER ã§åºåãããè¦åºãèªã®ãªã¹ã + kSKKFetchCompletions = 400, + + // ãã°ã«å¤æã®è¦åºãèªãç»é² + kSKKRegisterToggleEntry = 401, - kBasicMessageIsSkkEggLikeNewline = 500, // + kBasicMessageIsSkkEggLikeNewline = 500, kBasicMessageIsNumericKeypad_HalfWidth = 501, kBasicMessageIsAsciiModeStartup = 502, kBasicMessageUseNumericConversion = 503, kBasicMessageKbdLayoutId = 504, }; -// T[o[©çNCAgÖÌÊmbZ[W +// ãµã¼ãã¼ããã¯ã©ã¤ã¢ã³ãã¸ã®éç¥ã¡ãã»ã¼ã¸ enum { kSKKClientConfigurationModified = 100, }; Index: AquaSKK/ChangeLog diff -u AquaSKK/ChangeLog:1.40 AquaSKK/ChangeLog:1.41 --- AquaSKK/ChangeLog:1.40 Sat Jun 9 10:59:16 2007 +++ AquaSKK/ChangeLog Tue Jun 12 23:25:08 2007 @@ -1,3 +1,18 @@ +2007-06-12 Tomotaka SUWA <t.suw****@mac*****> + + * ServerMessageReceiver.* (registerToggleEntry): ãã°ã«å¤æã®çµæã + ã¦ã¼ã¶ã¼è¾æ¸ã«ç»é²ãããå¤æåè£ã¯ç©ºã + + * KanjiConversionMode.* (registerToggleEntry): æ°è¦è¿½å é¢æ°ããã° + ã«å¤æã®çµæãå¦ç¿ããã + + * DictionarySet.cpp (RegisterOkuriNasi): entry.empty() ãã§ãã¯ãã + ãªãããã«ä¿®æ£ããã°ã«å¤æãå¦ç¿ããå ´åãentry ã¯ç©ºã®ããã + + * Dictionary.h: SKKEntry ã§ç©ºã®å¤æåè£ã«å¯¾å¿ã + + * BIMClientServer.h: kSKKRegisterToggleEntry ã追å ãã³ã¼ãæ´å½¢ã + 2007-06-09 Tomotaka SUWA <t.suw****@mac*****> * AquaSKK 3.4 ãªãªã¼ã¹ã Index: AquaSKK/Dictionary.h diff -u AquaSKK/Dictionary.h:1.7 AquaSKK/Dictionary.h:1.8 --- AquaSKK/Dictionary.h:1.7 Fri Dec 29 00:37:03 2006 +++ AquaSKK/Dictionary.h Tue Jun 12 23:25:08 2007 @@ -1,10 +1,10 @@ /* -*- C++ -*- - $Id: Dictionary.h,v 1.7 2006/12/28 15:37:03 t-suwa Exp $ + $Id: Dictionary.h,v 1.8 2007/06/12 14:25:08 t-suwa Exp $ MacOS X implementation of the SKK input method. Copyright (C) 2002 phonohawk - Copyright (C) 2005-2006 Tomotaka SUWA <t.suw****@mac*****> + Copyright (C) 2005-2007 Tomotaka SUWA <t.suw****@mac*****> 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 @@ -354,6 +354,9 @@ } void addCandidate(const SKKCandidate& theCandidate) { + // åè£ã空ãªãä½ãããªã + if(theCandidate.IsEmpty()) return; + // 註éãå«ãå®å ¨ãªã¨ã³ããªãæ¢ã SKKCandidateIterator i = getCandidateIterator(theCandidate); @@ -367,6 +370,9 @@ } void updateCandidate(const SKKCandidate& theCandidate) { + // åè£ã空ãªãä½ãããªã + if(theCandidate.IsEmpty()) return; + SKKCandidate target; // 註éãå«ãå®å ¨ãªã¨ã³ããªãæ¢ã Index: AquaSKK/DictionarySet.cpp diff -u AquaSKK/DictionarySet.cpp:1.8 AquaSKK/DictionarySet.cpp:1.9 --- AquaSKK/DictionarySet.cpp:1.8 Fri Dec 29 00:37:03 2006 +++ AquaSKK/DictionarySet.cpp Tue Jun 12 23:25:08 2007 @@ -1,10 +1,10 @@ /* - $Id: DictionarySet.cpp,v 1.8 2006/12/28 15:37:03 t-suwa Exp $ + $Id: DictionarySet.cpp,v 1.9 2007/06/12 14:25:08 t-suwa Exp $ MacOS X implementation of the SKK input method. Copyright (C) 2002-2004 phonohawk - Copyright (C) 2005-2006 Tomotaka SUWA <t.suw****@mac*****> + Copyright (C) 2005-2007 Tomotaka SUWA <t.suw****@mac*****> 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 @@ -273,7 +273,8 @@ } void DictionarySet::RegisterOkuriNasi(const std::string& key, const std::string& entry) { - if(key.empty() || entry.empty()) { + // key ã ããã§ãã¯ãã(ãã°ã«å¤æã®ç»é²æ㯠entry ã¯ç©º) + if(key.empty()) { std::cerr << "AquaSKK: Invalid registration received" << std::endl; } else { userdict_->registerOkuriNasi(key, entry); Index: AquaSKK/KanjiConversionMode.cpp diff -u AquaSKK/KanjiConversionMode.cpp:1.11 AquaSKK/KanjiConversionMode.cpp:1.12 --- AquaSKK/KanjiConversionMode.cpp:1.11 Sat Feb 3 13:04:21 2007 +++ AquaSKK/KanjiConversionMode.cpp Tue Jun 12 23:25:08 2007 @@ -1,5 +1,5 @@ /* - $Id: KanjiConversionMode.cpp,v 1.11 2007/02/03 04:04:21 t-suwa Exp $ + $Id: KanjiConversionMode.cpp,v 1.12 2007/06/12 14:25:08 t-suwa Exp $ MacOS X implementation of the SKK input method. @@ -41,17 +41,17 @@ #endif /* - ©ÈüÍ[hÅå¶ÌAt@xbgðüÍ·éÆA - ¿üÍ[hÉØèÖíèA»Ì̶ªhandleInputÉn³êéB + ããªå ¥åã¢ã¼ãã§å¤§æåã®ã¢ã«ãã¡ããããå ¥åããã¨ã + æ¼¢åå ¥åã¢ã¼ãã«åãæ¿ããããã®æã®æåãhandleInputã«æ¸¡ãããã - handleInputÍܸ¤ðæªÉüêÄ©çA¬¶ÉµÄHiraganaInputModeÉn·B - Xy[Xª½çÏ·Bè¼¼ªüͳêÄàÏ·B + handleInputã¯ã¾ãâ½ãå é ã«å ¥ãã¦ãããå°æåã«ãã¦HiraganaInputModeã«æ¸¡ãã + ã¹ãã¼ã¹ãæ¥ããå¤æãéãä»®åãå ¥åããã¦ãå¤æã - Oku ¨ ¤¨ - OkuR ¨ ¤¨*r - OkuRi ¨ ¤¨*è ¨ ¥è + Oku â â½ãã + OkuR â â½ãã*r + OkuRi â â½ãã*ã â â¼éã - ¿üÍ[hÌÍAüͳ꽶ͻÌÜÜKanjiConversionModeÉn³êéB + æ¼¢åå ¥åã¢ã¼ãã®æã¯ãå ¥åãããæåã¯ãã®ã¾ã¾KanjiConversionModeã«æ¸¡ãããã */ KanjiConversionMode::KanjiConversionMode(ParentInputMode& src) @@ -80,12 +80,12 @@ bool KanjiConversionMode::handleInputChar(SKKChar skkchar) { if(word_register_mode) { word_register_mode->handleInput(skkchar); - return false; // WordRegisterMode::handleInput()ª½ðÔ»¤Æàmè͵ȢB + return false; // WordRegisterMode::handleInput()ãä½ãè¿ããã¨ã確å®ã¯ããªãã } if(SKKConfig::AbbrevNextKey() == skkchar) { if(status == STATUS_WHITE_ROOT && completion_mode) { - // ÌóâÖBÅãÜÅsÁ½çÅÉßéB + // 次ã®åè£ã¸ãæå¾ã¾ã§è¡ã£ããæåã«æ»ãã current_completion_index++; if(current_completion_index >= completions.size()) { current_completion_index = 0; @@ -98,7 +98,7 @@ if(SKKConfig::AbbrevPrevKey() == skkchar) { if(status == STATUS_WHITE_ROOT && completion_mode) { - // OÌóâÖBÅÜÅsÁ½çÅãÉßéB + // åã®åè£ã¸ãæåã¾ã§è¡ã£ããæå¾ã«æ»ãã if(current_completion_index == 0) { current_completion_index = completions.size() - 1; } else { @@ -110,20 +110,20 @@ } } - // tab,sIh,J}ÈOÌ¢©È鶪üͳêÄàâ®[hð²¯éB + // tab,ããªãªã,ã«ã³ã以å¤ã®ãããªãæåãå ¥åããã¦ãè£å®ã¢ã¼ããæããã completion_mode = false; if(SKKConfig::ToggleKanaKey() == skkchar) { if(status == STATUS_WHITE_ROOT || status == STATUS_WHITE_OKURI) { - // currenInputModeðterminateµÄArootÉgetStringToFix()ÌßèlðÇÁ·éB + // currenInputModeãterminateãã¦ãrootã«getStringToFix()ã®æ»ãå¤ã追å ããã parent->getCurrentInputMode().terminate(); CppCFString to_fix(parent->getCurrentInputMode().getStringToFix()); if (status == STATUS_WHITE_ROOT) { root += to_fix; } - // rootðSpм¼ÉÏ·µÄ©çmèµÄI¹B - // ½¾µSpм¼[h¾Á½ç½¼¼ÖÏ··éB + // rootãå ¨è§çä»®åã«å¤æãã¦ãã確å®ãã¦çµäºã + // ãã ãå ¨è§çä»®åã¢ã¼ãã ã£ãã平仮åã¸å¤æããã CppCFString cand; if(parent->isZenKataInputMode()) { cand = HiraganaInputMode::convert(root); @@ -131,8 +131,8 @@ cand = ZenKataInputMode::convert(root); } - // Âl«Éo^·é - sendWordToServerToRegister(root, cand); + // ãã°ã«å¤æã®çµæãç»é²ãã + registerToggleEntry(root); parent->fix(cand); parent->setEnabledKanjiMode(false); @@ -141,9 +141,9 @@ return false; } else if(status == STATUS_BLACK || status == STATUS_BLACK_WITH_WINDOW) { - // »ÝÌóâðmèB - // 1) Spм¼[hÈç½¼¼[hÖ - // 2) »êÈOÈçSpм¼[hÖ + // ç¾å¨ã®åè£ã確å®ã + // 1) å ¨è§çä»®åã¢ã¼ããªã平仮åã¢ã¼ã㸠+ // 2) ãã以å¤ãªãå ¨è§çä»®åã¢ã¼ã㸠parent->setEnabledKanjiMode(false); if(parent->isZenKataInputMode()) { @@ -157,7 +157,7 @@ if(SKKConfig::PrevKouhoKey() == skkchar) { if(status == STATUS_BLACK) { - // êÂOÌóâÖBÅÌóâ¾Á½ç¤[hÖßéB + // ä¸ã¤åã®åè£ã¸ãæåã®åè£ã ã£ããâ½ã¢ã¼ãã¸æ»ãã if(current_candidate_index > 0) { current_candidate_index--; } else { @@ -169,17 +169,17 @@ return false; } else if(status == STATUS_BLACK_WITH_WINDOW) { - // deleteª³ê½àÌÆ©ô· + // deleteãæ¼ããããã®ã¨è¦åã handleBackSpace(); return false; } - // »êÈOÈçfÊè + // ãã以å¤ãªãç´ éã } if(SKKConfig::PurgeFromJisyoKey() == skkchar) { if(status == STATUS_BLACK) { - // ívvgðo·B±ÌÏ·ªÀÍ[U[«ÉÚÁĢȩÁ½ÆµÄà - // Ê|ÈÌÅ»Ìðí´í´mFµÈ¢Bv]Åà êÎʾªB + // åé¤ããã³ãããåºãããã®å¤æãå®ã¯ã¦ã¼ã¶ã¼è¾æ¸ã«è¼ã£ã¦ããªãã£ãã¨ãã¦ã + // é¢åãªã®ã§ãã®äºããããã確èªããªããè¦æã§ãããã°å¥ã ãã status = STATUS_PROMPT; prompt_type = PROMPT_DELETE_FROM_USER_DIC; prompt_input.clear(); @@ -199,28 +199,31 @@ if(SKKConfig::ToggleKatakanaKey() == skkchar) { if(status == STATUS_WHITE_ROOT || status == STATUS_WHITE_OKURI) { - // currenInputModeðterminateµÄArootÉgetStringToFix()ÌßèlðÇÁ·éB + // currenInputModeãterminateãã¦ãrootã«getStringToFix()ã®æ»ãå¤ã追å ããã parent->getCurrentInputMode().terminate(); CppCFString to_fix(parent->getCurrentInputMode().getStringToFix()); if (status == STATUS_WHITE_ROOT) { root += to_fix; } - // rootð¼pм¼ÉÏ·µÄ©çmèµÄI¹B - // ½¾µ¼pм¼[h¾Á½ç½¼¼ÉÏ··éB + // rootãåè§çä»®åã«å¤æãã¦ãã確å®ãã¦çµäºã + // ãã ãåè§çä»®åã¢ã¼ãã ã£ãã平仮åã«å¤æããã if(parent->isHanKataInputMode()) { parent->fix(HiraganaInputMode::convert(root)); } else { parent->fix(HanKataInputMode::convert(root)); } + // ãã°ã«å¤æã®çµæãç»é²ãã + registerToggleEntry(root); + parent->setEnabledKanjiMode(false); initialize(); return false; } else if(status == STATUS_BLACK || status == STATUS_BLACK_WITH_WINDOW) { - // »ÝÌóâðmèµÄ©çA - // 1) ¼pм¼[hÈç½¼¼[hÖ - // 2) »êÈOÈç¼pм¼¼¼[hÖ + // ç¾å¨ã®åè£ã確å®ãã¦ããã + // 1) åè§çä»®åã¢ã¼ããªã平仮åã¢ã¼ã㸠+ // 2) ãã以å¤ãªãåè§çä»®åä»®åã¢ã¼ã㸠parent->setEnabledKanjiMode(false); if(parent->isHanKataInputMode()) { @@ -233,12 +236,12 @@ } if(SKKConfig::KakuteiKey() == skkchar) { - return true; // mèÌÝ + return true; // 確å®ã®ã¿ } if(SKKConfig::LatinModeKey() == skkchar || SKKConfig::Jisx0208LatinModeKey() == skkchar) { if(status == STATUS_WHITE_ROOT || status == STATUS_WHITE_OKURI || status == STATUS_BLACK) { - // »ê¼êðmèµÄ¼p/Spp[hÖB + // ããããã確å®ãã¦åè§/å ¨è§è±æ°åã¢ã¼ãã¸ã if(SKKConfig::LatinModeKey() == skkchar) { parent->goHanAscInputMode(); } else { @@ -246,15 +249,15 @@ } return true; } - // óâIðæÊÈçfÊèB + // åè£é¸æç»é¢ãªãç´ éãã } if(SKKConfig::AbbrevModeKey() == skkchar) { - // »ÝÌóâðmèµ½ãAú»µÄI¹·éªA - // ¯É¡ñÌ\¦/fixª½f³êȢƢéÌÅ - // ¿Ï·[hðI¹³¹Ä©çparentÌhandleInputÉn·B - // KanjiConversionModeÍSTATUS_NULLÌÉÍ - // íÉkIgnoreThisðÔ·B + // ç¾å¨ã®åè£ã確å®ããå¾ãåæåãã¦çµäºãããã + // åæã«ä»åã®è¡¨ç¤º/fixãåæ ãããªãã¨å°ãã®ã§ + // æ¼¢åå¤æã¢ã¼ããçµäºããã¦ããparentã®handleInputã«æ¸¡ãã + // KanjiConversionModeã¯STATUS_NULLã®æã«ã¯ + // 常ã«kIgnoreThisãè¿ãã parent->fix(getStringToFix()); return parent->handleInput(skkchar); @@ -262,14 +265,14 @@ if(SKKConfig::NextKouhoKey() == skkchar) { if(status == STATUS_WHITE_ROOT || status == STATUS_WHITE_OKURI) { - // currenInputModeðterminateµÄArootàµÍokuriÉgetStringToFix()ÌßèlðÇÁ·éB + // currenInputModeãterminateãã¦ãrootãããã¯okuriã«getStringToFix()ã®æ»ãå¤ã追å ããã parent->getCurrentInputMode().terminate(); if(status == STATUS_WHITE_ROOT) { root += parent->getCurrentInputMode().getStringToFix(); root_to_display.clear().append(root).append(parent->getCurrentInputMode().getStringToDisplay()); if(root.length() == 0) { - // I¹ + // çµäº parent->setEnabledKanjiMode(false); parent->display(CppCFString()); initialize(); @@ -285,33 +288,33 @@ } if(candidates.size() > 0) { - // ó⪶ݵ½B¥[hÖB + // åè£ãåå¨ãããâ¼ã¢ã¼ãã¸ã status = STATUS_BLACK; - current_candidate_index = 0; // ÅÌóâB + current_candidate_index = 0; // æåã®åè£ã } else { - // êÂàó⪳¢BPêo^JnB + // ä¸ã¤ãåè£ãç¡ããåèªç»é²éå§ã startRegisteringWord(); } } else if(status == STATUS_BLACK) { - // ÌóâÖ + // 次ã®åè£ã¸ current_candidate_index++; - if(current_candidate_index >= candidates.size()) { // IíèÜÅsÁ½çPêo^JnB + if(current_candidate_index >= candidates.size()) { // çµããã¾ã§è¡ã£ããåèªç»é²éå§ã startRegisteringWord(); } else if(current_candidate_index >= show_cands_window_after_Nth_cand - 1) { - // ±êÈ~Ì[e[VÅóâIðEChEð\¦·éB + // ãã以éã®ãã¼ãã¼ã·ã§ã³ã§åè£é¸æã¦ã¤ã³ãã¦ã表示ããã status = STATUS_BLACK_WITH_WINDOW; openCandidatesWindow(); } } else if(status == STATUS_BLACK_WITH_WINDOW) { if(candidates_window_current_frame < candidates_window_num_of_frames - 1) { - // ÅãÌt[ÅȯêÎAÌt[ÖsB + // æå¾ã®ãã¬ã¼ã ã§ãªããã°ã次ã®ãã¬ã¼ã ã¸è¡ãã goToNextCandidatesFrame(); } else { - // ÅãÌt[¾Á½çAPêo^ðJnB + // æå¾ã®ãã¬ã¼ã ã ã£ãããåèªç»é²ãéå§ã closeCandidatesWindow(); startRegisteringWord(); } @@ -319,17 +322,17 @@ return false; } - // Ï·|CgL[ª¨³ê½Ì®ì + // å¤æãã¤ã³ããã¼ãããããæã®åä½ if(SKKConfig::SetHenkanPointKey() == skkchar) { if(status == STATUS_NULL || (status == STATUS_WHITE_ROOT && root.length() == 0)) { - status = STATUS_WHITE_ROOT; // ¤[hÖB + status = STATUS_WHITE_ROOT; // â½ã¢ã¼ãã¸ã - // æÊ\¦p + // ç»é¢è¡¨ç¤ºç¨ root_to_display.clear().append(root).append(parent->getCurrentInputMode().getStringToDisplay()); return false; } - // mèµÄp± + // 確å®ãã¦ç¶ç¶ if(status == STATUS_WHITE_ROOT || status == STATUS_BLACK || status == STATUS_BLACK_WITH_WINDOW) { parent->fix(getStringToFix()); parent->setEnabledKanjiMode(true); @@ -337,13 +340,13 @@ } } - // vvgÉÇÁ + // ããã³ããã«è¿½å if(status == STATUS_PROMPT) { prompt_input += skkchar; return false; } - // Ið³ê½óâÅmè·é + // é¸æãããåè£ã§ç¢ºå®ãã if(status == STATUS_BLACK_WITH_WINDOW) { CppCFString labels = CppCFString("asdfjkl").substring(0, candidates_window_cands_per_frame); int cand_index = labels.indexOf(std::tolower(skkchar)); @@ -351,7 +354,7 @@ if(cand_index != -1) { unsigned new_index = current_candidate_index + cand_index; if(new_index < candidates.size()) { - // ±ÌCfBbNXª³êéÈçmèB + // ãã®ã¤ã³ãã£ãã¯ã¹ã許ããããªã確å®ã current_candidate_index = new_index; return true; } @@ -361,109 +364,109 @@ if('A' <= skkchar && skkchar <= 'Z') { if(status == STATUS_NULL || status == STATUS_WHITE_ROOT && root.length() == 0) { - status = STATUS_WHITE_ROOT; // ¤[hÖB + status = STATUS_WHITE_ROOT; // â½ã¢ã¼ãã¸ã - // ¬¶ÉµÄ¼¼üÍðÀsB + // å°æåã«ãã¦ä»®åå ¥åãå®è¡ã parent->getCurrentInputMode().handleInput(skkchar + 0x20); - // ¼¼üÍ[hÌfixobt@ðrootÖÇÁB + // ä»®åå ¥åã¢ã¼ãã®fixãããã¡ãrootã¸è¿½å ã root += parent->getCurrentInputMode().getStringToFix(); - // æÊ\¦p + // ç»é¢è¡¨ç¤ºç¨ root_to_display.clear().append(root).append(parent->getCurrentInputMode().getStringToDisplay()); - // okuriÍÁµÄ¨B±ÌóÔÅmè³ê½Ì×ÉB + // okuriã¯æ¶ãã¦ããããã®ç¶æ ã§ç¢ºå®ãããæã®çºã«ã okuri.clear(); } else if(status == STATUS_WHITE_ROOT) { - // terminate·éOÉ¡ñÌüÍðµÞB - // ±êðâçÈ¢ÆKesSiteªu¯µÄvÉÈÁĵܤB - // AµA±ÌüÍ̬¶ªA궾¯ÅoÍ𶬷éêÉÍ - // (WIÉÍ깨æÑn)A±ÌìðµÈ¢B + // terminateããåã«ä»åã®å ¥åãæ¼ãè¾¼ãã + // ããããããªãã¨KesSiteããããã¦ãã«ãªã£ã¦ãã¾ãã + // ä½ãããã®å ¥åã®å°æåããä¸æåã ãã§åºåãçæããå ´åã«ã¯ + // (æ¨æºçã«ã¯æ¯é³ããã³n)ããã®æä½ãããªãã CppCFString tmp_queue(skkchar + 0x20); CppCFString result = KanaTreeController::defaultTreeController().trace(KanaTreeController::OUTPUT_HIRAGANA, tmp_queue); if(result.length() == 0 && tmp_queue != "n") { - parent->getCurrentInputMode().handleInput(skkchar + 0x20); // ¬¶ + parent->getCurrentInputMode().handleInput(skkchar + 0x20); // å°æå } - // currentInputModeðterminateµÄArootÉgetStringToFix()ÌßèlðÇÁ·éB + // currentInputModeãterminateãã¦ãrootã«getStringToFix()ã®æ»ãå¤ã追å ããã parent->getCurrentInputMode().terminate(); root += parent->getCurrentInputMode().getStringToFix(); root_to_display.clear().append(root).append(parent->getCurrentInputMode().getStringToDisplay()); - status = STATUS_WHITE_OKURI; // ¤è¼¼[hÖB + status = STATUS_WHITE_OKURI; // â½éãä»®åã¢ã¼ãã¸ã - okuri_head = skkchar + 0x20; // ¬¶ + okuri_head = skkchar + 0x20; // å°æå - // ¬¶ÉµÄ¼¼üÍðÀsB + // å°æåã«ãã¦ä»®åå ¥åãå®è¡ã bool fix = parent->getCurrentInputMode().handleInput(okuri_head); - // ¼¼üÍ[hÌfixobt@ðokuriÖRs[B + // ä»®åå ¥åã¢ã¼ãã®fixãããã¡ãokuriã¸ã³ãã¼ã okuri += parent->getCurrentInputMode().getStringToFix(); - // æÊ\¦p + // ç»é¢è¡¨ç¤ºç¨ okuri_to_display.clear().append(okuri).append(parent->getCurrentInputMode().getStringToDisplay()); - // L [ªóÅȯêÎܾϷµÄµÜíÈ¢B + // ãã¥ã¼ã空ã§ãªããã°ã¾ã å¤æãã¦ãã¾ããªãã if(fix && parent->getCurrentInputMode().isQueueEmpty()) { - // Ï··éB - return handleInput(' '); // ÄËüBÓ¡IÉÍÄAÅÍÈcontinueB + // å¤æããã + return handleInput(' '); // åçªå ¥ãæå³çã«ã¯å帰ã§ã¯ãªãcontinueã } } else if(status == STATUS_WHITE_OKURI) { - // ¬¶ÉµÄ¼¼üÍðÀsB + // å°æåã«ãã¦ä»®åå ¥åãå®è¡ã bool fix = parent->getCurrentInputMode().handleInput(skkchar + 0x20); - // ¼¼üÍ[hÌfixobt@ðokuriÖRs[B + // ä»®åå ¥åã¢ã¼ãã®fixãããã¡ãokuriã¸ã³ãã¼ã okuri += parent->getCurrentInputMode().getStringToFix(); - // æÊ\¦p + // ç»é¢è¡¨ç¤ºç¨ okuri_to_display.clear().append(okuri).append(parent->getCurrentInputMode().getStringToDisplay()); - // L [ªóÅȯêÎܾϷµÄµÜíÈ¢B + // ãã¥ã¼ã空ã§ãªããã°ã¾ã å¤æãã¦ãã¾ããªãã if(fix && parent->getCurrentInputMode().isQueueEmpty()) { - // Ï··éB - return handleInput(' '); // ÄËüBÓ¡IÉÍÄAÅÍÈcontinueB + // å¤æããã + return handleInput(' '); // åçªå ¥ãæå³çã«ã¯å帰ã§ã¯ãªãcontinueã } } else if(status == STATUS_BLACK) { - // »ÝÌóâðmèµÄp± + // ç¾å¨ã®åè£ã確å®ãã¦ç¶ç¶ parent->fix(getStringToFix()); parent->setEnabledKanjiMode(true); return handleInput(skkchar); } } else { if(status == STATUS_WHITE_ROOT) { - // ¼¼üÍðÀsB + // ä»®åå ¥åãå®è¡ã parent->getCurrentInputMode().handleInput(skkchar); - // rootÉÇÁB + // rootã«è¿½å ã root += parent->getCurrentInputMode().getStringToFix(); - // æÊ\¦p + // ç»é¢è¡¨ç¤ºç¨ root_to_display.clear().append(root).append(parent->getCurrentInputMode().getStringToDisplay()); } else if(status == STATUS_WHITE_OKURI) { - // currentInputMode::handleInput()ðs¢AtrueÔµ½ç»êð輼ƵÄÏ·B - // »¤ÅȯêÎAcurrentInputMode::handleInput()Én·¾¯B + // currentInputMode::handleInput()ãè¡ããtrueè¿ããããããéãä»®åã¨ãã¦å¤æã + // ããã§ãªããã°ãcurrentInputMode::handleInput()ã«æ¸¡ãã ãã bool fix = parent->getCurrentInputMode().handleInput(skkchar); const CppCFString& kanainput_result = parent->getCurrentInputMode().getStringToFix(); - // okuriÉÇÁB + // okuriã«è¿½å ã okuri += kanainput_result; - // æÊ\¦p + // ç»é¢è¡¨ç¤ºç¨ okuri_to_display.clear().append(okuri).append(parent->getCurrentInputMode().getStringToDisplay()); - // L [ªóÅȯêÎܾϷµÈ¢B + // ãã¥ã¼ã空ã§ãªããã°ã¾ã å¤æããªãã if(fix && parent->getCurrentInputMode().isQueueEmpty()) { - // Ï··éB - return handleInput(' '); // ÄËüBÓ¡IÉÍÄAÅÍÈcontinueB + // å¤æããã + return handleInput(' '); // åçªå ¥ãæå³çã«ã¯å帰ã§ã¯ãªãcontinueã } } else if(status == STATUS_BLACK) { - // »ÝÌóâðmèµÄp± + // ç¾å¨ã®åè£ã確å®ãã¦ç¶ç¶ parent->fix(getStringToFix()); return parent->handleInput(skkchar); } @@ -480,7 +483,7 @@ else { register_title = root; } - register_title = HiraganaInputMode::convert(register_title); // м¼Í½¼¼ÉÏ· + register_title = HiraganaInputMode::convert(register_title); // çä»®åã¯å¹³ä»®åã«å¤æ word_register_mode = new WordRegisterMode(*this,register_title); word_register_mode->redisplay(); @@ -490,7 +493,7 @@ bool KanjiConversionMode::handleBackSpace() { if (word_register_mode) { word_register_mode->handleBackSpace(); - return true; // WordRegisterMode::handleBackSpace()ª½ðÔ»¤Æà{¶ÍÁ³È¢B + return true; // WordRegisterMode::handleBackSpace()ãä½ãè¿ããã¨ãæ¬æã¯æ¶ããªãã } if (status == STATUS_NULL) { @@ -498,10 +501,10 @@ } if (status == STATUS_WHITE_ROOT) { - // hiraganaInputMode->handleBackSpace()ªtrueðÔµ½çroot_to_displayðXV·éB - // falseðÔµ½ç - // rootªóÈçú»µÄI¹B - // óÅȯêÎrootÌÅã̶ðÁ·B + // hiraganaInputMode->handleBackSpace()ãtrueãè¿ãããroot_to_displayãæ´æ°ããã + // falseãè¿ããã + // rootã空ãªãåæåãã¦çµäºã + // 空ã§ãªããã°rootã®æå¾ã®æåãæ¶ãã if (parent->getCurrentInputMode().handleBackSpace()) { root_to_display.clear().append(root).append(parent->getCurrentInputMode().getStringToDisplay()); } @@ -512,20 +515,20 @@ initialize(); } else { - completion_mode = false; // â®[h¾Á½êÍâ®[hð²¯éB + completion_mode = false; // è£å®ã¢ã¼ãã ã£ãå ´åã¯è£å®ã¢ã¼ããæããã root.eraseLast(1); root_to_display = root; } } } else if (status == STATUS_WHITE_OKURI) { - // hiraganaInputMode->handleBackSpace()ª - // trueðÔµ½ç - // okuri_to_displayðXV·éB - // »ÌAokuriªê¶µ©³¯êÎSTATUS_WHITE_ROOTÖß·B - // falseðÔµ½ç - // okuriªê¶µ©³¯êÎSTATUS_WHITE_ROOTÖß·B - // ñ¶Èã Á½çokuriÌÅã̶ðÁ·B + // hiraganaInputMode->handleBackSpace()ã + // trueãè¿ããã + // okuri_to_displayãæ´æ°ããã + // ãã®æãokuriãä¸æåããç¡ããã°STATUS_WHITE_ROOTã¸æ»ãã + // falseãè¿ããã + // okuriãä¸æåããç¡ããã°STATUS_WHITE_ROOTã¸æ»ãã + // äºæå以ä¸ãã£ããokuriã®æå¾ã®æåãæ¶ãã if (parent->getCurrentInputMode().handleBackSpace()) { okuri_to_display.clear().append(okuri).append(parent->getCurrentInputMode().getStringToDisplay()); if (okuri.length() <= 1) { @@ -545,20 +548,20 @@ } } else if (status == STATUS_BLACK) { - // »ÝÌóâðmèµÄê¶í + // ç¾å¨ã®åè£ã確å®ãã¦ä¸æååé¤ CppCFString str(getStringToFix()); str.eraseLast(1); parent->fix(str); parent->display(CppCFString()); } else if (status == STATUS_BLACK_WITH_WINDOW) { - // ÅÌt[Èç¥[hÖßéB - // »¤ÅȯêÎOÌt[ÖB + // æåã®ãã¬ã¼ã ãªãâ¼ã¢ã¼ãã¸æ»ãã + // ããã§ãªããã°åã®ãã¬ã¼ã ã¸ã if (candidates_window_current_frame == 0) { - // EChEðJOÉß· + // ã¦ã¤ã³ãã¦ãéãåã«æ»ã current_candidate_index = show_cands_window_after_Nth_cand - 2; - // EChEð¶éB + // ã¦ã¤ã³ãã¦ãéããã closeCandidatesWindow(); status = STATUS_BLACK; @@ -568,7 +571,7 @@ } } else if (status == STATUS_PROMPT) { - // prompt_inputªóÅȯêÎÅã̶ðÁ·B + // prompt_inputã空ã§ãªããã°æå¾ã®æåãæ¶ãã if (prompt_input.length() > 0) { prompt_input.eraseLast(1); } @@ -581,23 +584,23 @@ word_register_mode->handleReturn(); if (word_register_mode) { - // handleReturn©çwordRegistrationFinishedªÄÎê½çword_register_modeÍjü³êé½ßB + // handleReturnããwordRegistrationFinishedãå¼ã°ãããword_register_modeã¯ç ´æ£ãããããã word_register_mode->redisplay(); } - return true; // íÉtrueðÔ·B + return true; // 常ã«trueãè¿ãã } if (status == STATUS_PROMPT) { switch (prompt_type) { case PROMPT_DELETE_FROM_USER_DIC: { - // prompt_inputªyesÈçíµÄSTATUS_WHITE_ROOTÉßéB - // »êÈOÈçSTATUS_BLACKÉßéB + // prompt_inputãyesãªãåé¤ãã¦STATUS_WHITE_ROOTã«æ»ãã + // ãã以å¤ãªãSTATUS_BLACKã«æ»ãã if (prompt_input == "yes") { - // í + // åé¤ makeServerRemoveWord(); - // STATUS_WHITE_ROOTÖ + // STATUS_WHITE_ROOT㸠if (okuri.length() > 0) { root += okuri; root_to_display = root; @@ -620,9 +623,9 @@ } if (ClientConfiguration::theInstance().isSkkEggLikeNewline()) { - // skk-egglike-newline[hÈçA©ÍÅm賹ĩçú»µÄtrueðÔ·B + // skk-egglike-newlineã¢ã¼ããªããèªåã§ç¢ºå®ããã¦ããåæåãã¦trueãè¿ãã - // §³êÈ¢ªA§IÉmè³¹éB + // æ¨å¥¨ãããªãããå¼·å¶çã«ç¢ºå®ãããã parent->fix(getStringToFix()); return true; } @@ -633,19 +636,19 @@ bool KanjiConversionMode::handleArrow(SKKChar skkchar) { if (word_register_mode) { - return word_register_mode->handleArrow(skkchar); // Ï÷ + return word_register_mode->handleArrow(skkchar); // å§è² } - // ½¼¼Cvbg[hÌhandleArrowðÄÑAgetStringToFix()àÄÔªAÄÔ¾¯B + // 平仮åã¤ã³ãããã¢ã¼ãã®handleArrowãå¼ã³ãgetStringToFix()ãå¼ã¶ããå¼ã¶ã ãã parent->getCurrentInputMode().handleArrow(skkchar); parent->getCurrentInputMode().getStringToFix(); if (status == STATUS_BLACK || status == STATUS_BLACK_WITH_WINDOW) { - // »ÝÌóâðmè + // ç¾å¨ã®åè£ãç¢ºå® parent->fix(getStringToFix()); } - // ¿Ï·[hðI¹·éB + // æ¼¢åå¤æã¢ã¼ããçµäºããã parent->setEnabledKanjiMode(false); initialize(); return false; @@ -656,18 +659,18 @@ return word_register_mode->handleCg(); } - // ½¼¼Cvbg[hÌhandleCgðÄÑAgetStringToFix()àÄÔªAÄÔ¾¯B + // 平仮åã¤ã³ãããã¢ã¼ãã®handleCgãå¼ã³ãgetStringToFix()ãå¼ã¶ããå¼ã¶ã ãã parent->getCurrentInputMode().handleCg(); parent->getCurrentInputMode().getStringToFix(); if (status == STATUS_WHITE_ROOT || status == STATUS_WHITE_OKURI) { - // ¿Ï·[hI¹ + // æ¼¢åå¤æã¢ã¼ãçµäº parent->setEnabledKanjiMode(false); initialize(); } else if (status == STATUS_BLACK || status == STATUS_BLACK_WITH_WINDOW) { - // rootÉokuriðÁ¯ÄSTATUS_WHITE_ROOTÖ - // EChEªJ©êÄ¢½ç¶éB + // rootã«okuriããã£ã¤ãã¦STATUS_WHITE_ROOT㸠+ // ã¦ã¤ã³ãã¦ãéããã¦ãããéããã if (status == STATUS_BLACK_WITH_WINDOW) { closeCandidatesWindow(); } @@ -699,7 +702,7 @@ if (status == STATUS_WHITE_ROOT) { if (completion_mode) { - // ÌóâÖBÅãÜÅsÁ½çÅÉßéB + // 次ã®åè£ã¸ãæå¾ã¾ã§è¡ã£ããæåã«æ»ãã current_completion_index++; if (current_completion_index >= completions.size()) { current_completion_index = 0; @@ -708,15 +711,15 @@ root_to_display = root; } else { - // currentInputModeðterminateµÄArootÉgetStringToFix()ÌßèlðÇÁ·éB + // currentInputModeãterminateãã¦ãrootã«getStringToFix()ã®æ»ãå¤ã追å ããã parent->getCurrentInputMode().terminate(); root += parent->getCurrentInputMode().getStringToFix(); root_to_display.clear().append(root).append(parent->getCurrentInputMode().getStringToDisplay()); - // IÉâ¢í¹éB + // é¯ã«åãåãããã askServerTheCompletions(); - // â®Ìó⪠êÎâ®JnB³¯êν๸ÉßéB + // è£å®ã®åè£ãããã°è£å®éå§ãç¡ããã°ä½ãããã«æ»ãã if (completions.size() > 0) { completion_mode = true; root = completions[0]; @@ -738,14 +741,14 @@ word_register_mode = NULL; } - // currenInputModeðterminateµÄArootÉgetStringToFix()ÌßèlðÇÁ·éB + // currenInputModeãterminateãã¦ãrootã«getStringToFix()ã®æ»ãå¤ã追å ããã parent->getCurrentInputMode().terminate(); CppCFString to_fix(parent->getCurrentInputMode().getStringToFix()); if (status == STATUS_WHITE_ROOT) { root += to_fix; } - parent->fix(getStringToFix()); // mè·é + parent->fix(getStringToFix()); // 確å®ãã parent->setEnabledKanjiMode(false); initialize(); } @@ -754,7 +757,7 @@ if(word_register_mode) { CppCFString content = word_register_mode->getContent(); if(content.length() > 0) { - // IÉMB + // é¯ã«éä¿¡ã if(okuri.length() > 0) { if(SKKConfig::UseKanaToOkuri()) { #ifdef DEBUG @@ -768,14 +771,14 @@ sendWordToServerToRegister(root, content); } - // mèB - parent->fix(content + okuri); // è¼¼ðt¯é + // 確å®ã + parent->fix(content + okuri); // éãä»®åãä»ãã - // I¹B + // çµäºã parent->setEnabledKanjiMode(false); initialize(); } else { - if(okuri.length() > 0) { // è¼¼ª êÎ + if(okuri.length() > 0) { // éãä»®åãããã° status = STATUS_WHITE_OKURI; } else { status = STATUS_WHITE_ROOT; @@ -794,7 +797,7 @@ parent->updatePencilMenuIcon(); if (status == STATUS_WHITE_ROOT || status == STATUS_WHITE_OKURI) { - // rootÉokuriðÁ¯ÄSTATUS_WHITE_ROOTÖ + // rootã«okuriããã£ã¤ãã¦STATUS_WHITE_ROOT㸠root += okuri; okuri.clear(); @@ -804,36 +807,36 @@ status = STATUS_WHITE_ROOT; } else if (status == STATUS_BLACK) { - current_candidate_index = candidates.size() - 1; // ÅãÌóâÖB + current_candidate_index = candidates.size() - 1; // æå¾ã®åè£ã¸ã } else if (status == STATUS_BLACK_WITH_WINDOW) { - // EChEðJ¢ÄÅãÌt[ðo· - current_candidate_index = show_cands_window_after_Nth_cand - 1; // goToNextCandidatesFrame()ŸêéB + // ã¦ã¤ã³ãã¦ãéãã¦æå¾ã®ãã¬ã¼ã ãåºã + current_candidate_index = show_cands_window_after_Nth_cand - 1; // goToNextCandidatesFrame()ã§ãããã openCandidatesWindow(OpenReverse); } } CppCFString KanjiConversionMode::getStringToDisplay() { if (word_register_mode) { - // ³³¹éB³àÈ¢ÆÜpWordRegisterModeªÝèµ½¶ð׵ĵܤB + // ç¡è¦ãããããããªãã¨æè§WordRegisterModeãè¨å®ããæåãæ½°ãã¦ãã¾ãã return CppCFString().append(kIgnoreThis); } if (status == STATUS_WHITE_ROOT) { - // ¤root + // â½root return CppCFString().append(0x25bd).append(root_to_display); } else if (status == STATUS_WHITE_OKURI) { - // ¤root*okuri + // â½root*okuri return CppCFString().append(0x25bd).append(root_to_display).append('*').append(okuri_to_display); } else if (status == STATUS_BLACK || status == STATUS_BLACK_WITH_WINDOW) { CppCFString str = convertNumeric(numconv_, candidates[current_candidate_index]); - // ¥»ÝÌóâ + // â¼ç¾å¨ã®åè£ return CppCFString().append(0x25bc).append(str); } else if (status == STATUS_PROMPT) { - // [vvg][üÍ] + // [ããã³ãã][å ¥å] return CppCFString('[').append(prompt).append("][").append(prompt_input).append(kCaret).append(']'); } else { @@ -852,16 +855,16 @@ else if (status == STATUS_BLACK) { result = convertNumeric(numconv_, candidates[current_candidate_index]); - // IÉM + // é¯ã«éä¿¡ sendCurrentCandidateToServerToRegister(); } else if (status == STATUS_BLACK_WITH_WINDOW) { result = convertNumeric(numconv_, candidates[current_candidate_index]); - // IÉM + // é¯ã«éä¿¡ sendCurrentCandidateToServerToRegister(); - // EChEð¶éB + // ã¦ã¤ã³ãã¦ãéããã closeCandidatesWindow(); } else /* if (status == STATUS_NULL) */ { @@ -869,8 +872,8 @@ result = CppCFString().append(kIgnoreThis); } - // ±êªÄÎê½Æ¢¤±ÆÍfix³êéÆ¢¤±ÆÈÌÅ¿[hI¹B - // ú»·éB + // ãããå¼ã°ããã¨ãããã¨ã¯fixãããã¨ãããã¨ãªã®ã§æ¼¢åã¢ã¼ãçµäºã + // åæåããã parent->setEnabledKanjiMode(false); initialize(); @@ -891,8 +894,8 @@ } void KanjiConversionMode::sendCurrentCandidateToServerToRegister() { - // IÉMB - // м¼Í½¼¼ÉÏ··éB + // é¯ã«éä¿¡ã + // çä»®åã¯å¹³ä»®åã«å¤æããã if(okuri.length() > 0) { if(SKKConfig::UseKanaToOkuri()) { #ifdef DEBUG @@ -901,12 +904,12 @@ sendWordToServerToRegister( HiraganaInputMode::convert(root) + SKKConfig::ConvertKanaToOkuri(okuri[0]), HiraganaInputMode::convert(okuri), - candidates[current_candidate_index].clone().eraseLast(okuri.length())); // è¼¼ðÁ·B + candidates[current_candidate_index].clone().eraseLast(okuri.length())); // éãä»®åãæ¶ãã } else { sendWordToServerToRegister( HiraganaInputMode::convert(root) + okuri_head, HiraganaInputMode::convert(okuri), - candidates[current_candidate_index].clone().eraseLast(okuri.length())); // è¼¼ðÁ·B + candidates[current_candidate_index].clone().eraseLast(okuri.length())); // éãä»®åãæ¶ãã } } else { sendWordToServerToRegister(HiraganaInputMode::convert(root), candidates[current_candidate_index]); @@ -914,41 +917,41 @@ } void KanjiConversionMode::askServerTheCandidates(bool hasOkuri) { - // è¼¼ª êÎæªÉ+A³¯êÎ-ðt¯éB + // éãä»®åãããã°å é ã«+ãç¡ããã°-ãä»ããã CppCFString query; if(hasOkuri) { query.append('+').append(root); if(SKKConfig::UseKanaToOkuri()) { query.append(SKKConfig::ConvertKanaToOkuri(okuri[0])).append(SKK_MSG_DELIMITER).append(okuri); } else { - // ¨è@¨@+¨r è + // ããããâã+ããr ã query.append(okuri_head).append(SKK_MSG_DELIMITER).append(okuri); } } else { - // ©È@¨@-©È + // ããªãâã-ã㪠query = CppCFString().append('-').append(root); } - // Sp¼¼Æ¼p¼¼ð½¼¼ÉÏ· + // å ¨è§ä»®åã¨åè§ä»®åã平仮åã«å¤æ query = HiraganaInputMode::convert(query); D_PRINTF("query: %s\n",query.toCString(kCFStringEncodingEUC_JP)); - // IÉqËé + // é¯ã«å°ãã CppCFData cfdata_query; cfdata_query.own(query.toCFData()); current_candidate_index = 0; ::askServerTheCandidates(cfdata_query, candidates); - // è¼¼ðt^·é + // éãä»®åãä»ä¸ãã if(hasOkuri) { for(unsigned i = 0; i < candidates.size(); ++ i) { candidates[i] += okuri; } } - // lÏ·ªLø©H + // æ°å¤å¤æãæå¹ãï¼ if(!hasOkuri && ClientConfiguration::theInstance().useNumericConversion() && numconv_.Setup(root.toStdString(kCFStringEncodingUTF8))) { CppCFString normalized(numconv_.NormalizedKey().c_str(), kCFStringEncodingUTF8); @@ -963,7 +966,7 @@ } } -// ño +// éã¡ã³ã void askServerTheCandidates(const CppCFData& query, std::vector<CppCFString>& candidates) { CppCFString reply(ServerConnectionFactory::theInstance().newConnection(). send(kSKKMessageSearch, query, kAquaSKKServerRunLoopMode).getData()); @@ -978,8 +981,8 @@ void KanjiConversionMode::makeServerRemoveWord() { CppCFString query; if(okuri.length() > 0) { - // ¨è è@¨@+¨r è - // ÇÝÉ¢ÄÍSp¼¼Æ¼p¼¼ð½¼¼ÉÏ· + // ããã éããâã+ããr ã é + // èªã¿ã«ã¤ãã¦ã¯å ¨è§ä»®åã¨åè§ä»®åã平仮åã«å¤æ query.append('+'); if (SKKConfig::UseKanaToOkuri()) { #ifdef DEBUG @@ -990,30 +993,30 @@ query.append(HiraganaInputMode::convert(root)).append(okuri_head); } query.append(SKK_MSG_DELIMITER).append( - candidates[current_candidate_index].clone().eraseLast(okuri.length())); // è¼¼ðÁ·B + candidates[current_candidate_index].clone().eraseLast(okuri.length())); // éãä»®åãæ¶ãã } else { - // ©È ¼¼@¨@-©È ¼¼ - // ÇÝÉ¢ÄÍSp¼¼Æ¼p¼¼ð½¼¼ÉÏ· + // ã㪠仮åãâã-ã㪠仮å + // èªã¿ã«ã¤ãã¦ã¯å ¨è§ä»®åã¨åè§ä»®åã平仮åã«å¤æ query.append('-').append(HiraganaInputMode::convert(root)).append(SKK_MSG_DELIMITER); query.append(candidates[current_candidate_index]); } - // IÉn· + // é¯ã«æ¸¡ã CppCFData cfdata_query; cfdata_query.own(query.toCFData()); ::makeServerRemoveWord(cfdata_query); } -// ño +// éã¡ã³ã void makeServerRemoveWord(const CppCFData& query) { ServerConnectionFactory::theInstance().newConnection().send(kSKKRemoveThisFromUserDic, query); } void KanjiConversionMode::askServerTheCompletions() { - // Sp¼¼Æ¼p¼¼ð½¼¼ÉÏ· + // å ¨è§ä»®åã¨åè§ä»®åã平仮åã«å¤æ CppCFString query = HiraganaInputMode::convert(root); - // IÉqËé + // é¯ã«å°ãã CppCFData cfdata_query; cfdata_query.own(query.toCFData()); @@ -1028,7 +1031,7 @@ completions = reply.split(SKK_MSG_DELIMITER); } -// ño +// éã¡ã³ã void sendWordToServerToRegister(const CppCFString& index,const CppCFString& okuri,const CppCFString& kanji) { CppCFData query; @@ -1060,6 +1063,15 @@ ServerConnectionFactory::theInstance().newConnection().send(kSKKRegisterThisToUserDic, query); } +// ãã°ã«å¤æã®çµæãç»é²ãã +void registerToggleEntry(const CppCFString& entry) { + CppCFData query; + + query.own(HiraganaInputMode::convert(entry).toCFData()); + + ServerConnectionFactory::theInstance().newConnection().send(kSKKRegisterToggleEntry, query); +} + void KanjiConversionMode::openCandidatesWindow(OpenDirection mode) { std::vector<CppCFString> cands_without_okuri; unsigned okuri_length = okuri.length(); @@ -1083,7 +1095,7 @@ current_candidate_index, candidates.size(), mode); } -// ño +// éã¡ã³ã void openCandidatesWindow(const CppCFString& str_candidates, unsigned& window_id, unsigned& cands_per_frame, @@ -1092,7 +1104,7 @@ unsigned& current_index, size_t num_of_candidates, SInt16 open_direction) { - // CCüÍðsÁÄ¢éÊuðæ¾B + // ã¤ã³ã©ã¤ã³å ¥åãè¡ã£ã¦ããä½ç½®ãåå¾ã struct OffsetToPosParams offset_to_pos_params; offset_to_pos_params.fRefCon = 0; offset_to_pos_params.fTextOffset = 0; @@ -1103,7 +1115,7 @@ SInt16 qd_x = offset_to_pos_params.fReplyPoint.h; SInt16 qd_y = offset_to_pos_params.fReplyPoint.v; - // T[o[Éèt¯éCFDataðì¬B + // ãµã¼ãã¼ã«éãä»ããCFDataãä½æã CppCFData cands_to_be_attached; cands_to_be_attached.own(str_candidates.toCFData()); CppCFData attachment; @@ -1112,14 +1124,14 @@ attachment.append(CFSwapInt16HostToBig(open_direction)); attachment.append(cands_to_be_attached); - // óM + // éåä¿¡ CppCFData reply(ServerConnectionFactory::theInstance().newConnection(). send(kSKKCreateCandidatesWindow, attachment, kAquaSKKServerRunLoopMode)); - // ÔÁÄ«½f[^ðªðµÄÛ¶B - // +0 óâIðæÊID ³µ2oCg® - // +2 1t[É\¦·éóâÌ ³µ2oCg® - // +4 t[ ³µ2oCg® + // è¿ã£ã¦ãããã¼ã¿ãå解ãã¦ä¿åã + // +0 åè£é¸æç»é¢ID 符å·ç¡ã2ãã¤ãæ´æ° + // +2 1ãã¬ã¼ã ã«è¡¨ç¤ºããåè£ã®æ° 符å·ç¡ã2ãã¤ãæ´æ° + // +4 ãã¬ã¼ã æ° ç¬¦å·ç¡ã2ãã¤ãæ´æ° //CppCFData reply(reply_data); window_id = CFSwapInt16BigToHost(reply.getUInt16(0)); cands_per_frame = CFSwapInt16BigToHost(reply.getUInt16(2)); @@ -1133,7 +1145,7 @@ } } -// ño +// éã¡ã³ã CppCFData newCFDataRefWithWindowID(unsigned window_id) { CppCFData result; result.append(static_cast<UInt16>(CFSwapInt16HostToBig(window_id))); @@ -1142,35 +1154,35 @@ } void KanjiConversionMode::goToNextCandidatesFrame() { - // EChEID(UInt16)ðÜÞCFDatað쬵AIÖéB + // ã¦ã¤ã³ãã¦ID(UInt16)ãå«ãCFDataãä½æããé¯ã¸éãã CppCFData reply(ServerConnectionFactory::theInstance().newConnection(). send(kSKKCandidatesWindowNext, newCFDataRefWithWindowID(candidates_window_id), kAquaSKKServerRunLoopMode)); - // »ÝÌt[ÔðCNg + // ç¾å¨ã®ãã¬ã¼ã çªå·ãã¤ã³ã¯ãªã¡ã³ã ++ candidates_window_current_frame; - // »ÝÌóâÔðt[½èÌóâªâ·B + // ç¾å¨ã®åè£çªå·ããã¬ã¼ã å½ããã®åè£æ°åå¢ããã current_candidate_index += candidates_window_cands_per_frame; candidates_window_cands_per_frame = CFSwapInt16BigToHost(reply.getUInt16(0)); } void KanjiConversionMode::goToPrevCandidatesFrame() { - // EChEID(UInt16)ðÜÞCFDatað쬵AIÖéB + // ã¦ã¤ã³ãã¦ID(UInt16)ãå«ãCFDataãä½æããé¯ã¸éãã CppCFData reply(ServerConnectionFactory::theInstance().newConnection(). send(kSKKCandidatesWindowPrev, newCFDataRefWithWindowID(candidates_window_id), kAquaSKKServerRunLoopMode)); - // »ÝÌt[ÔðfNg + // ç¾å¨ã®ãã¬ã¼ã çªå·ããã¯ãªã¡ã³ã -- candidates_window_current_frame; - // »ÝÌóâÔðt[½èÌó⪸ç·B + // ç¾å¨ã®åè£çªå·ããã¬ã¼ã å½ããã®åè£æ°åæ¸ããã candidates_window_cands_per_frame = CFSwapInt16BigToHost(reply.getUInt16(0)); current_candidate_index -= candidates_window_cands_per_frame; } void KanjiConversionMode::closeCandidatesWindow() { - // EChEID(UInt16)ðÜÞCFDatað쬵AIÖéB + // ã¦ã¤ã³ãã¦ID(UInt16)ãå«ãCFDataãä½æããé¯ã¸éãã ServerConnectionFactory::theInstance().newConnection(). send(kSKKCloseCandidatesWindow, newCFDataRefWithWindowID(candidates_window_id)); } @@ -1182,7 +1194,7 @@ check.insert(CppCFString(numconv.OriginalKey().c_str(), kCFStringEncodingUTF8)); - // õ + // æºå for(std::vector<CppCFString>::iterator iter = master.begin(); iter != master.end(); ++ iter) { if(check.find(*iter) != check.end()) continue; @@ -1190,7 +1202,7 @@ result.push_back(*iter); } - // }[W + // ãã¼ã¸ for(std::vector<CppCFString>::iterator iter = cands.begin(); iter != cands.end(); ++ iter) { CppCFString target(convertNumeric(numconv, *iter)); if(check.find(target) != check.end()) continue; Index: AquaSKK/KanjiConversionMode.h diff -u AquaSKK/KanjiConversionMode.h:1.7 AquaSKK/KanjiConversionMode.h:1.8 --- AquaSKK/KanjiConversionMode.h:1.7 Mon Dec 18 00:05:41 2006 +++ AquaSKK/KanjiConversionMode.h Tue Jun 12 23:25:08 2007 @@ -1,10 +1,10 @@ /* - $Id: KanjiConversionMode.h,v 1.7 2006/12/17 15:05:41 t-suwa Exp $ + $Id: KanjiConversionMode.h,v 1.8 2007/06/12 14:25:08 t-suwa Exp $ MacOS X implementation of the SKK input method. Copyright (C) 2002 phonohawk - Copyright (C) 2006 Tomotaka SUWA <t.suw****@mac*****> + Copyright (C) 2006-2007 Tomotaka SUWA <t.suw****@mac*****> 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 @@ -39,41 +39,41 @@ NumericConverter numconv_; protected: - static const int STATUS_NULL = 0; // ¿Ï·[hÉÈÁĢȢóÔBæªÉ¤à¥à³¢B - static const int STATUS_WHITE_ROOT = 1; // ¤[hÅAè¼¼ðüêéO - static const int STATUS_WHITE_OKURI = 2; // ¤[hÅAè¼¼ðüê½ã - static const int STATUS_BLACK = 3; // ¥[h - static const int STATUS_BLACK_WITH_WINDOW = 4; // ¥[hÅAóâIðEChEªJ¢Ä¢éB - static const int STATUS_PROMPT = 5; // vvgðoµÄ¢éB + static const int STATUS_NULL = 0; // æ¼¢åå¤æã¢ã¼ãã«ãªã£ã¦ããªãç¶æ ãå é ã«â½ãâ¼ãç¡ãã + static const int STATUS_WHITE_ROOT = 1; // â½ã¢ã¼ãã§ãéãä»®åãå ¥ããå + static const int STATUS_WHITE_OKURI = 2; // â½ã¢ã¼ãã§ãéãä»®åãå ¥ããå¾ + static const int STATUS_BLACK = 3; // â¼ã¢ã¼ã + static const int STATUS_BLACK_WITH_WINDOW = 4; // â¼ã¢ã¼ãã§ãåè£é¸æã¦ã¤ã³ãã¦ãéãã¦ããã + static const int STATUS_PROMPT = 5; // ããã³ãããåºãã¦ããã - WordRegisterMode* word_register_mode; // NULLÅÈ¢ÍPêo^[hªN®B + WordRegisterMode* word_register_mode; // NULLã§ãªãæã¯åèªç»é²ã¢ã¼ããèµ·åä¸ã int status; - CppCFString root; // 輼̳¢ªBáFuèvÈçu¨v - CppCFString okuri; // 輼̪BáFuèvÈçuèv - UniChar okuri_head; // 輼̪ÌAt@xbgBáFuèvÈçurv - CppCFString root_to_display,okuri_to_display; // æÊ\¦pBüÍrÌAt@xbgÈÇàüéB - - static const int PROMPT_DELETE_FROM_USER_DIC = 1; // [U[«©çPêðí - int prompt_type; // vvgÌíÞB - CppCFString prompt; // vvg - CppCFString prompt_input; // vvgÉ[U[ªü͵½¶ñ - - std::vector<CppCFString> candidates; // SÄÌóâ - unsigned current_candidate_index; // »ÝÌóâÔ - - unsigned show_cands_window_after_Nth_cand; // ½ÂÚÈ~ÌóâðóâIðEChEÉ\¦·é©B - - unsigned candidates_window_id; // statusªSTATUS_BLACK_WITH_WINDOWÌÆ«AóâIðEChEÌIDB - unsigned candidates_window_current_frame; // óâIðEChEÌ»ÝÌt[ - unsigned candidates_window_cands_per_frame; // óâIðEChEÌ1t[½èÌóâ - unsigned candidates_window_num_of_frames; // óâIðEChEÌt[ - - bool completion_mode; // ©oµêâ®[hB±Ì[hÅÍsIhÆJ}ªâ®ÌìÉgíêéB - std::vector<CppCFString> completions; // â®Ìóâ - unsigned current_completion_index; // »ÝÌâ®ÌóâÔ + CppCFString root; // éãä»®åã®ç¡ãé¨åãä¾ï¼ãéãããªããããã + CppCFString okuri; // éãä»®åã®é¨åãä¾ï¼ãéãããªãããã + UniChar okuri_head; // éãä»®åã®é ã®ã¢ã«ãã¡ããããä¾ï¼ãéãããªããrã + CppCFString root_to_display,okuri_to_display; // ç»é¢è¡¨ç¤ºç¨ãå ¥åéä¸ã®ã¢ã«ãã¡ããããªã©ãå ¥ãã + + static const int PROMPT_DELETE_FROM_USER_DIC = 1; // ã¦ã¼ã¶ã¼è¾æ¸ããåèªãåé¤ + int prompt_type; // ããã³ããã®ç¨®é¡ã + CppCFString prompt; // ããã³ãã + CppCFString prompt_input; // ããã³ããã«ã¦ã¼ã¶ã¼ãå ¥åããæåå + + std::vector<CppCFString> candidates; // å ¨ã¦ã®åè£ + unsigned current_candidate_index; // ç¾å¨ã®åè£çªå· + + unsigned show_cands_window_after_Nth_cand; // ä½åç®ä»¥éã®åè£ãåè£é¸æã¦ã¤ã³ãã¦ã«è¡¨ç¤ºãããã + + unsigned candidates_window_id; // statusãSTATUS_BLACK_WITH_WINDOWã®ã¨ããåè£é¸æã¦ã¤ã³ãã¦ã®IDã + unsigned candidates_window_current_frame; // åè£é¸æã¦ã¤ã³ãã¦ã®ç¾å¨ã®ãã¬ã¼ã + unsigned candidates_window_cands_per_frame; // åè£é¸æã¦ã¤ã³ãã¦ã®1ãã¬ã¼ã å½ããã®åè£æ° + unsigned candidates_window_num_of_frames; // åè£é¸æã¦ã¤ã³ãã¦ã®ãã¬ã¼ã æ° + + bool completion_mode; // è¦åºãèªè£å®ã¢ã¼ãããã®ã¢ã¼ãã§ã¯ããªãªãã¨ã«ã³ããè£å®ã®æä½ã«ä½¿ãããã + std::vector<CppCFString> completions; // è£å®ã®åè£ + unsigned current_completion_index; // ç¾å¨ã®è£å®ã®åè£çªå· - bool henkanModeStatus; //»ÝÏ·óÔÉÈÁÄ¢é©B + bool henkanModeStatus; //ç¾å¨å¤æç¶æ ã«ãªã£ã¦ãããã virtual void startRegisteringWord(); virtual void askServerTheCandidates(bool hasOkuri); @@ -101,14 +101,15 @@ virtual CppCFString getStringToDisplay(); virtual CppCFString getStringToFix(); - virtual void wordRegistrationFinished(); // WordRegisterModeêpB - virtual void wordRegistrationCanceled(); // WordRegisterModeêpB + virtual void wordRegistrationFinished(); // WordRegisterModeå°ç¨ã + virtual void wordRegistrationCanceled(); // WordRegisterModeå°ç¨ã }; void askServerTheCandidates(const CppCFData& query, std::vector<CppCFString>& candidates); void addCandidate(const CppCFString& candidate, std::vector<CppCFString>& candidates); void sendWordToServerToRegister(const CppCFString& index,const CppCFString& okuri,const CppCFString& kanji); void sendWordToServerToRegister(const CppCFString& index,const CppCFString& kanji); +void registerToggleEntry(const CppCFString& entry); void askServerTheCompletions(const CppCFData& query, std::vector<CppCFString>& completions); void makeServerRemoveWord(const CppCFData& query); void openCandidatesWindow(const CppCFString& str_candidates, Index: AquaSKK/ServerMessageReceiver.h diff -u AquaSKK/ServerMessageReceiver.h:1.5 AquaSKK/ServerMessageReceiver.h:1.6 --- AquaSKK/ServerMessageReceiver.h:1.5 Wed Apr 26 22:36:12 2006 +++ AquaSKK/ServerMessageReceiver.h Tue Jun 12 23:25:08 2007 @@ -1,10 +1,10 @@ /* - $Id: ServerMessageReceiver.h,v 1.5 2006/04/26 13:36:12 t-suwa Exp $ + $Id: ServerMessageReceiver.h,v 1.6 2007/06/12 14:25:08 t-suwa Exp $ MacOS X implementation of the SKK input method. Copyright (C) 2002 phonohawk - Copyright (C) 2005 Tomotaka SUWA <t.suw****@mac*****> + Copyright (C) 2005-2007 Tomotaka SUWA <t.suw****@mac*****> 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 @@ -21,7 +21,8 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#pragma once +#ifndef INC__ServerMessageReceiver__ +#define INC__ServerMessageReceiver__ #include <Carbon/Carbon.h> #include <exception> @@ -30,7 +31,7 @@ class CppCFData; /* - NCAg©çÌbZ[Wðó¯æéNXÅ·B + ã¯ã©ã¤ã¢ã³ãããã®ã¡ãã»ã¼ã¸ãåãåãã¯ã©ã¹ã§ãã */ class ServerMessageReceiver: public CppMessagePortServer { @@ -44,6 +45,7 @@ CppCFData candidatesWindowPrev(const CppCFData& attachment); void closeCandidatesWindow(const CppCFData& attachment); void registerThisToUserDic(const CppCFData& attachment); + void registerToggleEntry(const CppCFData& attachment); void removeThisFromUserDic(const CppCFData& attachment); void showAboutBox(); void showPreferencesBox(); @@ -53,3 +55,5 @@ public: static void start(const CFStringRef loopMode); }; + +#endif Index: AquaSKK/ServerMessageReceiver.mm diff -u AquaSKK/ServerMessageReceiver.mm:1.8 AquaSKK/ServerMessageReceiver.mm:1.9 --- AquaSKK/ServerMessageReceiver.mm:1.8 Mon Dec 18 00:05:41 2006 +++ AquaSKK/ServerMessageReceiver.mm Tue Jun 12 23:25:08 2007 @@ -1,10 +1,10 @@ /* -*- objc -*- - $Id: ServerMessageReceiver.mm,v 1.8 2006/12/17 15:05:41 t-suwa Exp $ + $Id: ServerMessageReceiver.mm,v 1.9 2007/06/12 14:25:08 t-suwa Exp $ MacOS X implementation of the SKK input method. Copyright (C) 2002 phonohawk - Copyright (C) 2005-2006 Tomotaka SUWA <t.suw****@mac*****> + Copyright (C) 2005-2007 Tomotaka SUWA <t.suw****@mac*****> 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 @@ -51,13 +51,13 @@ CppCFData ServerMessageReceiver::messageReceived(SInt32 msgid, const CppCFData& packet) { CppCFData reply; - // wb_ðæèo·BNCAgÌPSNªüÁÄ¢éB + // ããããåãåºããã¯ã©ã¤ã¢ã³ãã®PSNãå ¥ã£ã¦ããã BasicMessageHeader header; if(packet.getLength() > 0) { packet.copyData(0, sizeof(BasicMessageHeader), &header); } - // PSN ð Host Endian Éß· + // PSN ã Host Endian ã«æ»ã #define Big2Host32(arg) arg = CFSwapInt32BigToHost(arg) Big2Host32(header.fProcessSerialNumber.highLongOfPSN); Big2Host32(header.fProcessSerialNumber.lowLongOfPSN); @@ -68,10 +68,10 @@ } switch(msgid) { - case kBasicMessageActivated: // NCAgªANeBuÉÈÁ½ + case kBasicMessageActivated: // ã¯ã©ã¤ã¢ã³ããã¢ã¯ãã£ãã«ãªã£ã ClientConnectionFactory::theInstance().setDefaultTarget(header.fProcessSerialNumber); break; - case kBasicMessageDeactivated: { // NCAgªANeBuÅÈÈÁ½ + case kBasicMessageDeactivated: { // ã¯ã©ã¤ã¢ã³ããã¢ã¯ãã£ãã§ãªããªã£ã ProcessSerialNumber psn; psn.highLongOfPSN = 0; psn.lowLongOfPSN = kNoProcess; @@ -79,7 +79,7 @@ ClientConnectionFactory::theInstance().setDefaultTarget(psn); break; } - case kBasicMessageHidePalettes: // pbgðB·æ¤TSM©çw¦ªüÁ½ + case kBasicMessageHidePalettes: // ãã¬ãããé ãããTSMããæ示ãå ¥ã£ã break; case kSKKMessageSearch: reply = searchWord(body); @@ -99,6 +99,9 @@ case kSKKRegisterThisToUserDic: registerThisToUserDic(body); break; + case kSKKRegisterToggleEntry: + registerToggleEntry(body); + break; case kSKKRemoveThisFromUserDic: removeThisFromUserDic(body); break; @@ -141,7 +144,7 @@ std::string query = data.toStdString(kCFStringEncodingUTF8).substr(1); std::string result; - // è èH + // éãããï¼ if(data[0] == '+') { int pos = query.find_first_of(SKK_MSG_DELIMITER); @@ -159,7 +162,7 @@ } CppCFData ServerMessageReceiver::createCandidatesWindow(const CppCFData& attachment) { - // ÇÁf[^ƵÄQuickDrawÀWÆUniCharÌzñðæéB + // 追å ãã¼ã¿ã¨ãã¦QuickDraw座æ¨ã¨UniCharã®é åãåãã SInt16 qd_x = CFSwapInt16BigToHost(attachment.getSInt16(0)); SInt16 qd_y = CFSwapInt16BigToHost(attachment.getSInt16(2)); int showLast = CFSwapInt16BigToHost(attachment.getSInt16(4)); @@ -217,7 +220,7 @@ std::string query = data.toStdString(kCFStringEncodingUTF8).substr(1); - // è èH + // éãããï¼ if(data[0] == '+') { int pos1 = query.find_first_of(SKK_MSG_DELIMITER); int pos2 = query.find_first_of(SKK_MSG_DELIMITER, pos1 + 1); @@ -237,6 +240,15 @@ } } +void ServerMessageReceiver::registerToggleEntry(const CppCFData& attachment) { + CppCFString data(attachment.getData()); + + std::string key = data.toStdString(kCFStringEncodingUTF8); + + // è¦åºãèªã ãç»é²ãã + DictionarySet::theInstance().RegisterOkuriNasi(key, ""); +} + void ServerMessageReceiver::removeThisFromUserDic(const CppCFData& attachment) { CppCFString data(attachment.getData()); @@ -247,7 +259,7 @@ std::string key = query.substr(0, pos); std::string kanji = query.substr(pos + 1); - // è èH + // éãããï¼ if(data[0] == '+') { DictionarySet::theInstance().RemoveOkuriAri(key, kanji); } else {