void init_state_chinese(ClientState *cs) { cs->im_state = GCIN_STATE_CHINESE; set_tsin_pho_mode0(cs); if (!cs->in_method) #if UNIX init_in_method(default_input_method); #else if (!last_input_method) last_input_method = default_input_method; init_in_method(last_input_method); #endif }
void init_state_chinese(ClientState *cs) { cs->im_state = HIME_STATE_CHINESE; set_tsin_pho_mode0(cs); if (!cs->in_method) #if UNIX init_in_method(default_input_method); #else if (!last_input_method) last_input_method = default_input_method; init_in_method(last_input_method); #endif save_CS_current_to_temp(); }
void init_state_chinese(ClientState *cs) { cs->im_state = HIME_STATE_CHINESE; set_tsin_pho_mode0(cs); if (!cs->in_method) init_in_method(default_input_method); save_CS_current_to_temp(); }
void cb_update_menu_select(GtkWidget *item, gpointer data) { if (!current_CS) return; int idx=GPOINTER_TO_INT(data); if (current_CS->im_state != HIME_STATE_CHINESE) current_CS->im_state = HIME_STATE_CHINESE; init_in_method(idx); }
static void putstr_inp(char *p) { clear_page_label(); // dbg("gtab_hide_row2 %d\n", gtab_hide_row2); hide_row2_if_necessary(); char_play(p); int to_tsin = (cur_inmd->flag & FLAG_GTAB_SYM_KBM) && inmd[default_input_method].method_type==method_type_TSIN && tss.c_len; if (utf8_str_N(p) > 1 || !(p[0]&128)) { if ((gtab_disp_key_codes && !gtab_hide_row2) || ggg.wild_mode) lookup_gtabn(p, NULL); if (to_tsin) { add_to_tsin_buf_str(p); } else send_text(p); } else { if (poo.same_pho_query_state == SAME_PHO_QUERY_gtab_input) { poo.same_pho_query_state = SAME_PHO_QUERY_pho_select; start_gtab_pho_query(p); ClrIn(); ClrSelArea(); return; } if ((gtab_disp_key_codes && !gtab_hide_row2) || ggg.wild_mode) lookup_gtab(p); if (to_tsin) add_to_tsin_buf_str(p); else send_utf8_ch(p); } clear_after_put(); if ((cur_inmd->flag & FLAG_GTAB_SYM_KBM)) { extern int win_kbm_inited, b_show_win_kbm; init_in_method(default_input_method); if (win_kbm_inited && !b_show_win_kbm) hide_win_kbm(); } }
static void cycle_next_in_method() { int i; for(i=0; i < inmdN; i++) { int v = (current_CS->in_method + 1 + i) % inmdN; if (!inmd[v].in_cycle) continue; if (!inmd[v].cname || !inmd[v].cname[0]) continue; if (!init_in_method(v)) continue; return; } }
static void cycle_next_in_method() { int i; #if WIN32 if (test_mode) return; #endif for(i=0; i < MAX_GTAB_NUM_KEY; i++) { int v = ((current_CS->in_method + i) % MAX_GTAB_NUM_KEY) + 1; if (!(gcin_flags_im_enabled & (1<<v))) continue; if (!inmd[v].cname || !inmd[v].cname[0]) continue; if (!init_in_method(v)) continue; return; } }
// return TRUE if the key press is processed gboolean ProcessKeyPress(KeySym keysym, u_int kev_state) { #if 0 dbg("key press %x %x\n", keysym, kev_state); #endif destroy_phrase_save_menu(); disp_win_kbm_capslock(); check_CS(); if (current_CS->client_win) focus_win = current_CS->client_win; if ( #if WIN32 !test_mode && #endif callback_str_buffer && strlen(callback_str_buffer)) { send_text(callback_str_buffer); callback_str_buffer[0]=0; return TRUE; } if (force_preedit) { force_preedit=0; return 1; } if (keysym == XK_space) { #if 0 dbg("state %x\n", kev->state); dbg("%x\n", Mod4Mask); #endif if ( ((kev_state & (ControlMask|Mod1Mask|ShiftMask))==ControlMask && hime_im_toggle_keys==Control_Space) || ((kev_state & Mod1Mask) && hime_im_toggle_keys==Alt_Space) || ((kev_state & ShiftMask) && hime_im_toggle_keys==Shift_Space) || ((kev_state & Mod4Mask) && hime_im_toggle_keys==Windows_Space) ) { if (current_method_type() == method_type_TSIN) { tsin_set_eng_ch(1); } toggle_im_enabled(); #if UNIX return TRUE; #else return FALSE; #endif } } if (keysym == XK_space && (kev_state & ShiftMask)) { if (last_keysym != XK_Shift_L && last_keysym != XK_Shift_R) return FALSE; toggle_half_full_char(); return TRUE; } if ((kev_state & (Mod1Mask|ShiftMask)) == (Mod1Mask|ShiftMask)) { if (current_CS->im_state != HIME_STATE_DISABLED || hime_eng_phrase_enabled) return feed_phrase(keysym, kev_state); else return 0; } // dbg("state %x\n", kev_state); if ((current_CS->im_state & (HIME_STATE_ENG_FULL)) ) { return full_char_proc(keysym); } if ((kev_state & ControlMask) && (kev_state&(Mod1Mask|Mod5Mask))) { if (keysym == 'g' || keysym == 'r') { send_output_buffer_bak(); return TRUE; } if (!hime_enable_ctrl_alt_switch) return FALSE; int kidx = hime_switch_keys_lookup(keysym); if (kidx < 0) return FALSE; if (inmd[kidx].method_type == method_type_SYMBOL_TABLE) { #if 1 if (current_CS->im_state == HIME_STATE_CHINESE) { if (!win_is_visible()) win_sym_enabled=1; else win_sym_enabled^=1; } else win_sym_enabled=0; #else win_sym_enabled^=1; #endif create_win_sym(); if (win_sym_enabled) { force_show = TRUE; if (current_CS->im_state == HIME_STATE_CHINESE) show_in_win(current_CS); force_show = FALSE; } return TRUE; } if (!inmd[kidx].cname) return FALSE; current_CS->im_state = HIME_STATE_CHINESE; #if WIN32 if (!test_mode) #endif init_in_method(kidx); return TRUE; } last_keysym = keysym; if (current_CS->im_state == HIME_STATE_DISABLED) { return FALSE; } if (!current_CS->b_hime_protocol) { if (((keysym == XK_Control_L || keysym == XK_Control_R) && (kev_state & ShiftMask)) || ((keysym == XK_Shift_L || keysym == XK_Shift_R) && (kev_state & ControlMask))) { cycle_next_in_method(); return TRUE; } } if (current_CS->b_raise_window && keysym>=' ' && keysym < 127) { if (timeout_handle) g_source_remove(timeout_handle); timeout_handle = g_timeout_add(200, timeout_raise_window, NULL); } if (kev_state & ControlMask) { if (feed_phrase(keysym, kev_state)) return TRUE; } switch(current_method_type()) { case method_type_PHO: return feedkey_pho(keysym, kev_state); #if USE_TSIN case method_type_TSIN: return feedkey_pp(keysym, kev_state); #endif case method_type_MODULE: return module_cb()->module_feedkey(keysym, kev_state); default: return feedkey_gtab(keysym, kev_state); } return FALSE; }