void init_dialog_controls(GtkBuilder* builder) { GtkWidget* wid; guint i; gchar* str; gboolean b; GtkListStore* ls; GtkTreeIter iter; // fill inputmethod ls = GTK_LIST_STORE(gtk_builder_get_object(builder, "list_input_method")); gtk_list_store_clear(ls); for (i = 0; i < NUM_INPUTMETHOD; i++) { gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, Unikey_IMNames[i], -1); } // fill outputcharset ls = GTK_LIST_STORE(gtk_builder_get_object(builder, "list_output_charset")); gtk_list_store_clear(ls); for (i = 0; i < NUM_OUTPUTCHARSET; i++) { gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, 0, Unikey_OCNames[i], -1); } wid = GTK_WIDGET(gtk_builder_get_object(builder, "cbb_input_method")); g_signal_connect(wid, "changed", G_CALLBACK(input_method_combo_box_changed_cb), NULL); i = 0; if (ibus_unikey_config_get_string(config, CONFIG_SECTION, CONFIG_INPUTMETHOD, &str)) { for (; i < NUM_INPUTMETHOD; i++) { if (strcasecmp(str, Unikey_IMNames[i]) == 0) break; } } gtk_combo_box_set_active(GTK_COMBO_BOX(wid), i); wid = GTK_WIDGET(gtk_builder_get_object(builder, "cbb_output_charset")); g_signal_connect(wid, "changed", G_CALLBACK(output_charset_combo_box_changed_cb), NULL); i = 0; if (ibus_unikey_config_get_string(config, CONFIG_SECTION, CONFIG_OUTPUTCHARSET, &str)) { for (; i < NUM_OUTPUTCHARSET; i++) { if (strcasecmp(str, Unikey_OCNames[i]) == 0) break; } } gtk_combo_box_set_active(GTK_COMBO_BOX(wid), i); wid = GTK_WIDGET(gtk_builder_get_object(builder, "check_spellcheck")); g_signal_connect(wid, "toggled", G_CALLBACK(update_config_toggle_cb), (void*)CONFIG_SPELLCHECK); if (!ibus_unikey_config_get_boolean(config, CONFIG_SECTION, CONFIG_SPELLCHECK, &b)) b = DEFAULT_CONF_SPELLCHECK; gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(wid), b); wid = GTK_WIDGET(gtk_builder_get_object(builder, "check_autorestorenonvn")); g_signal_connect(wid, "toggled", G_CALLBACK(update_config_toggle_cb), (void*)CONFIG_AUTORESTORENONVN); if (!ibus_unikey_config_get_boolean(config, CONFIG_SECTION, CONFIG_AUTORESTORENONVN, &b)) b = DEFAULT_CONF_AUTONONVNRESTORE; gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(wid), b); wid = GTK_WIDGET(gtk_builder_get_object(builder, "check_modernstyle")); g_signal_connect(wid, "toggled", G_CALLBACK(update_config_toggle_cb), (void*)CONFIG_MODERNSTYLE); if (!ibus_unikey_config_get_boolean(config, CONFIG_SECTION, CONFIG_MODERNSTYLE, &b)) b = DEFAULT_CONF_MODERNSTYLE; gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(wid), b); wid = GTK_WIDGET(gtk_builder_get_object(builder, "check_freemarking")); g_signal_connect(wid, "toggled", G_CALLBACK(update_config_toggle_cb), (void*)CONFIG_FREEMARKING); if (!ibus_unikey_config_get_boolean(config, CONFIG_SECTION, CONFIG_FREEMARKING, &b)) b = DEFAULT_CONF_FREEMARKING; gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(wid), b); wid = GTK_WIDGET(gtk_builder_get_object(builder, "check_macroenable")); g_signal_connect(wid, "toggled", G_CALLBACK(update_config_toggle_cb), (void*)CONFIG_MACROENABLED); if (!ibus_unikey_config_get_boolean(config, CONFIG_SECTION, CONFIG_MACROENABLED, &b)) b = DEFAULT_CONF_MACROENABLED; gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(wid), b); wid = GTK_WIDGET(gtk_builder_get_object(builder, "check_processwatbegin")); g_signal_connect(wid, "toggled", G_CALLBACK(update_config_toggle_cb), (void*)CONFIG_PROCESSWATBEGIN); if (!ibus_unikey_config_get_boolean(config, CONFIG_SECTION, CONFIG_PROCESSWATBEGIN, &b)) b = DEFAULT_CONF_PROCESSWATBEGIN; gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(wid), b); wid = GTK_WIDGET(gtk_builder_get_object(builder, "check_mousecapture")); g_signal_connect(wid, "toggled", G_CALLBACK(update_config_toggle_cb), (void*)CONFIG_MOUSECAPTURE); if (!ibus_unikey_config_get_boolean(config, CONFIG_SECTION, CONFIG_MOUSECAPTURE, &b)) b = DEFAULT_CONF_MOUSECAPTURE; gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(wid), b); wid = GTK_WIDGET(gtk_builder_get_object(builder, "btn_macroedit")); g_signal_connect(wid, "clicked", G_CALLBACK(macro_edit_button_cb), gtk_builder_get_object(builder, "dlg_main_setup")); }
static void ibus_unikey_engine_load_config(IBusUnikeyEngine* unikey) { gchar* str; gboolean b; guint i; //set default options unikey->im = Unikey_IM[0]; unikey->oc = Unikey_OC[0]; unikey->ukopt.spellCheckEnabled = DEFAULT_CONF_SPELLCHECK; unikey->ukopt.autoNonVnRestore = DEFAULT_CONF_AUTONONVNRESTORE; unikey->ukopt.modernStyle = DEFAULT_CONF_MODERNSTYLE; unikey->ukopt.freeMarking = DEFAULT_CONF_FREEMARKING; unikey->ukopt.macroEnabled = DEFAULT_CONF_MACROENABLED; unikey->process_w_at_begin = DEFAULT_CONF_PROCESSWATBEGIN; unikey->mouse_capture = DEFAULT_CONF_MOUSECAPTURE; if (ibus_unikey_config_get_string(config, CONFIG_SECTION, CONFIG_INPUTMETHOD, &str)) { for (i = 0; i < NUM_INPUTMETHOD; i++) { if (strcasecmp(str, Unikey_IMNames[i]) == 0) { unikey->im = Unikey_IM[i]; break; } } } if (ibus_unikey_config_get_string(config, CONFIG_SECTION, CONFIG_OUTPUTCHARSET, &str)) { for (i = 0; i < NUM_OUTPUTCHARSET; i++) { if (strcasecmp(str, Unikey_OCNames[i]) == 0) { unikey->oc = Unikey_OC[i]; break; } } } if (ibus_unikey_config_get_boolean(config, CONFIG_SECTION, CONFIG_FREEMARKING, &b)) unikey->ukopt.freeMarking = b; if (ibus_unikey_config_get_boolean(config, CONFIG_SECTION, CONFIG_MODERNSTYLE, &b)) unikey->ukopt.modernStyle = b; if (ibus_unikey_config_get_boolean(config, CONFIG_SECTION, CONFIG_MACROENABLED, &b)) unikey->ukopt.macroEnabled = b; if (ibus_unikey_config_get_boolean(config, CONFIG_SECTION, CONFIG_SPELLCHECK, &b)) unikey->ukopt.spellCheckEnabled = b; if (ibus_unikey_config_get_boolean(config, CONFIG_SECTION, CONFIG_AUTORESTORENONVN, &b)) unikey->ukopt.autoNonVnRestore = b; if (ibus_unikey_config_get_boolean(config, CONFIG_SECTION, CONFIG_PROCESSWATBEGIN, &b)) unikey->process_w_at_begin = b; if (ibus_unikey_config_get_boolean(config, CONFIG_SECTION, CONFIG_MOUSECAPTURE, &b)) unikey->mouse_capture = b; // load macro gchar* fn = get_macro_file(); UnikeyLoadMacroTable(fn); g_free(fn); unikey->last_load_config = 0; }