def _skk_henkan(self, context, c): wordbuf = self._wordbuf charbuf = self._charbuf word = wordbuf.get() listbox = self._listbox if word.startswith(u'$'): wordbuf.append(u' ') return True if self._clauses: listbox.movenext() return True if not wordbuf.isempty(): s = self._draincharacters() wordbuf.append(s) if wordbuf.length() > 0: self._showpopup() return True if not charbuf.isempty(): s = self._draincharacters() wordbuf.startedit() wordbuf.append(s) if wordbuf.length() > 0: self._settle(context) return True return False
def _settle(self, context): ''' 確定 ''' clauses = self._clauses wordbuf = self._wordbuf if clauses: key = clauses.getkey() remark = clauses.getcurrentremark() if key.startswith(u'@') and remark.startswith(u'builtin:'): self._dispatch_builtin_command(remark) word = u'' else: for clause in clauses: key = clause.getkey() value = clause.getcurrentvalue() dictionary.feedback(key, value) okuri = self._okuri if len(clauses) > 1: key = clauses.getkey() value = clauses.getvalue() dictionary.feedback(key, value) word = clauses.getvalue() + okuri self._clauses = None self._okuri = u'' else: s = self._draincharacters() word = wordbuf.get() if word.startswith(u'@'): self._convert_word() return word += s if word.startswith(u'@'): word = u'' if word.startswith(u'$'): command = word[1:] self.open_with_command(command, context) word = u'' return title.setmessage(u'\(^o^)/') self._refleshtitle() self._listbox.close() self._inputmode.endabbrev() wordbuf.reset() context.putu(word)