GtkWidget * empathy_account_chooser_new (void) { EmpathyAccountChooserPriv *priv; McAccountMonitor *monitor; GtkWidget *chooser; monitor = mc_account_monitor_new (); chooser = g_object_new (EMPATHY_TYPE_ACCOUNT_CHOOSER, NULL); priv = GET_PRIV (chooser); priv->mc = empathy_mission_control_new (); priv->monitor = mc_account_monitor_new (); g_signal_connect (priv->monitor, "account-created", G_CALLBACK (account_chooser_account_created_cb), chooser); g_signal_connect (priv->monitor, "account-deleted", G_CALLBACK (account_chooser_account_deleted_cb), chooser); priv->token = empathy_connect_to_account_status_changed (priv->mc, G_CALLBACK (account_chooser_status_changed_cb), chooser, NULL); account_chooser_setup (EMPATHY_ACCOUNT_CHOOSER (chooser)); return chooser; }
static void empathy_account_manager_init (EmpathyAccountManager *manager) { EmpathyAccountManagerPriv *priv; GList *mc_accounts, *l; AccountData *data; priv = G_TYPE_INSTANCE_GET_PRIVATE (manager, EMPATHY_TYPE_ACCOUNT_MANAGER, EmpathyAccountManagerPriv); manager->priv = priv; priv->monitor = mc_account_monitor_new (); priv->mc = empathy_mission_control_new (); priv->connected = priv->connecting = 0; priv->dispose_run = FALSE; priv->accounts = g_hash_table_new_full (empathy_account_hash, empathy_account_equal, g_object_unref, (GDestroyNotify) account_data_free); mc_accounts = mc_accounts_list (); for (l = mc_accounts; l; l = l->next) { data = account_data_new_default (priv->mc, l->data); account_created_cb (priv->monitor, (char *) mc_account_get_unique_name (l->data), manager); } g_signal_connect (priv->monitor, "account-created", G_CALLBACK (account_created_cb), manager); g_signal_connect (priv->monitor, "account-deleted", G_CALLBACK (account_deleted_cb), manager); g_signal_connect (priv->monitor, "account-disabled", G_CALLBACK (account_disabled_cb), manager); g_signal_connect (priv->monitor, "account-enabled", G_CALLBACK (account_enabled_cb), manager); g_signal_connect (priv->monitor, "account-changed", G_CALLBACK (account_changed_cb), manager); dbus_g_proxy_connect_signal (DBUS_G_PROXY (priv->mc), "AccountStatusChanged", G_CALLBACK (account_status_changed_cb), manager, NULL); mc_accounts_list_free (mc_accounts); }