/** * empathy_persona_store_get_individual: * @self: an #EmpathyPersonaStore * * Get the value of #EmpathyPersonaStore:individual. * * Return value: the individual being displayed by the store, or %NULL */ FolksIndividual * empathy_persona_store_get_individual (EmpathyPersonaStore *self) { g_return_val_if_fail (EMPATHY_IS_PERSONA_STORE (self), NULL); return GET_PRIV (self)->individual; }
/** * empathy_persona_store_set_sort_criterion: * @self: an #EmpathyPersonaStore * @show_avatars: a criterion to be used to sort personas in the store * * Set #EmpathyPersonaStore:sort-criterion to @sort_criterion. */ void empathy_persona_store_set_sort_criterion (EmpathyPersonaStore *self, EmpathyPersonaStoreSort sort_criterion) { EmpathyPersonaStorePriv *priv; g_return_if_fail (EMPATHY_IS_PERSONA_STORE (self)); priv = GET_PRIV (self); priv->sort_criterion = sort_criterion; switch (sort_criterion) { case EMPATHY_PERSONA_STORE_SORT_STATE: gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (self), EMPATHY_PERSONA_STORE_COL_STATUS, GTK_SORT_ASCENDING); break; case EMPATHY_PERSONA_STORE_SORT_NAME: gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (self), EMPATHY_PERSONA_STORE_COL_NAME, GTK_SORT_ASCENDING); break; default: g_assert_not_reached (); break; } g_object_notify (G_OBJECT (self), "sort-criterion"); }
/** * empathy_persona_store_get_sort_criterion: * @self: an #EmpathyPersonaStore * * Get the value of #EmpathyPersonaStore:sort-criterion. * * Return value: the criterion used to sort the personas in the store */ EmpathyPersonaStoreSort empathy_persona_store_get_sort_criterion (EmpathyPersonaStore *self) { g_return_val_if_fail (EMPATHY_IS_PERSONA_STORE (self), 0); return GET_PRIV (self)->sort_criterion; }
/** * empathy_persona_store_get_show_protocols: * @self: an #EmpathyPersonaStore * * Get the value of #EmpathyPersonaStore:show-protocols. * * Return value: %TRUE if protocol images are made available by the store, * %FALSE otherwise */ gboolean empathy_persona_store_get_show_protocols (EmpathyPersonaStore *self) { g_return_val_if_fail (EMPATHY_IS_PERSONA_STORE (self), TRUE); return GET_PRIV (self)->show_protocols; }
/** * empathy_persona_view_new: * @store: an #EmpathyPersonaStore * @features: a set of flags specifying the view's functionality, or * %EMPATHY_PERSONA_VIEW_FEATURE_NONE * * Create a new #EmpathyPersonaView displaying the personas in * #EmpathyPersonaStore. * * Return value: a new #EmpathyPersonaView */ EmpathyPersonaView * empathy_persona_view_new (EmpathyPersonaStore *store, EmpathyPersonaViewFeatureFlags features) { g_return_val_if_fail (EMPATHY_IS_PERSONA_STORE (store), NULL); return g_object_new (EMPATHY_TYPE_PERSONA_VIEW, "model", store, "features", features, NULL); }
/** * empathy_persona_store_set_show_protocols: * @self: an #EmpathyPersonaStore * @show_protocols: %TRUE to make protocol images available through the store, * %FALSE otherwise * * Set #EmpathyPersonaStore:show-protocols to @show_protocols. */ void empathy_persona_store_set_show_protocols (EmpathyPersonaStore *self, gboolean show_protocols) { EmpathyPersonaStorePriv *priv; g_return_if_fail (EMPATHY_IS_PERSONA_STORE (self)); priv = GET_PRIV (self); priv->show_protocols = show_protocols; gtk_tree_model_foreach (GTK_TREE_MODEL (self), (GtkTreeModelForeachFunc) update_list_mode_foreach, self); g_object_notify (G_OBJECT (self), "show-protocols"); }
/** * empathy_persona_store_set_individual: * @self: an #EmpathyPersonaStore * @individual: the new individual to display in the store, or %NULL * * Set #EmpathyPersonaStore:individual to @individual, replacing the personas * which were in the store with the personas belonging to @individual, or with * nothing if @individual is %NULL. */ void empathy_persona_store_set_individual (EmpathyPersonaStore *self, FolksIndividual *individual) { EmpathyPersonaStorePriv *priv; g_return_if_fail (EMPATHY_IS_PERSONA_STORE (self)); g_return_if_fail (individual == NULL || FOLKS_IS_INDIVIDUAL (individual)); priv = GET_PRIV (self); /* Remove the old individual */ if (priv->individual != NULL) { GList *personas, *l; g_signal_handlers_disconnect_by_func (priv->individual, (GCallback) individual_personas_changed_cb, self); /* Disconnect from and remove all personas belonging to this individual */ personas = folks_individual_get_personas (priv->individual); for (l = personas; l != NULL; l = l->next) remove_persona_and_disconnect (self, FOLKS_PERSONA (l->data)); g_object_unref (priv->individual); } priv->individual = individual; /* Add the new individual */ if (individual != NULL) { GList *personas, *l; g_object_ref (individual); g_signal_connect (individual, "personas-changed", (GCallback) individual_personas_changed_cb, self); /* Add pre-existing Personas */ personas = folks_individual_get_personas (individual); for (l = personas; l != NULL; l = l->next) add_persona_and_connect (self, FOLKS_PERSONA (l->data)); } g_object_notify (G_OBJECT (self), "individual"); }