diff options
author | Peng Huang <shawn.p.huang@gmail.com> | 2009-04-02 14:32:40 +0800 |
---|---|---|
committer | Peng Huang <shawn.p.huang@gmail.com> | 2009-04-02 14:32:40 +0800 |
commit | 905cd3c54ff9fe58306541c837595cb841df9d0f (patch) | |
tree | 574e887166af410136eb76287e503ff661cd895b | |
parent | 9e2cfeec319df46c6fb34043fd258108377b2c6d (diff) | |
download | ibus-anthy-905cd3c54ff9fe58306541c837595cb841df9d0f.tar.gz |
Support keysym Hiragana_Katanaka
-rw-r--r-- | engine/engine.py | 31 |
1 files changed, 27 insertions, 4 deletions
diff --git a/engine/engine.py b/engine/engine.py index 9dd61d4..98c46b5 100644 --- a/engine/engine.py +++ b/engine/engine.py @@ -283,9 +283,11 @@ class Engine(ibus.EngineBase): return self.__on_key_left() elif keyval == keysyms.Right: return self.__on_key_right() + elif keyval == keysyms.Hiragana_Katakana: # or keyval == keysyms.F11: + return self.__on_key_hiragana_katakana() elif keyval == keysyms.Muhenkan: # or keyval == keysyms.F11: return self.__on_key_muhenka() - elif keyval == keysyms.Henkan: # or keyval == keysyms.F12: + elif keyval == keysyms.Henkan: # or keyval == keysyms.F11: return self.__on_key_henkan() elif keyval >= keysyms.F6 and keyval <= keysyms.F9: return self.__on_key_conv(keyval - keysyms.F6) @@ -586,13 +588,34 @@ class Engine(ibus.EngineBase): self.__invalidate() return True + def __on_key_hiragana_katakana(self): + if self.__convert_mode == CONV_MODE_ANTHY: + self.__end_anthy_convert() + + if self.__input_mode >= INPUT_MODE_HIRAGANA and \ + self.__input_mode < INPUT_MODE_HALF_WIDTH_KATAKANA: + self.__input_mode += 1 + else: + self.__input_mode = INPUT_MODE_HIRAGANA + + modes = { INPUT_MODE_HIRAGANA: u"あ", + INPUT_MODE_KATAKANA: u"ア", + INPUT_MODE_HALF_WIDTH_KATAKANA: u"_ア" } + + prop = self.__prop_dict[u"InputMode"] + prop.label = modes[self.__input_mode] + self.update_property(prop) + + self.__invalidate() + return True + def __on_key_muhenka(self): if self.__preedit_ja_string.is_empty(): return False - + if self.__convert_mode == CONV_MODE_ANTHY: self.__end_anthy_convert() - + new_mode = CONV_MODE_HIRAGANA if self.__convert_mode < CONV_MODE_WIDE_LATIN_3 and \ self.__convert_mode >= CONV_MODE_HIRAGANA : @@ -601,7 +624,7 @@ class Engine(ibus.EngineBase): self.__convert_mode = CONV_MODE_HIRAGANA self.__invalidate() - + return True def __on_key_henkan(self): |