void state_changed() { hotkey_t hk; REFRESH_KEY_SETTING(trigger); settings_set(TRIGGER_KEY, &hk); REFRESH_KEY_SETTING(english); settings_set(ENG_KEY, &hk); varchar colorstr; REFRESH_COLOR_SETTING(background_color_btn); settings_set(PREEDIT_COLOR, colorstr); REFRESH_COLOR_SETTING(font_color_btn); settings_set(PREEDIT_FONT_COLOR, colorstr); /* font and size information */ settings_set(PREEDIT_FONT, (void*) gtk_font_button_get_font_name(font_btn)); /* font color information */ double scale = gtk_adjustment_get_value(opacity_value); settings_set(PREEDIT_OPACITY, &scale); int ncandi = gtk_adjustment_get_value(ncandidates); settings_set(CANDIDATES_SIZE, &ncandi); settings_save(); /* notify all running xsunpinyin with this user */ char cmd[256]; snprintf(cmd, 256, "/usr/bin/pkill -10 '^xsunpinyin$' -u %d", getuid()); system(cmd); }
void state_changed() { hotkey_t hk; REFRESH_KEY_SETTING(trigger); settings_set(TRIGGER_KEY, &hk); REFRESH_KEY_SETTING(english); settings_set(ENG_KEY, &hk); varchar colorstr; REFRESH_COLOR_SETTING(background_color_btn); settings_set(PREEDIT_COLOR, colorstr); REFRESH_COLOR_SETTING(font_color_btn); settings_set(PREEDIT_FONT_COLOR, colorstr); /* font and size information */ settings_set(PREEDIT_FONT, (void*) gtk_font_button_get_font_name(font_btn)); /* font color information */ settings_set_double(PREEDIT_OPACITY, gtk_adjustment_get_value(opacity_value)); settings_set_int(CANDIDATES_SIZE, gtk_adjustment_get_value(ncandidates)); /* page up and down trigger */ settings_set_int(PAGE_MINUS_PLUS, gtk_toggle_button_get_active(minus_plus_check)); settings_set_int(PAGE_COMMA_PERIOD, gtk_toggle_button_get_active(comma_period_check)); settings_set_int(PAGE_PAREN, gtk_toggle_button_get_active(paren_check)); /* fuzzy segmentation */ settings_set_int(FUZZY_SEGMENTATION, gtk_toggle_button_get_active(fuzzy_seg_check)); settings_set_int(FUZZY_INNER_SEGMENTATION, gtk_toggle_button_get_active(fuzzy_inner_seg_check)); /* cancel on backspace */ settings_set_int(CANCEL_ON_BACKSPACE, gtk_toggle_button_get_active(cancel_on_backspace_check)); /* smart punctuation */ settings_set_int(SMART_PUNCT, gtk_toggle_button_get_active(smart_punct_check)); settings_set_int(SHUANGPIN, gtk_toggle_button_get_active(shuangpin_check)); int sche_idx = gtk_combo_box_get_active(shuangpin_combo); if (sche_idx < UI_SHUANGPIN_SCHEMES_NUM) settings_set_string(SHUANGPIN_SCHEME, ui_shuangpin_schemes[sche_idx]); /* skins */ settings_set_string(SKIN_NAME, gtk_combo_box_get_active_text(skin_combo)); /* whether hide icbar */ settings_set_int(HIDE_ICBAR, gtk_toggle_button_get_active(hide_icbar_check)); /* init status */ settings_set_int(INIT_PUNC_TYPE, gtk_toggle_button_get_active(punc_english_radio)); settings_set_int(INIT_WIDTH, gtk_toggle_button_get_active(half_width_radio)); settings_set_int(INIT_LANGUAGE, gtk_toggle_button_get_active(lang_english_radio)); settings_save(); send_reload(); }