diff options
author | Peng Wu <alexepico@gmail.com> | 2013-10-10 15:48:29 +0800 |
---|---|---|
committer | Peng Wu <alexepico@gmail.com> | 2013-10-10 15:48:33 +0800 |
commit | 69f50424ba5be49c4b31543df7bd7970361d4753 (patch) | |
tree | 2e525ed4aca9a882b3039b4d343438bb073a9b5f /src | |
parent | cf8ab7d8e76ed70c182c7588cfe1ebbce8e5174b (diff) | |
download | ibus-libpinyin-69f50424ba5be49c4b31543df7bd7970361d4753.tar.gz ibus-libpinyin-69f50424ba5be49c4b31543df7bd7970361d4753.tar.bz2 ibus-libpinyin-69f50424ba5be49c4b31543df7bd7970361d4753.zip |
support setContentType method
Diffstat (limited to 'src')
-rw-r--r-- | src/PYEngine.cc | 21 | ||||
-rw-r--r-- | src/PYEngine.h | 3 | ||||
-rw-r--r-- | src/PYPBopomofoEngine.cc | 22 | ||||
-rw-r--r-- | src/PYPBopomofoEngine.h | 7 | ||||
-rw-r--r-- | src/PYPPinyinEngine.cc | 22 | ||||
-rw-r--r-- | src/PYPPinyinEngine.h | 7 |
6 files changed, 82 insertions, 0 deletions
diff --git a/src/PYEngine.cc b/src/PYEngine.cc index 870c3ab..487ad6e 100644 --- a/src/PYEngine.cc +++ b/src/PYEngine.cc @@ -67,6 +67,12 @@ static gboolean ibus_pinyin_engine_process_key_event guint modifiers); static void ibus_pinyin_engine_focus_in (IBusEngine *engine); static void ibus_pinyin_engine_focus_out (IBusEngine *engine); +#if IBUS_CHECK_VERSION (1, 5, 4) +static void ibus_pinyin_engine_set_content_type + (IBusEngine *engine, + guint purpose, + guint hints); +#endif static void ibus_pinyin_engine_reset (IBusEngine *engine); static void ibus_pinyin_engine_enable (IBusEngine *engine); static void ibus_pinyin_engine_disable (IBusEngine *engine); @@ -123,6 +129,10 @@ ibus_pinyin_engine_class_init (IBusPinyinEngineClass *klass) engine_class->focus_in = ibus_pinyin_engine_focus_in; engine_class->focus_out = ibus_pinyin_engine_focus_out; +#if IBUS_CHECK_VERSION (1, 5, 4) + engine_class->set_content_type = ibus_pinyin_engine_set_content_type; +#endif + engine_class->page_up = ibus_pinyin_engine_page_up; engine_class->page_down = ibus_pinyin_engine_page_down; @@ -189,6 +199,17 @@ ibus_pinyin_engine_process_key_event (IBusEngine *engine, return pinyin->engine->processKeyEvent (keyval, keycode, modifiers); } +#if IBUS_CHECK_VERSION (1, 5, 4) +static void +ibus_pinyin_engine_set_content_type (IBusEngine *engine, + guint purpose, + guint hints) +{ + IBusPinyinEngine *pinyin = (IBusPinyinEngine *) engine; + return pinyin->engine->setContentType (purpose, hints); +} +#endif + static void ibus_pinyin_engine_property_activate (IBusEngine *engine, const gchar *prop_name, diff --git a/src/PYEngine.h b/src/PYEngine.h index c5b0d9d..0866146 100644 --- a/src/PYEngine.h +++ b/src/PYEngine.h @@ -44,6 +44,9 @@ public: virtual gboolean processKeyEvent (guint keyval, guint keycode, guint modifiers) = 0; virtual void focusIn (void) = 0; virtual void focusOut (void) = 0; +#if IBUS_CHECK_VERSION (1, 5, 4) + virtual void setContentType (guint purpose, guint hints) = 0; +#endif virtual void reset (void) = 0; virtual void enable (void) = 0; virtual void disable (void) = 0; diff --git a/src/PYPBopomofoEngine.cc b/src/PYPBopomofoEngine.cc index 9be5ad2..9d2666f 100644 --- a/src/PYPBopomofoEngine.cc +++ b/src/PYPBopomofoEngine.cc @@ -40,6 +40,10 @@ LibPinyinBopomofoEngine::LibPinyinBopomofoEngine (IBusEngine *engine) { gint i; +#if IBUS_CHECK_VERSION (1, 5, 4) + m_input_purpose = IBUS_INPUT_PURPOSE_FREE_FORM; +#endif + /* create editors */ m_editors[MODE_INIT].reset (new LibPinyinBopomofoEditor (m_props, LibPinyinBopomofoConfig::instance ())); m_editors[MODE_PUNCT].reset (new PunctEditor (m_props, LibPinyinBopomofoConfig::instance ())); @@ -64,6 +68,11 @@ LibPinyinBopomofoEngine::processKeyEvent (guint keyval, guint keycode, guint mod { gboolean retval = FALSE; +#if IBUS_CHECK_VERSION (1, 5, 4) + if (IBUS_INPUT_PURPOSE_PASSWORD == m_input_purpose) + return retval; +#endif + /* check Shift or Ctrl + Release hotkey, * and then ignore other Release key event */ if (modifiers & IBUS_RELEASE_MASK) { @@ -140,9 +149,22 @@ LibPinyinBopomofoEngine::focusIn (void) void LibPinyinBopomofoEngine::focusOut (void) { + +#if IBUS_CHECK_VERSION (1, 5, 4) + m_input_purpose = IBUS_INPUT_PURPOSE_FREE_FORM; +#endif + reset (); } +#if IBUS_CHECK_VERSION(1, 5, 4) +void +LibPinyinBopomofoEngine::setContentType (guint purpose, guint hints) +{ + m_input_purpose = (IBusInputPurpose) purpose; +} +#endif + void LibPinyinBopomofoEngine::reset (void) { diff --git a/src/PYPBopomofoEngine.h b/src/PYPBopomofoEngine.h index fc64842..85d1ff6 100644 --- a/src/PYPBopomofoEngine.h +++ b/src/PYPBopomofoEngine.h @@ -37,6 +37,9 @@ public: gboolean processKeyEvent (guint keyval, guint keycode, guint modifiers); void focusIn (void); void focusOut (void); +#if IBUS_CHECK_VERSION (1, 5, 4) + void setContentType (guint purpose, guint hints); +#endif void reset (void); void enable (void); void disable (void); @@ -60,6 +63,10 @@ private: private: PinyinProperties m_props; +#if IBUS_CHECK_VERSION (1, 5, 4) + IBusInputPurpose m_input_purpose; +#endif + guint m_prev_pressed_key; enum { diff --git a/src/PYPPinyinEngine.cc b/src/PYPPinyinEngine.cc index ce74be1..d28dc6f 100644 --- a/src/PYPPinyinEngine.cc +++ b/src/PYPPinyinEngine.cc @@ -50,6 +50,10 @@ LibPinyinPinyinEngine::LibPinyinPinyinEngine (IBusEngine *engine) { gint i; +#if IBUS_CHECK_VERSION (1, 5, 4) + m_input_purpose = IBUS_INPUT_PURPOSE_FREE_FORM; +#endif + m_double_pinyin = LibPinyinPinyinConfig::instance ().doublePinyin (); if (m_double_pinyin) @@ -100,6 +104,11 @@ LibPinyinPinyinEngine::processKeyEvent (guint keyval, guint keycode, guint modif { gboolean retval = FALSE; +#if IBUS_CHECK_VERSION (1, 5, 4) + if (IBUS_INPUT_PURPOSE_PASSWORD == m_input_purpose) + return retval; +#endif + /* check Shift or Ctrl + Release hotkey, * and then ignore other Release key event */ if (modifiers & IBUS_RELEASE_MASK) { @@ -222,9 +231,22 @@ LibPinyinPinyinEngine::focusIn (void) void LibPinyinPinyinEngine::focusOut (void) { + +#if IBUS_CHECK_VERSION (1, 5, 4) + m_input_purpose = IBUS_INPUT_PURPOSE_FREE_FORM; +#endif + reset (); } +#if IBUS_CHECK_VERSION(1, 5, 4) +void +LibPinyinPinyinEngine::setContentType (guint purpose, guint hints) +{ + m_input_purpose = (IBusInputPurpose) purpose; +} +#endif + void LibPinyinPinyinEngine::reset (void) { diff --git a/src/PYPPinyinEngine.h b/src/PYPPinyinEngine.h index a7e0e12..9954569 100644 --- a/src/PYPPinyinEngine.h +++ b/src/PYPPinyinEngine.h @@ -35,6 +35,9 @@ public: gboolean processKeyEvent (guint keyval, guint keycode, guint modifiers); void focusIn (void); void focusOut (void); +#if IBUS_CHECK_VERSION (1, 5, 4) + void setContentType (guint purpose, guint hints); +#endif void reset (void); void enable (void); void disable (void); @@ -56,6 +59,10 @@ private: private: PinyinProperties m_props; +#if IBUS_CHECK_VERSION (1, 5, 4) + IBusInputPurpose m_input_purpose; +#endif + guint m_prev_pressed_key; enum { |