Example #1
0
 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
Example #2
0
    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)