static void contact_list_view_row_expand_or_collapse_cb (EmpathyContactListView *view, GtkTreeIter *iter, GtkTreePath *path, gpointer user_data) { EmpathyContactListViewPriv *priv = GET_PRIV (view); GtkTreeModel *model; gchar *name; gboolean expanded; if (!(priv->list_features & EMPATHY_CONTACT_LIST_FEATURE_GROUPS_SAVE)) { return; } model = gtk_tree_view_get_model (GTK_TREE_VIEW (view)); gtk_tree_model_get (model, iter, EMPATHY_CONTACT_LIST_STORE_COL_NAME, &name, -1); expanded = GPOINTER_TO_INT (user_data); empathy_contact_group_set_expanded (name, expanded); g_free (name); }
static void group_expanded_cb (GtkWidget *expander, GParamSpec *spec, EmpathyRosterGroup *group) { GList *widgets, *l; widgets = empathy_roster_group_get_widgets (group); for (l = widgets; l != NULL; l = g_list_next (l)) { gtk_list_box_row_changed (l->data); } g_list_free (widgets); empathy_contact_group_set_expanded (empathy_roster_group_get_name (group), gtk_expander_get_expanded (group->expander)); }