diff options
author | Peng Wu <alexepico@gmail.com> | 2012-08-08 16:16:59 +0800 |
---|---|---|
committer | Peng Wu <alexepico@gmail.com> | 2012-08-08 16:16:59 +0800 |
commit | 4a830d6660e877fd879e9b4ae55c4fda9a2087aa (patch) | |
tree | 3b30b719bc48870fbe0cab7cbc99b2901f09df6f | |
parent | 9735999a0e80463c4489aad21770731ebd54a368 (diff) | |
download | ibus-libpinyin-4a830d6660e877fd879e9b4ae55c4fda9a2087aa.tar.gz ibus-libpinyin-4a830d6660e877fd879e9b4ae55c4fda9a2087aa.tar.xz ibus-libpinyin-4a830d6660e877fd879e9b4ae55c4fda9a2087aa.zip |
add init context
-rw-r--r-- | src/PYLibPinyin.cc | 64 | ||||
-rw-r--r-- | src/PYLibPinyin.h | 3 |
2 files changed, 49 insertions, 18 deletions
diff --git a/src/PYLibPinyin.cc b/src/PYLibPinyin.cc index 44dcaf2..27d1ad5 100644 --- a/src/PYLibPinyin.cc +++ b/src/PYLibPinyin.cc @@ -53,19 +53,33 @@ LibPinyinBackEnd::~LibPinyinBackEnd () { m_chewing_context = NULL; } +pinyin_context_t * +LibPinyinBackEnd::initPinyinContext () +{ + pinyin_context_t * context = NULL; + + gchar * userdir = g_build_filename (g_get_home_dir(), ".cache", + "ibus", "libpinyin", NULL); + int retval = g_mkdir_with_parents (userdir, 0700); + if (retval) { + g_free(userdir); userdir = NULL; + } + context = pinyin_init ("/usr/share/libpinyin/data", userdir); + +#if 0 + pinyin_load_phrase_library(m_pinyin_context, 2); +#endif + /* TODO: load phrase libraries here. */ + + g_free(userdir); + return context; +} + pinyin_instance_t * LibPinyinBackEnd::allocPinyinInstance () { if (NULL == m_pinyin_context) { - gchar * userdir = g_build_filename (g_get_home_dir(), ".cache", - "ibus", "libpinyin", NULL); - int retval = g_mkdir_with_parents (userdir, 0700); - if (retval) { - g_free(userdir); userdir = NULL; - } - m_pinyin_context = pinyin_init ("/usr/share/libpinyin/data", userdir); - pinyin_load_phrase_library(m_pinyin_context, 2); - g_free(userdir); + m_pinyin_context = initPinyinContext (); } setPinyinOptions (&LibPinyinPinyinConfig::instance ()); @@ -78,19 +92,33 @@ LibPinyinBackEnd::freePinyinInstance (pinyin_instance_t *instance) pinyin_free_instance (instance); } +pinyin_context_t * +LibPinyinBackEnd::initChewingContext () +{ + pinyin_context_t * context = NULL; + + gchar * userdir = g_build_filename (g_get_home_dir(), ".cache", + "ibus", "libbopomofo", NULL); + int retval = g_mkdir_with_parents (userdir, 0700); + if (retval) { + g_free(userdir); userdir = NULL; + } + context = pinyin_init ("/usr/share/libpinyin/data", userdir); + +#if 0 + pinyin_load_phrase_library(m_chewing_context, 2); +#endif + /* TODO: load phrase libraries here. */ + + g_free(userdir); + return context; +} + pinyin_instance_t * LibPinyinBackEnd::allocChewingInstance () { if (NULL == m_chewing_context) { - gchar * userdir = g_build_filename (g_get_home_dir(), ".cache", - "ibus", "libbopomofo", NULL); - int retval = g_mkdir_with_parents (userdir, 0700); - if (retval) { - g_free(userdir); userdir = NULL; - } - m_chewing_context = pinyin_init ("/usr/share/libpinyin/data", userdir); - pinyin_load_phrase_library(m_chewing_context, 2); - g_free(userdir); + m_chewing_context = initChewingContext (); } setChewingOptions (&LibPinyinBopomofoConfig::instance ()); diff --git a/src/PYLibPinyin.h b/src/PYLibPinyin.h index 9807ca4..1dba971 100644 --- a/src/PYLibPinyin.h +++ b/src/PYLibPinyin.h @@ -41,6 +41,9 @@ public: gboolean setPinyinOptions (Config *config); gboolean setChewingOptions (Config *config); + pinyin_context_t * initPinyinContext (); + pinyin_context_t * initChewingContext (); + pinyin_instance_t *allocPinyinInstance (); void freePinyinInstance (pinyin_instance_t *instance); pinyin_instance_t *allocChewingInstance (); |