static void preferences_hookup_string_combo (EmpathyPreferences *preferences, const gchar *key, GtkWidget *widget) { guint id; preferences_widget_sync_string_combo (key, widget); g_object_set_data_full (G_OBJECT (widget), "key", g_strdup (key), g_free); g_signal_connect (widget, "changed", G_CALLBACK (preferences_string_combo_changed_cb), NULL); id = empathy_conf_notify_add (empathy_conf_get (), key, preferences_notify_string_combo_cb, widget); if (id) { preferences_add_id (preferences, id); } }
static void preferences_notify_string_combo_cb (EmpathyConf *conf, const gchar *key, gpointer user_data) { preferences_widget_sync_string_combo (key, user_data); }
static void preferences_hookup_string_combo(PreferencesDialog *prefs, const gchar *key, GtkComboBox *combo_box){ guint id; preferences_widget_sync_string_combo(key, combo_box); g_object_set_data_full(G_OBJECT(combo_box), "key", g_strdup(key), g_free); g_signal_connect(combo_box, "changed", (GCallback)preferences_string_combo_changed_cb, prefs); if((id=gconfig_notify_add(g_strdup(key), preferences_notify_string_combo_cb, combo_box))) preferences_add_id(prefs, id); }
static void preferences_notify_string_combo_cb(const gchar *key, gpointer user_data){ debug("Saving preference: %s", key); preferences_widget_sync_string_combo(key, user_data); }