diff -r 6ceef9a83b1a -r 6defe5d1bd39 textinput/ptihangulcore/inc/hangul.h --- a/textinput/ptihangulcore/inc/hangul.h Mon Mar 15 12:42:02 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,170 +0,0 @@ -/* libhangul - * Copyright (c) 2005,2006 Choe Hwanjin - * All rights reserved. - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef libhangul_hangul_h -#define libhangul_hangul_h - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* hangulctype.c */ -enum { - HANGUL_CHOSEONG_FILLER = 0x115f, /* hangul choseong filler */ - HANGUL_JUNGSEONG_FILLER = 0x1160 /* hangul jungseong filler */ -}; - -#ifdef __SYMBIAN32__ -typedef uint16_t ucschar; -#else -typedef uint32_t ucschar; -#endif - -bool hangul_is_choseong(ucschar c); -bool hangul_is_jungseong(ucschar c); -bool hangul_is_jongseong(ucschar c); -bool hangul_is_choseong_conjoinable(ucschar c); -bool hangul_is_jungseong_conjoinable(ucschar c); -bool hangul_is_jongseong_conjoinable(ucschar c); -bool hangul_is_syllable(ucschar c); -bool hangul_is_jaso(ucschar c); -bool hangul_is_jamo(ucschar c); - -ucschar hangul_jaso_to_jamo(ucschar ch); -ucschar hangul_choseong_to_jamo(ucschar ch); -ucschar hangul_jungseong_to_jamo(ucschar ch); -ucschar hangul_jongseong_to_jamo(ucschar ch); - -ucschar hangul_choseong_to_jongseong(ucschar ch); -ucschar hangul_jongseong_to_choseong(ucschar ch); -void hangul_jongseong_dicompose(ucschar ch, ucschar* jong, ucschar* cho); - -const ucschar* hangul_syllable_iterator_prev(const ucschar* str, - const ucschar* begin); -const ucschar* hangul_syllable_iterator_next(const ucschar* str, - const ucschar* end); - -int hangul_syllable_len(const ucschar* str, int max_len); - -ucschar hangul_jaso_to_syllable(ucschar choseong, - ucschar jungseong, - ucschar jongseong); -void hangul_syllable_to_jaso(ucschar syllable, - ucschar* choseong, - ucschar* jungseong, - ucschar* jongseong); -int hangul_jamos_to_syllables(ucschar* dest, int destlen, - const ucschar* src, int srclen); - -/* hangulinputcontext.c */ -typedef struct _HangulKeyboard HangulKeyboard; -typedef struct _HangulCombination HangulCombination; -typedef struct _HangulBuffer HangulBuffer; -typedef struct _HangulInputContext HangulInputContext; - -enum { - HANGUL_OUTPUT_SYLLABLE, - HANGUL_OUTPUT_JAMO -}; - -enum { - HANGUL_KEYBOARD_TYPE_JAMO, - HANGUL_KEYBOARD_TYPE_JASO -}; - -/* keyboard */ -HangulKeyboard* hangul_keyboard_new(void); -void hangul_keyboard_delete(HangulKeyboard *keyboard); -void hangul_keyboard_set_value(HangulKeyboard *keyboard, - int key, ucschar value); -void hangul_keyboard_set_type(HangulKeyboard *keyboard, int type); - -/* combination */ -HangulCombination* hangul_combination_new(void); -void hangul_combination_delete(HangulCombination *combination); -bool hangul_combination_set_data(HangulCombination* combination, - ucschar* first, ucschar* second, ucschar* result, unsigned int n); - -/* input context */ -HangulInputContext* hangul_ic_new(const char* keyboard); -void hangul_ic_delete(HangulInputContext *hic); -bool hangul_ic_process(HangulInputContext *hic, int ascii); -void hangul_ic_reset(HangulInputContext *hic); -bool hangul_ic_backspace(HangulInputContext *hic); - -bool hangul_ic_is_empty(HangulInputContext *hic); -bool hangul_ic_has_choseong(HangulInputContext *hic); -bool hangul_ic_has_jungseong(HangulInputContext *hic); -bool hangul_ic_has_jongseong(HangulInputContext *hic); - -int hangul_ic_dvorak_to_qwerty(int qwerty); - -void hangul_ic_set_output_mode(HangulInputContext *hic, int mode); -void hangul_ic_set_keyboard(HangulInputContext *hic, - const HangulKeyboard *keyboard); -void hangul_ic_select_keyboard(HangulInputContext *hic, - const char* id); -void hangul_ic_set_combination(HangulInputContext *hic, - const HangulCombination *combination); -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); -const ucschar* hangul_ic_flush(HangulInputContext *hic); - -/* hanja.c */ -typedef struct _Hanja Hanja; -typedef struct _HanjaList HanjaList; -typedef struct _HanjaTable HanjaTable; - -HanjaTable* hanja_table_load(const char *filename); -HanjaList* hanja_table_match_exact(const HanjaTable* table, const char *key); -HanjaList* hanja_table_match_prefix(const HanjaTable* table, const char *key); -HanjaList* hanja_table_match_suffix(const HanjaTable* table, const char *key); -void hanja_table_delete(HanjaTable *table); - -int hanja_table_txt_to_bin(const char* txtfilename, - const char* binfilename); - -int hanja_list_get_size(const HanjaList *list); -const char* hanja_list_get_key(const HanjaList *list); -const Hanja* hanja_list_get_nth(const HanjaList *list, unsigned int n); -const char* hanja_list_get_nth_key(const HanjaList *list, unsigned int n); -const char* hanja_list_get_nth_value(const HanjaList *list, unsigned int n); -const char* hanja_list_get_nth_comment(const HanjaList *list, unsigned int n); -void hanja_list_delete(HanjaList *list); - -const char* hanja_get_key(const Hanja* hanja); -const char* hanja_get_value(const Hanja* hanja); -const char* hanja_get_comment(const Hanja* hanja); - - -/* deprecated */ -typedef bool (*HangulICFilter) (ucschar*, ucschar, ucschar, ucschar, void*); -void hangul_ic_set_filter(HangulInputContext *hic, - HangulICFilter func, void *user_data); - -#ifdef __cplusplus -} -#endif - -#endif /* libhangul_hangul_h */