Tomotaka SUWA
t-suw****@users*****
2007年 8月 16日 (木) 19:58:18 JST
Index: AquaSKK/AsciiConversionMode.cpp
diff -u AquaSKK/AsciiConversionMode.cpp:1.7.2.4 AquaSKK/AsciiConversionMode.cpp:1.7.2.5
--- AquaSKK/AsciiConversionMode.cpp:1.7.2.4 Sat Feb 3 17:52:48 2007
+++ AquaSKK/AsciiConversionMode.cpp Thu Aug 16 19:58:18 2007
@@ -1,5 +1,5 @@
/*
- $Id: AsciiConversionMode.cpp,v 1.7.2.4 2007/02/03 08:52:48 t-suwa Exp $
+ $Id: AsciiConversionMode.cpp,v 1.7.2.5 2007/08/16 10:58:18 t-suwa Exp $
MacOS X implementation of the SKK input method.
@@ -33,7 +33,8 @@
AsciiConversionMode::AsciiConversionMode(ParentInputMode& src)
:ChildInputMode(src),
- word_register_mode(NULL),
+ word_register_mode(0),
+ old_word_register_mode(0),
status(STATUS_NULL),
show_cands_window_after_Nth_cand(5),
completion_mode(false),
@@ -42,9 +43,8 @@
}
AsciiConversionMode::~AsciiConversionMode() {
- if(word_register_mode) {
- delete word_register_mode;
- }
+ delete word_register_mode;
+ delete old_word_register_mode;
}
void AsciiConversionMode::start() {
@@ -61,12 +61,12 @@
bool AsciiConversionMode::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 && completion_mode) {
- // ÌóâÖBÅãÜÅsÁ½çÅÉßéB
+ // 次ã®åè£ã¸ãæå¾ã¾ã§è¡ã£ããæåã«æ»ãã
current_completion_index++;
if (current_completion_index >= completions.size()) {
current_completion_index = 0;
@@ -78,7 +78,7 @@
if(SKKConfig::AbbrevPrevKey() == skkchar) {
if(status == STATUS_WHITE && completion_mode) {
- // OÌóâÖBÅÜÅsÁ½çÅãÉßéB
+ // åã®åè£ã¸ãæåã¾ã§è¡ã£ããæå¾ã«æ»ãã
if(current_completion_index == 0) {
current_completion_index = completions.size() - 1;
} else {
@@ -89,14 +89,14 @@
}
}
- // tab,sIh,J}ÈOÌ¢©È鶪üͳêÄàâ®[hð²¯éB
+ // tab,ããªãªã,ã«ã³ã以å¤ã®ãããªãæåãå
¥åããã¦ãè£å®ã¢ã¼ããæããã
completion_mode = false;
if(SKKConfig::ToggleKanaKey() == skkchar) {
if(status == STATUS_BLACK || status == STATUS_BLACK_WITH_WINDOW) {
- // »ÝÌóâðmèB
- // 1) ½¼¼[hÈçSpм¼[hÖ
- // 2) »êÈOÈç½¼¼[hÖ
+ // ç¾å¨ã®åè£ã確å®ã
+ // 1) 平仮åã¢ã¼ããªãå
¨è§çä»®åã¢ã¼ãã¸
+ // 2) ãã以å¤ãªã平仮åã¢ã¼ãã¸
parent->setEnabledKanjiMode(false);
if(parent->isHiraganaInputMode()) {
parent->goZenKataInputMode();
@@ -109,7 +109,7 @@
if(SKKConfig::PrevKouhoKey() == skkchar) {
if(status == STATUS_BLACK) {
- // êÂOÌóâÖBÅÌóâ¾Á½ç¤[hÖßéB
+ // ä¸ã¤åã®åè£ã¸ãæåã®åè£ã ã£ããâ½ã¢ã¼ãã¸æ»ãã
if(current_candidate_index > 0) {
current_candidate_index--;
} else {
@@ -118,17 +118,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();
@@ -144,7 +144,7 @@
if(SKKConfig::ToggleKatakanaKey() == skkchar) {
if(status == STATUS_WHITE) {
- // ¼ppðSppÉÏ·µÄ©çmèµÄI¹
+ // åè§è±æ°åãå
¨è§è±æ°åã«å¤æãã¦ãã確å®ãã¦çµäº
parent->fix(ZenAscInputMode::convert(index));
parent->setEnabledAsciiConversionMode(false);
@@ -153,9 +153,9 @@
return false;
}
if(status == STATUS_BLACK || status == STATUS_BLACK_WITH_WINDOW) {
- // »ÝÌóâðmèµÄ©çA
- // 1) ¼pм¼[hÈç½¼¼[hÖ
- // 2) »êÈOÈç¼pм¼¼¼[hÖ
+ // ç¾å¨ã®åè£ã確å®ãã¦ããã
+ // 1) åè§çä»®åã¢ã¼ããªã平仮åã¢ã¼ãã¸
+ // 2) ãã以å¤ãªãåè§çä»®åä»®åã¢ã¼ãã¸
parent->setEnabledAsciiConversionMode(false);
if (parent->isHanKataInputMode()) {
parent->goHiraganaInputMode();
@@ -167,12 +167,12 @@
}
if(SKKConfig::KakuteiKey() == skkchar) {
- return true; // mèÌÝ
+ return true; // 確å®ã®ã¿
}
if(SKKConfig::LatinModeKey() == skkchar || SKKConfig::Jisx0208LatinModeKey() == skkchar) {
if(status == STATUS_BLACK) {
- // »ê¼êðmèµÄ¼p/Spp[hÖB
+ // ããããã確å®ãã¦åè§/å
¨è§è±æ°åã¢ã¼ãã¸ã
if(SKKConfig::LatinModeKey() == skkchar) {
parent->goHanAscInputMode();
} else {
@@ -180,7 +180,14 @@
}
return true;
}
- // ¤[hâóâIðæÊÈçfÊèB
+ // â½ã¢ã¼ããåè£é¸æç»é¢ãªãç´ éãã
+ }
+
+ if(SKKConfig::SetHenkanPointKey() == skkchar) {
+ if(status == STATUS_BLACK || status == STATUS_BLACK_WITH_WINDOW) {
+ parent->fix(getStringToFix());
+ return parent->handleInput(skkchar);
+ }
}
if(SKKConfig::SetHenkanPointKey() == skkchar) {
@@ -201,67 +208,67 @@
if(SKKConfig::NextKouhoKey() == skkchar) {
if(status == STATUS_WHITE) {
if(index.length() == 0) {
- // I¹
+ // çµäº
parent->setEnabledAsciiConversionMode(false);
parent->display(CppCFString());
initialize();
return false;
}
- // IÉâ¢í¹
+ // é¯ã«åãåãã
askServerTheCandidates();
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();
}
}
} else {
if(status == STATUS_WHITE) {
- // indexɽ¾ÇÁB
+ // indexã«ãã 追å ã
index += skkchar;
}
else if(status == STATUS_BLACK) {
- // »ÝÌóâðmèµÄðp±
+ // ç¾å¨ã®åè£ã確å®ãã¦å¦çãç¶ç¶
parent->fix(getStringToFix());
return parent->handleInput(skkchar);
}
else if(status == STATUS_BLACK_WITH_WINDOW) {
- // asdfjkli1t[½èÌóâª7æèȯêαêà¸éBj̶ŠêÎ
- // »Ìóâð½¾mè·éB
- // »¤ÅȯêλÝÌóâð½¾mè·éB
+ // asdfjklï¼1ãã¬ã¼ã å½ããã®åè£æ°ã7ããå°ãªããã°ãããæ¸ããï¼ã®æåã§ããã°
+ // ãã®åè£ããã 確å®ããã
+ // ããã§ãªããã°ç¾å¨ã®åè£ããã 確å®ããã
int cand_index = CppCFString("asdfjkl").substring(0, candidates_window_cands_per_frame).indexOf(skkchar);
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;
}
@@ -269,7 +276,7 @@
return false;
}
else if(status == STATUS_PROMPT) {
- // »ÌÜÜprompt_inputÉÇÁB
+ // ãã®ã¾ã¾prompt_inputã«è¿½å ã
prompt_input += skkchar;
}
}
@@ -284,7 +291,7 @@
bool AsciiConversionMode::handleBackSpace() {
if(word_register_mode) {
word_register_mode->handleBackSpace();
- return true; // WordRegisterMode::handleBackSpace()ª½ðÔ»¤Æà{¶ÍÁ³È¢B
+ return true; // WordRegisterMode::handleBackSpace()ãä½ãè¿ããã¨ãæ¬æã¯æ¶ããªãã
}
if(status == STATUS_NULL) {
@@ -292,32 +299,32 @@
}
if(status == STATUS_WHITE) {
- // indexªóÈçú»µÄI¹
- // óÅȯêÎindexÌÅã̶ðÁ·B
+ // indexã空ãªãåæåãã¦çµäº
+ // 空ã§ãªããã°indexã®æå¾ã®æåãæ¶ãã
if(index.length() == 0) {
parent->setEnabledAsciiConversionMode(false);
parent->display(CppCFString());
initialize();
} else {
- completion_mode = false; // â®[h¾Á½êÍâ®[hð²¯éB
+ completion_mode = false; // è£å®ã¢ã¼ãã ã£ãå ´åã¯è£å®ã¢ã¼ããæããã
index.eraseLast(1);
}
}
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[ÈçA¥[hÖßé
- // »¤ÅȯêÎ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;
@@ -326,7 +333,7 @@
}
}
else if(status == STATUS_PROMPT) {
- // prompt_inputªóÅȯêÎÅã̶ðÁ·B
+ // prompt_inputã空ã§ãªããã°æå¾ã®æåãæ¶ãã
if(prompt_input.length() > 0) {
prompt_input.eraseLast(1);
}
@@ -339,23 +346,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ÉßéB
- // »êÈOÈçSTATUS_BLACKÉßéB
+ // prompt_inputãyesãªãåé¤ãã¦STATUS_WHITEã«æ»ãã
+ // ãã以å¤ãªãSTATUS_BLACKã«æ»ãã
if(prompt_input == "yes") {
- // í
+ // åé¤
makeServerRemoveWord();
- // STATUS_WHITEÖ
+ // STATUS_WHITEã¸
status = STATUS_WHITE;
} else {
status = STATUS_BLACK;
@@ -370,8 +377,8 @@
}
if(ClientConfiguration::theInstance().isSkkEggLikeNewline()) {
- // skk-egglike-newline[hÈçA©ÍÅm賹ĩçú»µÄtrueðÔ·B
- // IÉM
+ // skk-egglike-newlineã¢ã¼ããªããèªåã§ç¢ºå®ããã¦ããåæåãã¦trueãè¿ãã
+ // é¯ã«éä¿¡
parent->fix(getStringToFix());
return true;
} else {
@@ -381,15 +388,15 @@
bool AsciiConversionMode::handleArrow(SKKChar skkchar) {
if(word_register_mode) {
- return word_register_mode->handleArrow(skkchar); // Ï÷
+ return word_register_mode->handleArrow(skkchar); // å§è²
}
if(status == STATUS_BLACK || status == STATUS_BLACK_WITH_WINDOW) {
- // »ÝÌóâðmè·é
+ // ç¾å¨ã®åè£ã確å®ãã
parent->fix(getStringToFix());
}
- // AXL[Ï·[hðI¹·éB
+ // ã¢ã¹ãã¼å¤æã¢ã¼ããçµäºããã
parent->setEnabledAsciiConversionMode(false);
initialize();
return false;
@@ -400,18 +407,18 @@
return word_register_mode->handleCg();
}
- // ½¼¼Cvbg[hÌhandleCgðÄÑAgetStringToFix()àÄÔªAÄÔ¾¯B
+ // 平仮åã¤ã³ãããã¢ã¼ãã®handleCgãå¼ã³ãgetStringToFix()ãå¼ã¶ããå¼ã¶ã ãã
parent->getCurrentInputMode().handleCg();
parent->getCurrentInputMode().getStringToFix();
if(status == STATUS_WHITE) {
- // AXL[Ï·[hI¹
+ // ã¢ã¹ãã¼å¤æã¢ã¼ãçµäº
parent->setEnabledAsciiConversionMode(false);
initialize();
}
else if(status == STATUS_BLACK || status == STATUS_BLACK_WITH_WINDOW) {
- // okuriªóÈçSTATUS_WHITE_ROOTÖB»¤ÅȯêÎSTATUS_WHITE_OKURIÖB
- // EChEªJ©êÄ¢½ç¶éB
+ // okuriã空ãªãSTATUS_WHITE_ROOTã¸ãããã§ãªããã°STATUS_WHITE_OKURIã¸ã
+ // ã¦ã¤ã³ãã¦ãéããã¦ãããéããã
if(status == STATUS_BLACK_WITH_WINDOW) {
closeCandidatesWindow();
}
@@ -436,17 +443,17 @@
if(status == STATUS_WHITE) {
if(completion_mode) {
- // ÌóâÖBÅãÜÅsÁ½çÅÉßéB
+ // 次ã®åè£ã¸ãæå¾ã¾ã§è¡ã£ããæåã«æ»ãã
current_completion_index++;
if(current_completion_index >= completions.size()) {
current_completion_index = 0;
}
index = completions[current_completion_index];
} else {
- // IÉâ¢í¹éB
+ // é¯ã«åãåãããã
askServerTheCompletions();
- // â®Ìó⪠êÎâ®JnB³¯êν๸ÉßéB
+ // è£å®ã®åè£ãããã°è£å®éå§ãç¡ããã°ä½ãããã«æ»ãã
if(completions.size() > 0) {
completion_mode = true;
index = completions[0];
@@ -461,72 +468,78 @@
void AsciiConversionMode::terminate() {
if(word_register_mode) {
word_register_mode->terminate();
+ resetRegistrationMode();
}
- parent->fix(getStringToFix()); // mè·é
+ parent->fix(getStringToFix()); // 確å®ãã
parent->setEnabledAsciiConversionMode(false);
initialize();
}
+// ç´åã®åèªç»é²ã¢ã¼ããåé¤ããç¾å¨ã®åèªç»é²ã¢ã¼ããéé¿ãã
+void AsciiConversionMode::resetRegistrationMode() {
+ delete old_word_register_mode;
+ old_word_register_mode = word_register_mode;
+ word_register_mode = 0;
+}
+
void AsciiConversionMode::wordRegistrationFinished() {
if(word_register_mode) {
CppCFString content = word_register_mode->getContent();
if(content.length() > 0) {
- // IÉM
+ // é¯ã«éä¿¡
sendWordToServerToRegister(index,content);
- // mè
+ // 確å®
parent->fix(content);
- // I¹
+ // çµäº
parent->setEnabledAsciiConversionMode(false);
initialize();
} else {
status = STATUS_WHITE;
}
- delete word_register_mode;
- word_register_mode = NULL;
+ resetRegistrationMode();
parent->updatePencilMenuIcon();
}
}
void AsciiConversionMode::wordRegistrationCanceled() {
- delete word_register_mode;
- word_register_mode = NULL;
+ resetRegistrationMode();
parent->updatePencilMenuIcon();
if(status == STATUS_WHITE) {
// do nothing
}
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 AsciiConversionMode::getStringToDisplay() {
if(word_register_mode) {
- // ³³¹éB³àÈ¢ÆÜpWordRegisterModeªÝèµ½¶ð׵ĵܤB
+ // ç¡è¦ãããããããªãã¨æè§WordRegisterModeãè¨å®ããæåãæ½°ãã¦ãã¾ãã
return CppCFString().append(kIgnoreThis);
}
if(status == STATUS_WHITE) {
- // ¤index
+ // â½index
return CppCFString().append(0x25bd).append(index);
}
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 {
return CppCFString().append(kIgnoreThis);
@@ -541,24 +554,24 @@
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) */ {
result = CppCFString().append(kIgnoreThis);
}
- // ±êªÄÎê½Æ¢¤±ÆÍfix³ê鯢¤±ÆÈÌÅAXL[Ï·[hI¹B
- // ú»·éB
+ // ãããå¼ã°ããã¨ãããã¨ã¯fixãããã¨ãããã¨ãªã®ã§ã¢ã¹ãã¼å¤æã¢ã¼ãçµäºã
+ // åæåããã
parent->setEnabledAsciiConversionMode(false);
initialize();
@@ -580,14 +593,14 @@
str.append(index);
- // ahya@¨@-ahya
+ // ahyaãâã-ahya
CppCFData query;
query.own(str.toCFData());
current_candidate_index = 0;
::askServerTheCandidates(query, candidates);
- // lÏ·ªLø©H
+ // æ°å¤å¤æãæå¹ãï¼
if(ClientConfiguration::theInstance().useNumericConversion() &&
numconv_.Setup(index.toStdString(kCFStringEncodingUTF8))) {
CppCFString normalized(numconv_.NormalizedKey().c_str(), kCFStringEncodingUTF8);
@@ -603,7 +616,7 @@
}
void AsciiConversionMode::askServerTheCompletions() {
- // IÉqËé
+ // é¯ã«å°ãã
CppCFData cfdata_query;
cfdata_query.own(index.toCFData());
@@ -612,16 +625,16 @@
}
void AsciiConversionMode::sendCurrentCandidateToServerToRegister() {
- // IÉM
+ // é¯ã«éä¿¡
sendWordToServerToRegister(index,candidates[current_candidate_index]);
}
void AsciiConversionMode::makeServerRemoveWord() {
CppCFString query;
- // ahya ißÍßj@¨@-ahya ißÍßj
+ // ahya ï¼ï¾âï¾ï¼ãâã-ahya ï¼ï¾âï¾ï¼
query.append('-').append(index).append(SKK_MSG_DELIMITER).append(candidates[current_candidate_index]);
- // IÉn·
+ // é¯ã«æ¸¡ã
CppCFData cfdata_query;
cfdata_query.own(query.toCFData());
::makeServerRemoveWord(cfdata_query);
@@ -645,45 +658,35 @@
}
void AsciiConversionMode::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 AsciiConversionMode::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 AsciiConversionMode::suspendCandidatesWindow() {
- ServerConnectionFactory::theInstance().newConnection().
- send(kSKKSuspendCandidatesWindow, newCFDataRefWithWindowID(candidates_window_id));
-}
-
-void AsciiConversionMode::resumeCandidatesWindow() {
- ServerConnectionFactory::theInstance().newConnection().
- send(kSKKResumeCandidatesWindow, newCFDataRefWithWindowID(candidates_window_id));
-}
-
void AsciiConversionMode::closeCandidatesWindow() {
- // EChEID(UInt16)ðÜÞCFDatað쬵AIÖéB
+ // ã¦ã¤ã³ãã¦ID(UInt16)ãå«ãCFDataã使ããé¯ã¸éãã
ServerConnectionFactory::theInstance().newConnection().
send(kSKKCloseCandidatesWindow, newCFDataRefWithWindowID(candidates_window_id));
}
Index: AquaSKK/AsciiConversionMode.h
diff -u AquaSKK/AsciiConversionMode.h:1.5.2.1 AquaSKK/AsciiConversionMode.h:1.5.2.2
--- AquaSKK/AsciiConversionMode.h:1.5.2.1 Sat Feb 3 16:53:29 2007
+++ AquaSKK/AsciiConversionMode.h Thu Aug 16 19:58:18 2007
@@ -1,5 +1,5 @@
/*
- $Id: AsciiConversionMode.h,v 1.5.2.1 2007/02/03 07:53:29 t-suwa Exp $
+ $Id: AsciiConversionMode.h,v 1.5.2.2 2007/08/16 10:58:18 t-suwa Exp $
MacOS X implementation of the SKK input method.
@@ -38,35 +38,36 @@
NumericConverter numconv_;
protected:
- static const int STATUS_NULL = 0; // AXL[Ï·[hÉÈÁĢȢóÔBæªÉ¤à¥à³¢B
- static const int STATUS_WHITE = 1; // ¤[h
- static const int STATUS_BLACK = 2; // ¥[h
- static const int STATUS_BLACK_WITH_WINDOW = 3; // ¥[hÅAóâIðEChEªJ¢Ä¢éB
- static const int STATUS_PROMPT = 4; // vvgðoµÄ¢éB
+ static const int STATUS_NULL = 0; // ã¢ã¹ãã¼å¤æã¢ã¼ãã«ãªã£ã¦ããªãç¶æ
ãå
é ã«â½ãâ¼ãç¡ãã
+ static const int STATUS_WHITE = 1; // â½ã¢ã¼ã
+ static const int STATUS_BLACK = 2; // â¼ã¢ã¼ã
+ static const int STATUS_BLACK_WITH_WINDOW = 3; // â¼ã¢ã¼ãã§ãåè£é¸æã¦ã¤ã³ãã¦ãéãã¦ããã
+ static const int STATUS_PROMPT = 4; // ããã³ãããåºãã¦ããã
- WordRegisterMode* word_register_mode; // NULLÅÈ¢ÍPêo^[hªN®B
+ WordRegisterMode* word_register_mode; // NULLã§ãªãæã¯åèªç»é²ã¢ã¼ããèµ·åä¸ã
+ WordRegisterMode* old_word_register_mode; // ç´åã¾ã§æå¹ã ã£ãåèªç»é²ã¢ã¼ã
int status;
- CppCFString index; // ©oµê
+ CppCFString index; // è¦åºãèª
- 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; // »ÝÌâ®ÌóâÔ
+ 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;
@@ -78,16 +79,15 @@
virtual void openCandidatesWindow(OpenDirection mode = OpenNormal);
virtual void goToPrevCandidatesFrame();
virtual void goToNextCandidatesFrame();
- virtual void suspendCandidatesWindow();
- virtual void resumeCandidatesWindow();
virtual void closeCandidatesWindow();
virtual void initialize();
+ virtual void resetRegistrationMode();
public:
AsciiConversionMode(class ParentInputMode& parent);
virtual ~AsciiConversionMode();
- virtual void start(); // ±êªÄÎê鯤[hÉÈéB
+ virtual void start(); // ãããå¼ã°ããã¨â½ã¢ã¼ãã«ãªãã
virtual bool handleInput(SKKChar skkchar);
virtual bool handleBackSpace();
virtual bool handleReturn();
@@ -99,8 +99,8 @@
virtual CppCFString getStringToDisplay();
virtual CppCFString getStringToFix();
- virtual void wordRegistrationFinished(); // WordRegisterModeêpB
- virtual void wordRegistrationCanceled(); // WordRegisterModeêpB
+ virtual void wordRegistrationFinished(); // WordRegisterModeå°ç¨ã
+ virtual void wordRegistrationCanceled(); // WordRegisterModeå°ç¨ã
};
#endif // INC__AsciiConversionMode__
Index: AquaSKK/BIMClientServer.h
diff -u AquaSKK/BIMClientServer.h:1.6.2.1 AquaSKK/BIMClientServer.h:1.6.2.2
--- AquaSKK/BIMClientServer.h:1.6.2.1 Sat Feb 3 16:53:29 2007
+++ AquaSKK/BIMClientServer.h Thu Aug 16 19:58:18 2007
@@ -1,5 +1,5 @@
/*
- $Id: BIMClientServer.h,v 1.6.2.1 2007/02/03 07:53:29 t-suwa Exp $
+ $Id: BIMClientServer.h,v 1.6.2.2 2007/08/16 10:58:18 t-suwa Exp $
MacOS X implementation of the SKK input method.
@@ -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,46 +68,75 @@
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
- kSKKSuspendCandidatesWindow = 207,
- kSKKResumeCandidatesWindow = 208,
-
- kSKKShowAboutBox = 300, // AboutBoxð\¦·éBX|Xͳ¢B
- kSKKShowPreferencesBox = 301, // «ÝèEChEð\¦·éBX|Xͳ¢B
- kSKKShowWordRegistrationBox = 302, // Pêo^EChEð\¦·éBX|Xͳ¢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,
+
+ // AboutBoxã表示ãã(ã¬ã¹ãã³ã¹ç¡)
+ kSKKShowAboutBox = 300,
+
+ // ç°å¢è¨å®ã¦ã¤ã³ãã¦ã表示(ã¬ã¹ãã³ã¹ç¡)
+ kSKKShowPreferencesBox = 301,
+
+ // åèªç»é²ã¦ã¤ã³ãã¦ã表示(ã¬ã¹ãã³ã¹ç¡)
+ kSKKShowWordRegistrationBox = 302,
+
+ // è£å®ã®åè£ãæ¤ç´¢
+ // ã¯ã¨ãªã®å½¢å¼ã¯UniCharã®é
åã§ä¾ãã°ãã»ããªã©
+ // ã¬ã¹ãã³ã¹ã¯ãã»ã ã»ãããã®ããã« SKK_MSG_DELIMITER ã§åºåãããè¦åºãèªã®ãªã¹ã
+ kSKKFetchCompletions = 400,
- kSKKFetchCompletions = 400, // â®ÌóâðõBNGÌ`®ÍUniCharÌzñÅA
- // á¦ÎuÙvBX|XÍuÙ© Ù©ñvÌæ¤É¼pXy[XÅæØç꽩oµêÌXgB
+ // ãã°ã«å¤æã®è¦åºãèªãç»é²
+ kSKKRegisterToggleEntry = 401,
- kBasicMessageIsSkkEggLikeNewline = 500, //
+ kBasicMessageIsSkkEggLikeNewline = 500,
kBasicMessageIsNumericKeypad_HalfWidth = 501,
kBasicMessageIsAsciiModeStartup = 502,
kBasicMessageUseNumericConversion = 503,
@@ -117,7 +144,7 @@
kBasicMessage__EOF
};
-// T[o[©çNCAgÖÌÊmbZ[W
+// ãµã¼ãã¼ããã¯ã©ã¤ã¢ã³ãã¸ã®éç¥ã¡ãã»ã¼ã¸
enum {
kSKKClientConfigurationModified = 100
};
Index: AquaSKK/CandidatesManager.h
diff -u AquaSKK/CandidatesManager.h:1.4.2.1 AquaSKK/CandidatesManager.h:1.4.2.2
--- AquaSKK/CandidatesManager.h:1.4.2.1 Sat Feb 3 16:53:29 2007
+++ AquaSKK/CandidatesManager.h Thu Aug 16 19:58:18 2007
@@ -1,5 +1,5 @@
/*
- $Id: CandidatesManager.h,v 1.4.2.1 2007/02/03 07:53:29 t-suwa Exp $
+ $Id: CandidatesManager.h,v 1.4.2.2 2007/08/16 10:58:18 t-suwa Exp $
MacOS X implementation of the SKK input method.
@@ -39,8 +39,6 @@
unsigned createAndShow(SInt16 qd_x, SInt16 qd_y, const CppCFString& candidates, bool showLast = false);
void windowNext(unsigned int window_id);
void windowPrev(unsigned int window_id);
- void suspendWindow(unsigned int window_id);
- void resumeWindow(unsigned int window_id);
void closeWindow(unsigned int window_id);
CandidatesWindowController* getWindowController(unsigned window_id);
};
Index: AquaSKK/CandidatesManager.mm
diff -u AquaSKK/CandidatesManager.mm:1.6.2.1 AquaSKK/CandidatesManager.mm:1.6.2.2
--- AquaSKK/CandidatesManager.mm:1.6.2.1 Sat Feb 3 16:53:29 2007
+++ AquaSKK/CandidatesManager.mm Thu Aug 16 19:58:18 2007
@@ -1,5 +1,5 @@
/* -*- objc -*-
- $Id: CandidatesManager.mm,v 1.6.2.1 2007/02/03 07:53:29 t-suwa Exp $
+ $Id: CandidatesManager.mm,v 1.6.2.2 2007/08/16 10:58:18 t-suwa Exp $
MacOS X implementation of the SKK input method.
@@ -103,18 +103,6 @@
[cand_windows[window_id] showPrevFrame];
}
-void CandidatesManager::suspendWindow(unsigned int window_id) {
- CandidatesWindowController* cwc = cand_windows[window_id];
-
- [[cwc window] orderOut:nil];
-}
-
-void CandidatesManager::resumeWindow(unsigned int window_id) {
- CandidatesWindowController* cwc = cand_windows[window_id];
-
- [[cwc window] orderFront:nil];
-}
-
void CandidatesManager::closeWindow(unsigned int window_id) {
CandidatesWindowController* cwc = cand_windows[window_id];
Index: AquaSKK/ChangeLog
diff -u AquaSKK/ChangeLog:1.33.2.8 AquaSKK/ChangeLog:1.33.2.9
--- AquaSKK/ChangeLog:1.33.2.8 Sat Feb 3 17:52:48 2007
+++ AquaSKK/ChangeLog Thu Aug 16 19:58:18 2007
@@ -1,3 +1,36 @@
+2007-06-15 Tomotaka SUWA <t.suw****@mac*****>
+
+ * AquaSKK.pbproj/project.pbxproj: Panther ã§ãã«ãã§ããããã«ä¿®
+ æ£(OkuriganaEntry ãé¤å»)ã
+
+2007-06-14 Tomotaka SUWA <t.suw****@mac*****>
+
+ * *ConversionMode.*: åèªç»é²ã¢ã¼ããå®å
¨ã«åé¤ããããã«ä¿®æ£ã
+
+ * KanjiConversionMode.*:
+ (1) è£å®çµæãç¾å¨ã®æå種å¥ã¨åãããããã«ä¿®æ£
+ (2) åèªç»é²æã«è¦åºãèªããã²ãããªãã«æ£è¦åãããªãä¸å
·åãä¿®æ£
+ (3) åèªç»é²åã®å
¥åã¢ã¼ãã復å
ãããªãä¸å
·åãä¿®æ£
+
+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 ãªãªã¼ã¹ã
+
2007-02-03 Tomotaka SUWA <t.suw****@mac*****>
* tests/TestAquaSKK.scpt: æ°è¦è¿½å ãAppleScript ã«ããèªåãã¹ãã¹
Index: AquaSKK/Dictionary.h
diff -u AquaSKK/Dictionary.h:1.4.2.6 AquaSKK/Dictionary.h:1.4.2.7
--- AquaSKK/Dictionary.h:1.4.2.6 Sat Feb 3 17:52:48 2007
+++ AquaSKK/Dictionary.h Thu Aug 16 19:58:18 2007
@@ -1,10 +1,10 @@
/* -*- C++ -*-
- $Id: Dictionary.h,v 1.4.2.6 2007/02/03 08:52:48 t-suwa Exp $
+ $Id: Dictionary.h,v 1.4.2.7 2007/08/16 10:58:18 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.5.2.7 AquaSKK/DictionarySet.cpp:1.5.2.8
--- AquaSKK/DictionarySet.cpp:1.5.2.7 Sat Feb 3 17:52:48 2007
+++ AquaSKK/DictionarySet.cpp Thu Aug 16 19:58:18 2007
@@ -1,10 +1,10 @@
/*
- $Id: DictionarySet.cpp,v 1.5.2.7 2007/02/03 08:52:48 t-suwa Exp $
+ $Id: DictionarySet.cpp,v 1.5.2.8 2007/08/16 10:58:18 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.8.2.5 AquaSKK/KanjiConversionMode.cpp:1.8.2.6
--- AquaSKK/KanjiConversionMode.cpp:1.8.2.5 Sat Feb 3 17:52:48 2007
+++ AquaSKK/KanjiConversionMode.cpp Thu Aug 16 19:58:18 2007
@@ -1,5 +1,5 @@
/*
- $Id: KanjiConversionMode.cpp,v 1.8.2.5 2007/02/03 08:52:48 t-suwa Exp $
+ $Id: KanjiConversionMode.cpp,v 1.8.2.6 2007/08/16 10:58:18 t-suwa Exp $
MacOS X implementation of the SKK input method.
@@ -41,33 +41,34 @@
#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)
:ChildInputMode(src),
- word_register_mode(NULL),
+ word_register_mode(0),
+ old_word_register_mode(0),
status(STATUS_NULL),
show_cands_window_after_Nth_cand(5),
completion_mode(false),
- henkanModeStatus(false) {
-
+ henkanModeStatus(false),
+ priorInputMode_(Hirakana) {
+ // empty
}
KanjiConversionMode::~KanjiConversionMode() {
- if(word_register_mode) {
- delete word_register_mode;
- }
+ delete word_register_mode;
+ delete old_word_register_mode;
}
bool KanjiConversionMode::handleInput(SKKChar skkchar) {
@@ -80,12 +81,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 +99,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 +111,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 +132,8 @@
cand = ZenKataInputMode::convert(root);
}
- // Âl«Éo^·é
- sendWordToServerToRegister(root, cand);
+ // ãã°ã«å¤æã®çµæãç»é²ãã
+ registerToggleEntry(root);
parent->fix(cand);
parent->setEnabledKanjiMode(false);
@@ -141,9 +142,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 +158,7 @@
if(SKKConfig::PrevKouhoKey() == skkchar) {
if(status == STATUS_BLACK) {
- // êÂOÌóâÖBÅÌóâ¾Á½ç¤[hÖßéB
+ // ä¸ã¤åã®åè£ã¸ãæåã®åè£ã ã£ããâ½ã¢ã¼ãã¸æ»ãã
if(current_candidate_index > 0) {
current_candidate_index--;
} else {
@@ -169,17 +170,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 +200,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 +237,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 +250,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 +266,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 +289,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 +323,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 +341,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 +355,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 +365,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);
}
@@ -474,15 +478,25 @@
void KanjiConversionMode::startRegisteringWord() {
CppCFString register_title;
- if (okuri.length() > 0) {
+
+ if(okuri.length() > 0) {
register_title.append(root).append('*').append(okuri);
- }
- else {
+ } else {
register_title = root;
}
- register_title = HiraganaInputMode::convert(register_title); // м¼Í½¼¼ÉÏ·
-
- word_register_mode = new WordRegisterMode(*this,register_title);
+
+ // ç¾å¨ã®å
¥åã¢ã¼ããä¿åãã¦ãã
+ if(parent->isHiraganaInputMode()) {
+ priorInputMode_ = Hirakana;
+ }
+ if(parent->isZenKataInputMode()) {
+ priorInputMode_ = Katakana;
+ }
+ if(parent->isHanKataInputMode()) {
+ priorInputMode_ = Jisx0201Kana;
+ }
+
+ word_register_mode = new WordRegisterMode(*this, HiraganaInputMode::convert(register_title));
word_register_mode->redisplay();
word_register_mode->updatePencilMenuIcon();
}
@@ -490,7 +504,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 +512,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 +526,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 +559,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 +582,7 @@
}
}
else if (status == STATUS_PROMPT) {
- // prompt_inputªóÅȯêÎÅã̶ðÁ·B
+ // prompt_inputã空ã§ãªããã°æå¾ã®æåãæ¶ãã
if (prompt_input.length() > 0) {
prompt_input.eraseLast(1);
}
@@ -581,23 +595,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 +634,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 +647,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 +670,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 +713,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 +722,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];
@@ -734,67 +748,89 @@
if (word_register_mode) {
word_register_mode->terminate();
- delete word_register_mode;
- word_register_mode = NULL;
+ resetRegistrationMode();
}
- // 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();
}
+// ç´åã®åèªç»é²ã¢ã¼ããåé¤ããç¾å¨ã®åèªç»é²ã¢ã¼ããéé¿ãã
+void KanjiConversionMode::resetRegistrationMode() {
+ delete old_word_register_mode;
+ old_word_register_mode = word_register_mode;
+ word_register_mode = 0;
+}
+
+// åèªç»é²åã®å
¥åã¢ã¼ãã復å
ãã
+void KanjiConversionMode::restoreInputMode() {
+ switch(priorInputMode_) {
+ case Hirakana:
+ parent->goHiraganaInputMode();
+ break;
+ case Katakana:
+ parent->goZenKataInputMode();
+ break;
+ case Jisx0201Kana:
+ parent->goHanKataInputMode();
+ break;
+ }
+
+ parent->updatePencilMenuIcon();
+}
+
void KanjiConversionMode::wordRegistrationFinished() {
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
- cerr << "(A)OKURI-HEAD: " << okuri[0] << " - " << SKKConfig::ConvertKanaToOkuri(okuri[0]) << endl;
-#endif
- sendWordToServerToRegister(root + SKKConfig::ConvertKanaToOkuri(okuri[0]), okuri, content);
+ sendWordToServerToRegister(
+ HiraganaInputMode::convert(root) + SKKConfig::ConvertKanaToOkuri(okuri[0]),
+ HiraganaInputMode::convert(okuri), content);
} else {
- sendWordToServerToRegister(root + okuri_head, okuri, content);
+ sendWordToServerToRegister(
+ HiraganaInputMode::convert(root) + okuri_head,
+ HiraganaInputMode::convert(okuri), content);
}
} else {
- sendWordToServerToRegister(root, content);
+ sendWordToServerToRegister(HiraganaInputMode::convert(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;
}
}
- delete word_register_mode;
- word_register_mode = NULL;
- parent->updatePencilMenuIcon();
+ resetRegistrationMode();
+ restoreInputMode();
}
}
void KanjiConversionMode::wordRegistrationCanceled() {
- delete word_register_mode;
- word_register_mode = NULL;
- parent->updatePencilMenuIcon();
-
+ resetRegistrationMode();
+ restoreInputMode();
+
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 +840,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 +888,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 +905,8 @@
result = CppCFString().append(kIgnoreThis);
}
- // ±êªÄÎê½Æ¢¤±ÆÍfix³ê鯢¤±ÆÈÌÅ¿[hI¹B
- // ú»·éB
+ // ãããå¼ã°ããã¨ãããã¨ã¯fixãããã¨ãããã¨ãªã®ã§æ¼¢åã¢ã¼ãçµäºã
+ // åæåããã
parent->setEnabledKanjiMode(false);
initialize();
@@ -891,22 +927,19 @@
}
void KanjiConversionMode::sendCurrentCandidateToServerToRegister() {
- // IÉMB
- // м¼Í½¼¼ÉÏ··éB
+ // é¯ã«éä¿¡ã
+ // çä»®åã¯å¹³ä»®åã«å¤æããã
if(okuri.length() > 0) {
if(SKKConfig::UseKanaToOkuri()) {
-#ifdef DEBUG
- cerr << "(B)OKURI-HEAD: " << okuri[0] << " - " << SKKConfig::ConvertKanaToOkuri(okuri[0]) << endl;
-#endif
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 +947,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 +996,7 @@
}
}
-// ño
+// éã¡ã³ã
void askServerTheCandidates(const CppCFData& query, std::vector<CppCFString>& candidates) {
CppCFString reply(ServerConnectionFactory::theInstance().newConnection().
send(kSKKMessageSearch, query, kAquaSKKServerRunLoopMode).getData());
@@ -978,8 +1011,8 @@
void KanjiConversionMode::makeServerRemoveWord() {
CppCFString query;
if(okuri.length() > 0) {
- // ¨è è@¨@+¨r è
- // ÇÝÉ¢ÄÍSp¼¼Æ¼p¼¼ð½¼¼ÉÏ·
+ // ããã éããâã+ããr ã é
+ // èªã¿ã«ã¤ãã¦ã¯å
¨è§ä»®åã¨åè§ä»®åã平仮åã«å¤æ
query.append('+');
if (SKKConfig::UseKanaToOkuri()) {
#ifdef DEBUG
@@ -990,35 +1023,53 @@
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());
current_completion_index = 0;
::askServerTheCompletions(cfdata_query, completions);
+
+ // 夿ç¨ãã¡ã³ã¯ã¿
+ struct convert {
+ static void ToZenKana(CppCFString& str) {
+ str = ZenKataInputMode::convert(str);
+ }
+ static void ToHanKana(CppCFString& str) {
+ str = HanKataInputMode::convert(str);
+ }
+ };
+
+ // ã«ã¿ã«ããåè§ã«ãã®å ´åã¯è¦åºãèªã®æå種ã夿ãã
+ if(parent->isZenKataInputMode()) {
+ std::for_each(completions.begin(), completions.end(), &convert::ToZenKana);
+ }
+ if(parent->isHanKataInputMode()) {
+ std::for_each(completions.begin(), completions.end(), &convert::ToHanKana);
+ }
}
void askServerTheCompletions(const CppCFData& query, std::vector<CppCFString>& completions) {
@@ -1028,7 +1079,7 @@
completions = reply.split(SKK_MSG_DELIMITER);
}
-// ño
+// éã¡ã³ã
void sendWordToServerToRegister(const CppCFString& index,const CppCFString& okuri,const CppCFString& kanji) {
CppCFData query;
@@ -1060,6 +1111,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 +1143,7 @@
current_candidate_index, candidates.size(), mode);
}
-// ño
+// éã¡ã³ã
void openCandidatesWindow(const CppCFString& str_candidates,
unsigned& window_id,
unsigned& cands_per_frame,
@@ -1092,7 +1152,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 +1163,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 +1172,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 +1193,7 @@
}
}
-// ño
+// éã¡ã³ã
CppCFData newCFDataRefWithWindowID(unsigned window_id) {
CppCFData result;
result.append(static_cast<UInt16>(CFSwapInt16HostToBig(window_id)));
@@ -1142,45 +1202,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::suspendCandidatesWindow() {
- ServerConnectionFactory::theInstance().newConnection().
- send(kSKKSuspendCandidatesWindow, newCFDataRefWithWindowID(candidates_window_id));
-}
-
-void KanjiConversionMode::resumeCandidatesWindow() {
- ServerConnectionFactory::theInstance().newConnection().
- send(kSKKResumeCandidatesWindow, newCFDataRefWithWindowID(candidates_window_id));
-}
-
void KanjiConversionMode::closeCandidatesWindow() {
- // EChEID(UInt16)ðÜÞCFDatað쬵AIÖéB
+ // ã¦ã¤ã³ãã¦ID(UInt16)ãå«ãCFDataã使ããé¯ã¸éãã
ServerConnectionFactory::theInstance().newConnection().
send(kSKKCloseCandidatesWindow, newCFDataRefWithWindowID(candidates_window_id));
}
@@ -1192,7 +1242,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;
@@ -1200,7 +1250,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.6.2.4 AquaSKK/KanjiConversionMode.h:1.6.2.5
--- AquaSKK/KanjiConversionMode.h:1.6.2.4 Sat Feb 3 17:52:48 2007
+++ AquaSKK/KanjiConversionMode.h Thu Aug 16 19:58:18 2007
@@ -1,10 +1,10 @@
/*
- $Id: KanjiConversionMode.h,v 1.6.2.4 2007/02/03 08:52:48 t-suwa Exp $
+ $Id: KanjiConversionMode.h,v 1.6.2.5 2007/08/16 10:58:18 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
@@ -37,43 +37,47 @@
class KanjiConversionMode: public ChildInputMode, public RegistrationStarter {
bool handleInputChar(SKKChar skkchar);
NumericConverter numconv_;
+ int priorInputMode_;
+
+ enum { Hirakana, Katakana, Jisx0201Kana };
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ã§ãªãæã¯åèªç»é²ã¢ã¼ããèµ·åä¸ã
+ WordRegisterMode* old_word_register_mode; // ç´åã¾ã§æå¹ã ã£ãåèªç»é²ã¢ã¼ã
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);
@@ -83,10 +87,10 @@
virtual void openCandidatesWindow(OpenDirection mode = OpenNormal);
virtual void goToPrevCandidatesFrame();
virtual void goToNextCandidatesFrame();
- virtual void suspendCandidatesWindow();
- virtual void resumeCandidatesWindow();
virtual void closeCandidatesWindow();
virtual void initialize();
+ virtual void resetRegistrationMode();
+ virtual void restoreInputMode();
public:
KanjiConversionMode(class ParentInputMode& parent);
@@ -103,14 +107,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.2.1 AquaSKK/ServerMessageReceiver.h:1.5.2.2
--- AquaSKK/ServerMessageReceiver.h:1.5.2.1 Sat Feb 3 16:53:29 2007
+++ AquaSKK/ServerMessageReceiver.h Thu Aug 16 19:58:18 2007
@@ -1,10 +1,10 @@
/*
- $Id: ServerMessageReceiver.h,v 1.5.2.1 2007/02/03 07:53:29 t-suwa Exp $
+ $Id: ServerMessageReceiver.h,v 1.5.2.2 2007/08/16 10:58:18 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 {
@@ -42,10 +43,9 @@
CppCFData createCandidatesWindow(const CppCFData& attachment);
CppCFData candidatesWindowNext(const CppCFData& attachment);
CppCFData candidatesWindowPrev(const CppCFData& attachment);
- void suspendCandidatesWindow(const CppCFData& attachment);
- void resumeCandidatesWindow(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();
@@ -55,3 +55,5 @@
public:
static void start(const CFStringRef loopMode);
};
+
+#endif
Index: AquaSKK/ServerMessageReceiver.mm
diff -u AquaSKK/ServerMessageReceiver.mm:1.7.2.4 AquaSKK/ServerMessageReceiver.mm:1.7.2.5
--- AquaSKK/ServerMessageReceiver.mm:1.7.2.4 Sat Feb 3 17:52:48 2007
+++ AquaSKK/ServerMessageReceiver.mm Thu Aug 16 19:58:18 2007
@@ -1,10 +1,10 @@
/* -*- objc -*-
- $Id: ServerMessageReceiver.mm,v 1.7.2.4 2007/02/03 08:52:48 t-suwa Exp $
+ $Id: ServerMessageReceiver.mm,v 1.7.2.5 2007/08/16 10:58:18 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));
@@ -208,14 +211,6 @@
return reply;
}
-void ServerMessageReceiver::suspendCandidatesWindow(const CppCFData& attachment) {
- CandidatesManager::sharedManager().suspendWindow(CFSwapInt16BigToHost(attachment.getUInt16(0)));
-}
-
-void ServerMessageReceiver::resumeCandidatesWindow(const CppCFData& attachment) {
- CandidatesManager::sharedManager().resumeWindow(CFSwapInt16BigToHost(attachment.getUInt16(0)));
-}
-
void ServerMessageReceiver::closeCandidatesWindow(const CppCFData& attachment) {
CandidatesManager::sharedManager().closeWindow(CFSwapInt16BigToHost(attachment.getUInt16(0)));
}
@@ -225,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);
@@ -245,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());
@@ -255,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 {