diff options
author | Choe Hwanjin <choe.hwanjin@gmail.com> | 2007-05-28 22:25:15 +0900 |
---|---|---|
committer | Choe Hwanjin <choe.hwanjin@gmail.com> | 2007-05-28 22:25:15 +0900 |
commit | 43ec6f1e0e6b3c9a2b802bee7f4026abb1a5547f (patch) | |
tree | 0be01a2d2741e9d50a145f3359c35a05511f254a | |
parent | f695df3f61a1cde2854119e22cb5ac3f6b911753 (diff) | |
download | libhangul-43ec6f1e0e6b3c9a2b802bee7f4026abb1a5547f.tar.gz |
callback function 등록하는 api 수정
* hangul_ic_connect_callback() 사용
* callback function type 제거
git-svn-id: http://kldp.net/svn/hangul/libhangul/trunk@120 8f00fcd2-89fc-0310-932e-b01be5b65e01
-rw-r--r-- | hangul/hangul.h | 18 | ||||
-rw-r--r-- | hangul/hangulinputcontext.c | 24 |
2 files changed, 26 insertions, 16 deletions
diff --git a/hangul/hangul.h b/hangul/hangul.h index 97c0f34..fa4a9a5 100644 --- a/hangul/hangul.h +++ b/hangul/hangul.h @@ -67,15 +67,6 @@ typedef struct _HangulCombination HangulCombination; typedef struct _HangulBuffer HangulBuffer; typedef struct _HangulInputContext HangulInputContext; -typedef bool (*HangulOnTransition) (HangulInputContext*, - ucschar, - const ucschar*, - void*); -typedef void (*HangulOnTranslate) (HangulInputContext*, - int, - ucschar*, - void*); - enum { HANGUL_OUTPUT_SYLLABLE, HANGUL_OUTPUT_JAMO @@ -120,13 +111,8 @@ void hangul_ic_select_keyboard(HangulInputContext *hic, const char* id); void hangul_ic_set_combination(HangulInputContext *hic, const HangulCombination *combination); - -void hangul_ic_connect_translate (HangulInputContext* hic, - HangulOnTranslate callback, - void* user_data); -void hangul_ic_connect_transition(HangulInputContext* hic, - HangulOnTransition callback, - void* user_data); +void hangul_ic_connect_callback(HangulInputContext* hic, const char* event, + void* callback, void* user_data); const ucschar* hangul_ic_get_preedit_string(HangulInputContext *hic); const ucschar* hangul_ic_get_commit_string(HangulInputContext *hic); diff --git a/hangul/hangulinputcontext.c b/hangul/hangulinputcontext.c index 07fca98..b10b904 100644 --- a/hangul/hangulinputcontext.c +++ b/hangul/hangulinputcontext.c @@ -30,6 +30,15 @@ #define N_ELEMENTS(array) (sizeof(array) / sizeof(array[0])) #define HANGUL_KEYBOARD_TABLE_SIZE 0x80 +typedef void (*HangulOnTranslate) (HangulInputContext*, + int, + ucschar*, + void*); +typedef bool (*HangulOnTransition) (HangulInputContext*, + ucschar, + const ucschar*, + void*); + typedef struct _HangulCombinationItem HangulCombinationItem; struct _HangulKeyboard { @@ -1045,6 +1054,21 @@ hangul_ic_connect_transition(HangulInputContext* hic, } } +void hangul_ic_connect_callback(HangulInputContext* hic, const char* event, + void* callback, void* user_data) +{ + if (hic == NULL || event == NULL) + return; + + if (strcasecmp(event, "translate") == 0) { + hic->on_translate = (HangulOnTranslate)callback; + hic->on_translate_data = user_data; + } else if (strcasecmp(event, "transition") == 0) { + hic->on_transition = (HangulOnTransition)callback; + hic->on_transition_data = user_data; + } +} + void hangul_ic_set_filter(HangulInputContext *hic, HangulICFilter func, void *user_data) { |