static void gw_application_attach_signals (GwApplication *application) { #ifdef WITH_HUNSPELL //Sanity checks g_return_if_fail (application != NULL); //Declarations LwPreferences *preferences; //Initializations preferences = gw_application_get_preferences (application); lw_preferences_add_change_listener_by_schema ( preferences, LW_SCHEMA_BASE, LW_KEY_SPELLCHECK, gw_application_sync_spellcheck_cb, application ); #endif }
static void gw_settingswindow_attach_signals (GwSettingsWindow *window) { //Declarations GwSettingsWindowPrivate *priv; GwApplication *application; LwPreferences *preferences; int i; priv = window->priv; application = gw_window_get_application (GW_WINDOW (window)); preferences = gw_application_get_preferences (application); for (i = 0; i < TOTAL_GW_SETTINGSWINDOW_SIGNALIDS; i++) priv->signalids[i] = 0; priv->signalids[GW_SETTINGSWINDOW_SIGNALID_ROMAJI_KANA] = lw_preferences_add_change_listener_by_schema ( preferences, LW_SCHEMA_BASE, LW_KEY_ROMAN_KANA, gw_settingswindow_sync_romaji_kana_conv_cb, window ); priv->signalids[GW_SETTINGSWINDOW_SIGNALID_HIRA_KATA] = lw_preferences_add_change_listener_by_schema ( preferences, LW_SCHEMA_BASE, LW_KEY_HIRA_KATA, gw_settingswindow_sync_hira_kata_conv_cb, window ); priv->signalids[GW_SETTINGSWINDOW_SIGNALID_KATA_HIRA] = lw_preferences_add_change_listener_by_schema ( preferences, LW_SCHEMA_BASE, LW_KEY_KATA_HIRA, gw_settingswindow_sync_kata_hira_conv_cb, window ); priv->signalids[GW_SETTINGSWINDOW_SIGNALID_SPELLCHECK] = lw_preferences_add_change_listener_by_schema ( preferences, LW_SCHEMA_BASE, LW_KEY_SPELLCHECK, gw_settingswindow_sync_spellcheck_cb, window ); priv->signalids[GW_SETTINGSWINDOW_SIGNALID_USE_GLOBAL_DOCUMENT_FONT] = lw_preferences_add_change_listener_by_schema ( preferences, LW_SCHEMA_FONT, LW_KEY_FONT_USE_GLOBAL_FONT, gw_settingswindow_sync_use_global_document_font_cb, window ); priv->signalids[GW_SETTINGSWINDOW_SIGNALID_GLOBAL_DOCUMENT_FONT] = lw_preferences_add_change_listener_by_schema ( preferences, LW_SCHEMA_GNOME_INTERFACE, LW_KEY_DOCUMENT_FONT_NAME, gw_settingswindow_sync_global_document_font_cb, window ); priv->signalids[GW_SETTINGSWINDOW_SIGNALID_CUSTOM_FONT] = lw_preferences_add_change_listener_by_schema ( preferences, LW_SCHEMA_FONT, LW_KEY_FONT_CUSTOM_FONT, gw_settingswindow_sync_custom_font_cb, window ); priv->signalids[GW_SETTINGSWINDOW_SIGNALID_SEARCH_AS_YOU_TYPE] = lw_preferences_add_change_listener_by_schema ( preferences, LW_SCHEMA_BASE, LW_KEY_SEARCH_AS_YOU_TYPE, gw_settingswindow_sync_search_as_you_type_cb, window ); priv->signalids[GW_SETTINGSWINDOW_SIGNALID_MATCH_FG] = lw_preferences_add_change_listener_by_schema ( preferences, LW_SCHEMA_HIGHLIGHT, LW_KEY_MATCH_FG, gw_settingswindow_sync_swatch_color_cb, priv->match_foreground ); priv->signalids[GW_SETTINGSWINDOW_SIGNALID_MATCH_BG] = lw_preferences_add_change_listener_by_schema ( preferences, LW_SCHEMA_HIGHLIGHT, LW_KEY_MATCH_BG, gw_settingswindow_sync_swatch_color_cb, priv->match_background ); priv->signalids[GW_SETTINGSWINDOW_SIGNALID_COMMENT_FG] = lw_preferences_add_change_listener_by_schema ( preferences, LW_SCHEMA_HIGHLIGHT, LW_KEY_COMMENT_FG, gw_settingswindow_sync_swatch_color_cb, priv->comment_foreground ); priv->signalids[GW_SETTINGSWINDOW_SIGNALID_HEADER_FG] = lw_preferences_add_change_listener_by_schema ( preferences, LW_SCHEMA_HIGHLIGHT, LW_KEY_HEADER_FG, gw_settingswindow_sync_swatch_color_cb, priv->header_foreground ); priv->signalids[GW_SETTINGSWINDOW_SIGNALID_HEADER_BG] = lw_preferences_add_change_listener_by_schema ( preferences, LW_SCHEMA_HIGHLIGHT, LW_KEY_HEADER_BG, gw_settingswindow_sync_swatch_color_cb, priv->header_background ); }
void gw_spellcheck_set_entry (GwSpellcheck *spellcheck, GtkEntry *entry) { GwSpellcheckPrivate *priv; LwPreferences *preferences; priv = spellcheck->priv; preferences = gw_application_get_preferences (priv->application); //Remove the old signals if (priv->entry != NULL) { if (priv->signalid[GW_SPELLCHECK_SIGNALID_DRAW] != 0) g_signal_handler_disconnect (G_OBJECT (priv->entry), priv->signalid[GW_SPELLCHECK_SIGNALID_DRAW]); if (priv->signalid[GW_SPELLCHECK_SIGNALID_CHANGED] != 0) g_signal_handler_disconnect (G_OBJECT (priv->entry), priv->signalid[GW_SPELLCHECK_SIGNALID_CHANGED]); if (priv->signalid[GW_SPELLCHECK_SIGNALID_POPULATE_POPUP] != 0) g_signal_handler_disconnect (G_OBJECT (priv->entry), priv->signalid[GW_SPELLCHECK_SIGNALID_POPULATE_POPUP]); if (priv->signalid[GW_SPELLCHECK_SIGNALID_DESTROY] != 0) g_signal_handler_disconnect (G_OBJECT (priv->entry), priv->signalid[GW_SPELLCHECK_SIGNALID_DESTROY]); g_object_remove_weak_pointer (G_OBJECT (priv->entry), (gpointer*) (&(priv->entry))); } //Set the entry pointer priv->entry = entry; if (entry == NULL) return; g_object_add_weak_pointer (G_OBJECT (priv->entry), (gpointer*) (&(priv->entry))); //set the new signals priv->signalid[GW_SPELLCHECK_SIGNALID_DICTIONARY] = lw_preferences_add_change_listener_by_schema ( preferences, LW_SCHEMA_BASE, LW_KEY_SPELLCHECK_DICTIONARY, gw_spellcheck_sync_dictionary_cb, spellcheck ); priv->signalid[GW_SPELLCHECK_SIGNALID_RK_CONV] = lw_preferences_add_change_listener_by_schema ( preferences, LW_SCHEMA_BASE, LW_KEY_ROMAJI_TO_FURIGANA, gw_spellcheck_sync_rk_conv_cb, spellcheck ); priv->signalid[GW_SPELLCHECK_SIGNALID_DRAW] = g_signal_connect_after ( G_OBJECT (entry), "draw", G_CALLBACK (gw_spellcheck_draw_underline_cb), spellcheck ); priv->signalid[GW_SPELLCHECK_SIGNALID_CHANGED] = g_signal_connect ( G_OBJECT (entry), "changed", G_CALLBACK (gw_spellcheck_queue_cb), spellcheck ); priv->signalid[GW_SPELLCHECK_SIGNALID_BUTTON_PRESS_EVENT] = g_signal_connect ( G_OBJECT (entry), "button-press-event", G_CALLBACK (gw_spellcheck_button_press_event_cb), spellcheck ); priv->signalid[GW_SPELLCHECK_SIGNALID_POPULATE_POPUP] = g_signal_connect ( G_OBJECT (entry), "populate-popup", G_CALLBACK (gw_spellcheck_populate_popup_cb), spellcheck ); priv->signalid[GW_SPELLCHECK_SIGNALID_DESTROY] = g_signal_connect_swapped ( G_OBJECT (entry), "destroy", G_CALLBACK (gw_spellcheck_remove_signals), spellcheck ); gw_spellcheck_queue (spellcheck); }