diff options
author | Behdad Esfahbod <behdad@gnome.org> | 2006-11-29 01:14:04 +0000 |
---|---|---|
committer | Behdad Esfahbod <behdad@src.gnome.org> | 2006-11-29 01:14:04 +0000 |
commit | cbfd2b96b8b606e27f5e33f4a6fd78d627bc1c19 (patch) | |
tree | 8ead938598bc749a7401d9c6905f6bc893770b7d /modules/input/thai-charprop.c | |
parent | 6282e799d8b9e202ef37044c0953e0306162f459 (diff) | |
download | gtk+-cbfd2b96b8b606e27f5e33f4a6fd78d627bc1c19.tar.gz |
Remove the broken Thai input method and add a functional Thai and Lao
2006-11-28 Behdad Esfahbod <behdad@gnome.org>
Remove the broken Thai input method and add a functional Thai and Lao
input method by Theppitak Karoonboonyanan. (#81031)
* modules/input/imthai.c:
* modules/input/gtkimcontextthai.c:
* modules/input/gtkimcontextthai.h:
* modules/input/thai-charprop.c:
* modules/input/thai-charprop.h:
Added.
* modules/input/imthai-broken.c:
Removed.
* modules/input/Makefile.am:
Updated.
Diffstat (limited to 'modules/input/thai-charprop.c')
-rw-r--r-- | modules/input/thai-charprop.c | 138 |
1 files changed, 138 insertions, 0 deletions
diff --git a/modules/input/thai-charprop.c b/modules/input/thai-charprop.c new file mode 100644 index 0000000000..a9f7a05673 --- /dev/null +++ b/modules/input/thai-charprop.c @@ -0,0 +1,138 @@ +#include "thai-charprop.h" + +const gshort thai_char_type[256] = { + /* 0, 1, 2, 3, 4, 5, 6, 7, + 8, 9, A, B, C, D, E, F */ + + /* CL1 */ + /*00*/ _ND, _ND, _ND, _ND, _ND, _ND, _ND, _ND, + _ND, _ND, _ND, _ND, _ND, _ND, _ND, _ND, + /*10*/ _ND, _ND, _ND, _ND, _ND, _ND, _ND, _ND, + _ND, _ND, _ND, _ND, _ND, _ND, _ND, _ND, + + /* Lao zone: [U+0E80..U+0EDF] */ + /*20*/ _ND, _NC, _NC, _ND, _NC, _ND, _ND, _NC, + _NC, _ND, _NC, _ND, _ND, _NC, _ND, _ND, + /*30*/ _ND, _ND, _ND, _ND, _NC, _NC, _NC, _NC, + _ND, _NC, _NC, _UC, _NC, _UC, _NC, _UC, + /*40*/ _ND, _NC, _UC, _NC, _ND, _NC, _ND, _NC, + _ND, _ND, _NC, _NC, _ND, _NC, _NC, _ND, + /*50*/ _ND, _AV, _ND, _AM, _AV, _AV, _AV, _AV, + _BV, _BV, _ND, _AV, _BD, _NC, _ND, _ND, + /*60*/ _ND, _ND, _ND, _ND, _ND, _ND, _ND, _AD, + _TN, _TN, _TN, _TN, _AD, _AD, _ND, _ND, + /*70*/ _ND, _ND, _ND, _ND, _ND, _ND, _ND, _ND, + _ND, _ND, _ND, _ND, _NC, _NC, _ND, _ND, + + /* CL2 */ + /*80*/ _ND, _ND, _ND, _ND, _ND, _ND, _ND, _ND, + _ND, _ND, _ND, _ND, _ND, _ND, _ND, _ND, + /*90*/ _ND, _ND, _ND, _ND, _ND, _ND, _ND, _ND, + _ND, _ND, _ND, _ND, _ND, _ND, _ND, _ND, + + /* Thai zone: [U+0E00..U+0E5F] */ + /*A0*/ _ND, _NC, _NC, _NC, _NC, _NC, _NC, _NC, + _NC, _NC, _NC, _NC, _NC, _SC, _BC, _BC, + /*B0*/ _SC, _NC, _NC, _NC, _NC, _NC, _NC, _NC, + _NC, _NC, _NC, _UC, _NC, _UC, _NC, _UC, + /*C0*/ _NC, _NC, _NC, _NC, _ND, _NC, _ND, _NC, + _NC, _NC, _NC, _NC, _UC, _NC, _NC, _ND, + /*D0*/ _ND, _AV, _ND, _AM, _AV, _AV, _AV, _AV, + _BV, _BV, _BD, _ND, _ND, _ND, _ND, _ND, + /*E0*/ _ND, _ND, _ND, _ND, _ND, _ND, _ND, _AD, + _TN, _TN, _TN, _TN, _AD, _AD, _AD, _ND, + /*F0*/ _ND, _ND, _ND, _ND, _ND, _ND, _ND, _ND, + _ND, _ND, _ND, _ND, _ND, _ND, _ND, _ND, +}; + +const gshort thai_TAC_char_class[256] = { + /* 0, 1, 2, 3, 4, 5, 6, 7, + 8, 9, A, B, C, D, E, F */ + + /* CL1 */ + /*00*/ CTRL,CTRL,CTRL,CTRL,CTRL,CTRL,CTRL,CTRL, + CTRL,CTRL,CTRL,CTRL,CTRL,CTRL,CTRL,CTRL, + /*10*/ CTRL,CTRL,CTRL,CTRL,CTRL,CTRL,CTRL,CTRL, + CTRL,CTRL,CTRL,CTRL,CTRL,CTRL,CTRL,CTRL, + + /* Lao zone: [U+0E80..U+0EDF] */ + /*20*/ NON,CONS,CONS, NON,CONS, NON, NON,CONS, + CONS, NON,CONS, NON, NON,CONS, NON, NON, + /*30*/ NON, NON, NON, NON,CONS,CONS,CONS,CONS, + NON,CONS,CONS,CONS,CONS,CONS,CONS,CONS, + /*40*/ NON,CONS,CONS,CONS, NON,CONS, NON,CONS, + NON, NON,CONS,CONS, NON,CONS,CONS, NON, + /*50*/ FV1, AV2, FV1, AM, AV1, AV3, AV2, AV3, + BV1, BV2, NON, AV2,BCON, FV3, NON, NON, + /*60*/ LV, LV, LV, LV, LV, NON, NON, NON, + TONE,TONE,TONE,TONE, AD1, AD4, NON, NON, + /*70*/ NON, NON, NON, NON, NON, NON, NON, NON, + NON, NON, NON, NON,CONS,CONS, NON,CTRL, + + /* CL2 */ + /*80*/ CTRL,CTRL,CTRL,CTRL,CTRL,CTRL,CTRL,CTRL, + CTRL,CTRL,CTRL,CTRL,CTRL,CTRL,CTRL,CTRL, + /*90*/ CTRL,CTRL,CTRL,CTRL,CTRL,CTRL,CTRL,CTRL, + CTRL,CTRL,CTRL,CTRL,CTRL,CTRL,CTRL,CTRL, + + /* Thai zone: [U+0E00..U+0E5F] */ + /*A0*/ NON,CONS,CONS,CONS,CONS,CONS,CONS,CONS, + CONS,CONS,CONS,CONS,CONS,CONS,CONS,CONS, + /*B0*/ CONS,CONS,CONS,CONS,CONS,CONS,CONS,CONS, + CONS,CONS,CONS,CONS,CONS,CONS,CONS,CONS, + /*C0*/ CONS,CONS,CONS,CONS, FV3,CONS, FV3,CONS, + CONS,CONS,CONS,CONS,CONS,CONS,CONS, NON, + /*D0*/ FV1, AV2, FV1, AM, AV1, AV3, AV2, AV3, + BV1, BV2, BD, NON, NON, NON, NON, NON, + /*E0*/ LV, LV, LV, LV, LV, FV2, NON, AD2, + TONE,TONE,TONE,TONE, AD1, AD4, AD3, NON, + /*F0*/ NON, NON, NON, NON, NON, NON, NON, NON, + NON, NON, NON, NON, NON, NON, NON,CTRL, +}; + +const gchar thai_TAC_compose_input[20][20] = { + /* row: Cn-1, column: Cn */ + /*CTRL NON CONS LV FV1 FV2 FV3 AM BV1 BV2 + * BD TONE AD1 AD2 AD3 AD4 AV1 AV2 AV3 BCON*/ +/*CTRL*/{'X','A','A','A','A','A','A','R','R','R', + 'R','R','R','R','R','R','R','R','R','R'}, +/*NON */{'X','A','A','A','S','S','A','R','R','R', + 'R','R','R','R','R','R','R','R','R','R'}, +/*CONS*/{'X','A','A','A','A','S','A','C','C','C', + 'C','C','C','C','C','C','C','C','C','C'}, +/*LV */{'X','S','A','S','S','S','S','R','R','R', + 'R','R','R','R','R','R','R','R','R','R'}, +/*FV1 */{'X','A','A','A','A','S','A','R','R','R', + 'R','R','R','R','R','R','R','R','R','R'}, +/*FV2 */{'X','A','A','A','A','S','A','R','R','R', + 'R','R','R','R','R','R','R','R','R','R'}, +/*FV3 */{'X','A','A','A','S','A','S','R','R','R', + 'R','R','R','R','R','R','R','R','R','R'}, +/*AM */{'X','A','A','A','S','S','A','R','R','R', + 'R','R','R','R','R','R','R','R','R','R'}, +/*BV1 */{'X','A','A','A','S','S','A','R','R','R', + 'R','C','C','R','R','C','R','R','R','R'}, +/*BV2 */{'X','A','A','A','S','S','A','R','R','R', + 'R','C','R','R','R','R','R','R','R','R'}, +/*BD */{'X','A','A','A','S','S','A','R','R','R', + 'R','R','R','R','R','R','R','R','R','R'}, +/*TONE*/{'X','A','A','A','A','A','A','C','R','R', + 'R','R','R','R','R','R','R','R','R','R'}, +/*AD1 */{'X','A','A','A','S','S','A','R','R','R', + 'R','R','R','R','R','R','R','R','R','R'}, +/*AD2 */{'X','A','A','A','S','S','A','R','R','R', + 'R','R','R','R','R','R','R','R','R','R'}, +/*AD3 */{'X','A','A','A','S','S','A','R','R','R', + 'R','R','R','R','R','R','R','R','R','R'}, +/*AD4 */{'X','A','A','A','S','S','A','R','R','R', + 'R','C','R','R','R','R','R','R','R','R'}, +/*AV1 */{'X','A','A','A','S','S','A','R','R','R', + 'R','C','C','R','R','C','R','R','R','R'}, +/*AV2 */{'X','A','A','A','S','S','A','R','R','R', + 'R','C','R','R','R','R','R','R','R','R'}, +/*AV3 */{'X','A','A','A','S','S','A','R','R','R', + 'R','C','R','C','R','R','R','R','R','R'}, +/*BCON*/{'X','A','A','A','A','S','A','C','C','C', + 'R','C','R','R','R','C','C','C','C','R'}, +}; + |