Lines Matching refs:ic
494 static void InitIscMode(Xic ic);
522 #define IC_SavePreviousChar(ic,ch) \
523 ((ic)->private.local.base.mb[(ic)->private.local.base.tree[(ic)->private.local.context].mb] = (char) (ch))
524 #define IC_ClearPreviousChar(ic) \
525 ((ic)->private.local.base.mb[(ic)->private.local.base.tree[(ic)->private.local.context].mb] = 0)
526 #define IC_GetPreviousChar(ic) \
527 (IC_RealGetPreviousChar(ic,1))
528 #define IC_GetContextChar(ic) \
529 (IC_RealGetPreviousChar(ic,2))
530 #define IC_DeletePreviousChar(ic) \
531 (IC_RealDeletePreviousChar(ic))
534 IC_RealGetPreviousChar(Xic ic, unsigned short pos)
536 XICCallback* cb = &ic->core.string_conversion_callback;
537 DefTreeBase *b = &ic->private.local.base;
552 (cb->callback)((XIC)ic, cb->client_data, (XPointer)&screc);
554 return (unsigned char) b->mb[b->tree[(ic)->private.local.context].mb];
568 im = (Xim) XIMOfIC((XIC)ic);
587 c = (unsigned char) b->mb[b->tree[(ic)->private.local.context].mb];
596 return (unsigned char) b->mb[b->tree[(ic)->private.local.context].mb];
601 IC_RealDeletePreviousChar(Xic ic)
603 XICCallback* cb = &ic->core.string_conversion_callback;
615 (cb->callback)((XIC)ic, cb->client_data, (XPointer)&screc);
640 #define IC_IscMode(ic) ((ic)->private.local.thai.input_mode)
1181 static void InitIscMode(Xic ic)
1188 if (IC_IscMode(ic)) return;
1192 im = (Xim) XIMOfIC((XIC)ic);
1198 IC_IscMode(ic) = WTT_ISC1;
1200 IC_IscMode(ic) = WTT_ISC2;
1202 IC_IscMode(ic) = THAICAT_ISC;
1204 IC_IscMode(ic) = NOISC;
1206 IC_IscMode(ic) = WTT_ISC1;
1215 ThaiFltAcceptInput(Xic ic, unsigned char new_char, KeySym symbol)
1217 DefTreeBase *b = &ic->private.local.base;
1218 b->wc[b->tree[ic->private.local.composed].wc+0] = tis2ucs(new_char);
1219 b->wc[b->tree[ic->private.local.composed].wc+1] = '\0';
1222 b->tree[ic->private.local.composed].keysym = symbol;
1224 b->tree[ic->private.local.composed].keysym = NoSymbol;
1230 ThaiFltReorderInput(Xic ic, unsigned char previous_char, unsigned char new_char)
1232 DefTreeBase *b = &ic->private.local.base;
1233 if (!IC_DeletePreviousChar(ic)) return False;
1234 b->wc[b->tree[ic->private.local.composed].wc+0] = tis2ucs(new_char);
1235 b->wc[b->tree[ic->private.local.composed].wc+1] = tis2ucs(previous_char);
1236 b->wc[b->tree[ic->private.local.composed].wc+2] = '\0';
1238 b->tree[ic->private.local.composed].keysym = NoSymbol;
1244 ThaiFltReplaceInput(Xic ic, unsigned char new_char, KeySym symbol)
1246 DefTreeBase *b = &ic->private.local.base;
1247 if (!IC_DeletePreviousChar(ic)) return False;
1248 b->wc[b->tree[ic->private.local.composed].wc+0] = tis2ucs(new_char);
1249 b->wc[b->tree[ic->private.local.composed].wc+1] = '\0';
1252 b->tree[ic->private.local.composed].keysym = symbol;
1254 b->tree[ic->private.local.composed].keysym = NoSymbol;
1288 Xic ic = (Xic)client_data;
1302 DefTreeBase *b = &ic->private.local.base;
1308 if (!IC_IscMode(ic)) InitIscMode(ic);
1310 XwcLookupString((XIC)ic, &ev->xkey, wbuf, sizeof(wbuf) / sizeof(wbuf[0]),
1327 IC_ClearPreviousChar(ic);
1349 thai_part = &ic->private.local.thai;
1373 isc_mode = IC_IscMode(ic);
1374 if (!(previous_char = IC_GetPreviousChar(ic))) previous_char = ' ';
1378 ThaiFltAcceptInput(ic, new_char, symbol);
1383 context_char = IC_GetContextChar(ic);
1387 isReject = !ThaiFltReorderInput(ic, previous_char, new_char);
1389 isReject = !ThaiFltReplaceInput(ic, new_char, symbol);
1392 isReject = !ThaiFltReorderInput(ic, previous_char, new_char);
1395 isReject = !ThaiFltReplaceInput(ic, new_char, symbol);
1405 _Xlcwcstombs(ic->core.im->core.lcd, &b->mb[b->tree[ic->private.local.composed].mb],
1406 &b->wc[b->tree[ic->private.local.composed].wc], 10);
1408 _Xlcmbstoutf8(ic->core.im->core.lcd, &b->utf8[b->tree[ic->private.local.composed].utf8],
1409 &b->mb[b->tree[ic->private.local.composed].mb], 10);
1414 IC_SavePreviousChar(ic, new_char);