static void cell_toggled_cb (GtkCellRendererToggle *cell, const gchar *path_string, EmpathyGroupsWidget *self) { EmpathyGroupsWidgetPriv *priv = GET_PRIV (self); GtkTreePath *path; GtkTreeIter iter; gboolean was_enabled; gchar *group; path = gtk_tree_path_new_from_string (path_string); gtk_tree_model_get_iter (GTK_TREE_MODEL (priv->group_store), &iter, path); gtk_tree_model_get (GTK_TREE_MODEL (priv->group_store), &iter, COL_ENABLED, &was_enabled, COL_NAME, &group, -1); gtk_list_store_set (priv->group_store, &iter, COL_ENABLED, !was_enabled, -1); gtk_tree_path_free (path); if (group != NULL) { folks_group_details_change_group (priv->group_details, group, !was_enabled, (GAsyncReadyCallback) change_group_cb, self); g_free (group); } }
static void remove_group_cb (const gchar *id, FolksIndividual *individual, const gchar *group) { folks_group_details_change_group (FOLKS_GROUP_DETAILS (individual), group, FALSE, groups_change_group_cb, NULL); }
static void add_group_button_clicked_cb (GtkButton *button, EmpathyGroupsWidget *self) { EmpathyGroupsWidgetPriv *priv = GET_PRIV (self); const gchar *group; group = gtk_entry_get_text (GTK_ENTRY (priv->add_group_entry)); gtk_list_store_insert_with_values (priv->group_store, NULL, -1, COL_NAME, group, COL_ENABLED, TRUE, -1); folks_group_details_change_group (priv->group_details, group, TRUE, (GAsyncReadyCallback) change_group_cb, self); }