#define GET_PRIV(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), EMPATHY_TYPE_CONTACT_LIST_STORE, EmpathyContactListStorePriv))
-struct _EmpathyContactListStorePriv {
+typedef struct {
EmpathyContactList *list;
gboolean show_offline;
gboolean show_avatars;
gboolean show_active;
EmpathyContactListStoreSort sort_criterium;
guint inhibit_active;
-
- EmpathyContactGroupsFunc get_contact_groups;
- gpointer get_contact_groups_data;
-};
+} EmpathyContactListStorePriv;
typedef struct {
GtkTreeIter iter;
switch (sort_criterium) {
case EMPATHY_CONTACT_LIST_STORE_SORT_STATE:
gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (store),
- COL_STATUS,
+ EMPATHY_CONTACT_LIST_STORE_COL_STATUS,
GTK_SORT_ASCENDING);
break;
case EMPATHY_CONTACT_LIST_STORE_SORT_NAME:
gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (store),
- COL_NAME,
+ EMPATHY_CONTACT_LIST_STORE_COL_NAME,
GTK_SORT_ASCENDING);
break;
}
g_return_val_if_fail (GTK_IS_TREE_MODEL (model), FALSE);
gtk_tree_model_get (model, iter,
- COL_IS_SEPARATOR, &is_separator,
+ EMPATHY_CONTACT_LIST_STORE_COL_IS_SEPARATOR, &is_separator,
-1);
return is_separator;
}
gtk_tree_model_get (model, &iter,
- COL_IS_GROUP, &is_group,
- COL_NAME, &name,
+ EMPATHY_CONTACT_LIST_STORE_COL_IS_GROUP, &is_group,
+ EMPATHY_CONTACT_LIST_STORE_COL_NAME, &name,
-1);
if (!is_group) {
iter = parent_iter;
gtk_tree_model_get (model, &iter,
- COL_IS_GROUP, &is_group,
- COL_NAME, &name,
+ EMPATHY_CONTACT_LIST_STORE_COL_IS_GROUP, &is_group,
+ EMPATHY_CONTACT_LIST_STORE_COL_NAME, &name,
-1);
if (!is_group) {
g_free (name);
return TRUE;
}
- gtk_tree_model_get (model, iter, COL_NAME, &name, -1);
+ gtk_tree_model_get (model, iter,
+ EMPATHY_CONTACT_LIST_STORE_COL_NAME, &name,
+ -1);
if (!name) {
return TRUE;
EmpathyContact *contact = NULL;
gtk_tree_model_get (GTK_TREE_MODEL (store), iter,
- COL_CONTACT, &contact,
+ EMPATHY_CONTACT_LIST_STORE_COL_CONTACT, &contact,
-1);
if (contact) {
priv = GET_PRIV (store);
- gtk_tree_store_set_column_types (GTK_TREE_STORE (store), COL_COUNT, types);
+ gtk_tree_store_set_column_types (GTK_TREE_STORE (store),
+ EMPATHY_CONTACT_LIST_STORE_COL_COUNT,
+ types);
/* Set up sorting */
gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (store),
- COL_NAME,
+ EMPATHY_CONTACT_LIST_STORE_COL_NAME,
contact_list_store_name_sort_func,
store, NULL);
gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (store),
- COL_STATUS,
+ EMPATHY_CONTACT_LIST_STORE_COL_STATUS,
contact_list_store_state_sort_func,
store, NULL);
if (!groups) {
gtk_tree_store_append (GTK_TREE_STORE (store), &iter, NULL);
gtk_tree_store_set (GTK_TREE_STORE (store), &iter,
- COL_NAME, empathy_contact_get_name (contact),
- COL_CONTACT, contact,
- COL_IS_GROUP, FALSE,
- COL_IS_SEPARATOR, FALSE,
- COL_CAN_VOIP, empathy_contact_can_voip (contact),
+ EMPATHY_CONTACT_LIST_STORE_COL_NAME, empathy_contact_get_name (contact),
+ EMPATHY_CONTACT_LIST_STORE_COL_CONTACT, contact,
+ EMPATHY_CONTACT_LIST_STORE_COL_IS_GROUP, FALSE,
+ EMPATHY_CONTACT_LIST_STORE_COL_IS_SEPARATOR, FALSE,
+ EMPATHY_CONTACT_LIST_STORE_COL_CAN_VOIP, empathy_contact_can_voip (contact),
-1);
}
gtk_tree_store_insert_after (GTK_TREE_STORE (store), &iter,
&iter_group, NULL);
gtk_tree_store_set (GTK_TREE_STORE (store), &iter,
- COL_NAME, empathy_contact_get_name (contact),
- COL_CONTACT, contact,
- COL_IS_GROUP, FALSE,
- COL_IS_SEPARATOR, FALSE,
- COL_CAN_VOIP, empathy_contact_can_voip (contact),
+ EMPATHY_CONTACT_LIST_STORE_COL_NAME, empathy_contact_get_name (contact),
+ EMPATHY_CONTACT_LIST_STORE_COL_CONTACT, contact,
+ EMPATHY_CONTACT_LIST_STORE_COL_IS_GROUP, FALSE,
+ EMPATHY_CONTACT_LIST_STORE_COL_IS_SEPARATOR, FALSE,
+ EMPATHY_CONTACT_LIST_STORE_COL_CAN_VOIP, empathy_contact_can_voip (contact),
-1);
g_free (l->data);
}
/* Get online state before. */
if (iters && g_list_length (iters) > 0) {
gtk_tree_model_get (model, iters->data,
- COL_IS_ONLINE, &was_online,
+ EMPATHY_CONTACT_LIST_STORE_COL_IS_ONLINE, &was_online,
-1);
}
pixbuf_avatar = empathy_pixbuf_avatar_from_contact_scaled (contact, 32, 32);
for (l = iters; l && set_model; l = l->next) {
gtk_tree_store_set (GTK_TREE_STORE (store), l->data,
- COL_ICON_STATUS, empathy_icon_name_for_contact (contact),
- COL_PIXBUF_AVATAR, pixbuf_avatar,
- COL_PIXBUF_AVATAR_VISIBLE, priv->show_avatars,
- COL_NAME, empathy_contact_get_name (contact),
- COL_STATUS, empathy_contact_get_status (contact),
- COL_STATUS_VISIBLE, !priv->is_compact,
- COL_IS_GROUP, FALSE,
- COL_IS_ONLINE, now_online,
- COL_IS_SEPARATOR, FALSE,
- COL_CAN_VOIP, empathy_contact_can_voip (contact),
+ EMPATHY_CONTACT_LIST_STORE_COL_ICON_STATUS, empathy_icon_name_for_contact (contact),
+ EMPATHY_CONTACT_LIST_STORE_COL_PIXBUF_AVATAR, pixbuf_avatar,
+ EMPATHY_CONTACT_LIST_STORE_COL_PIXBUF_AVATAR_VISIBLE, priv->show_avatars,
+ EMPATHY_CONTACT_LIST_STORE_COL_NAME, empathy_contact_get_name (contact),
+ EMPATHY_CONTACT_LIST_STORE_COL_STATUS, empathy_contact_get_status (contact),
+ EMPATHY_CONTACT_LIST_STORE_COL_STATUS_VISIBLE, !priv->is_compact,
+ EMPATHY_CONTACT_LIST_STORE_COL_IS_GROUP, FALSE,
+ EMPATHY_CONTACT_LIST_STORE_COL_IS_ONLINE, now_online,
+ EMPATHY_CONTACT_LIST_STORE_COL_IS_SEPARATOR, FALSE,
+ EMPATHY_CONTACT_LIST_STORE_COL_CAN_VOIP, empathy_contact_can_voip (contact),
-1);
}
GtkTreePath *path;
gtk_tree_store_set (GTK_TREE_STORE (store), l->data,
- COL_IS_ACTIVE, active,
+ EMPATHY_CONTACT_LIST_STORE_COL_IS_ACTIVE, active,
-1);
empathy_debug (DEBUG_DOMAIN, "Set item %s", active ? "active" : "inactive");
}
gtk_tree_model_get (model, iter,
- COL_NAME, &str,
- COL_IS_GROUP, &is_group,
+ EMPATHY_CONTACT_LIST_STORE_COL_NAME, &str,
+ EMPATHY_CONTACT_LIST_STORE_COL_IS_GROUP, &is_group,
-1);
if (is_group && strcmp (str, fg->name) == 0) {
gtk_tree_store_append (GTK_TREE_STORE (store), &iter_group, NULL);
gtk_tree_store_set (GTK_TREE_STORE (store), &iter_group,
- COL_ICON_STATUS, NULL,
- COL_NAME, name,
- COL_IS_GROUP, TRUE,
- COL_IS_ACTIVE, FALSE,
- COL_IS_SEPARATOR, FALSE,
+ EMPATHY_CONTACT_LIST_STORE_COL_ICON_STATUS, NULL,
+ EMPATHY_CONTACT_LIST_STORE_COL_NAME, name,
+ EMPATHY_CONTACT_LIST_STORE_COL_IS_GROUP, TRUE,
+ EMPATHY_CONTACT_LIST_STORE_COL_IS_ACTIVE, FALSE,
+ EMPATHY_CONTACT_LIST_STORE_COL_IS_SEPARATOR, FALSE,
-1);
if (iter_group_to_set) {
&iter_separator,
&iter_group);
gtk_tree_store_set (GTK_TREE_STORE (store), &iter_separator,
- COL_IS_SEPARATOR, TRUE,
+ EMPATHY_CONTACT_LIST_STORE_COL_IS_SEPARATOR, TRUE,
-1);
if (iter_separator_to_set) {
gboolean is_separator;
gtk_tree_model_get (model, &iter_separator,
- COL_IS_SEPARATOR, &is_separator,
+ EMPATHY_CONTACT_LIST_STORE_COL_IS_SEPARATOR, &is_separator,
-1);
if (is_separator && iter_separator_to_set) {
McPresence state_a, state_b;
gtk_tree_model_get (model, iter_a,
- COL_NAME, &name_a,
- COL_CONTACT, &contact_a,
- COL_IS_SEPARATOR, &is_separator_a,
+ EMPATHY_CONTACT_LIST_STORE_COL_NAME, &name_a,
+ EMPATHY_CONTACT_LIST_STORE_COL_CONTACT, &contact_a,
+ EMPATHY_CONTACT_LIST_STORE_COL_IS_SEPARATOR, &is_separator_a,
-1);
gtk_tree_model_get (model, iter_b,
- COL_NAME, &name_b,
- COL_CONTACT, &contact_b,
- COL_IS_SEPARATOR, &is_separator_b,
+ EMPATHY_CONTACT_LIST_STORE_COL_NAME, &name_b,
+ EMPATHY_CONTACT_LIST_STORE_COL_CONTACT, &contact_b,
+ EMPATHY_CONTACT_LIST_STORE_COL_IS_SEPARATOR, &is_separator_b,
-1);
/* Separator or group? */
gint ret_val;
gtk_tree_model_get (model, iter_a,
- COL_NAME, &name_a,
- COL_CONTACT, &contact_a,
- COL_IS_SEPARATOR, &is_separator_a,
+ EMPATHY_CONTACT_LIST_STORE_COL_NAME, &name_a,
+ EMPATHY_CONTACT_LIST_STORE_COL_CONTACT, &contact_a,
+ EMPATHY_CONTACT_LIST_STORE_COL_IS_SEPARATOR, &is_separator_a,
-1);
gtk_tree_model_get (model, iter_b,
- COL_NAME, &name_b,
- COL_CONTACT, &contact_b,
- COL_IS_SEPARATOR, &is_separator_b,
+ EMPATHY_CONTACT_LIST_STORE_COL_NAME, &name_b,
+ EMPATHY_CONTACT_LIST_STORE_COL_CONTACT, &contact_b,
+ EMPATHY_CONTACT_LIST_STORE_COL_IS_SEPARATOR, &is_separator_b,
-1);
/* If contact is NULL it means it's a group. */
EmpathyContact *contact;
gtk_tree_model_get (model, iter,
- COL_CONTACT, &contact,
+ EMPATHY_CONTACT_LIST_STORE_COL_CONTACT, &contact,
-1);
if (!contact) {
}
gtk_tree_store_set (GTK_TREE_STORE (store), iter,
- COL_PIXBUF_AVATAR_VISIBLE, show_avatar,
- COL_STATUS_VISIBLE, !priv->is_compact,
+ EMPATHY_CONTACT_LIST_STORE_COL_PIXBUF_AVATAR_VISIBLE, show_avatar,
+ EMPATHY_CONTACT_LIST_STORE_COL_STATUS_VISIBLE, !priv->is_compact,
-1);
return FALSE;
G_BEGIN_DECLS
-/*
- * EmpathyContactListStoreSort
- */
-typedef enum {
- EMPATHY_CONTACT_LIST_STORE_SORT_STATE,
- EMPATHY_CONTACT_LIST_STORE_SORT_NAME
-} EmpathyContactListStoreSort;
-
-/*
- * EmpathyContactListStore
- */
#define EMPATHY_TYPE_CONTACT_LIST_STORE (empathy_contact_list_store_get_type ())
#define EMPATHY_CONTACT_LIST_STORE(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), EMPATHY_TYPE_CONTACT_LIST_STORE, EmpathyContactListStore))
#define EMPATHY_CONTACT_LIST_STORE_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), EMPATHY_TYPE_CONTACT_LIST_STORE, EmpathyContactListStoreClass))
typedef struct _EmpathyContactListStore EmpathyContactListStore;
typedef struct _EmpathyContactListStoreClass EmpathyContactListStoreClass;
-typedef struct _EmpathyContactListStorePriv EmpathyContactListStorePriv;
-enum {
- COL_ICON_STATUS,
- COL_PIXBUF_AVATAR,
- COL_PIXBUF_AVATAR_VISIBLE,
- COL_NAME,
- COL_STATUS,
- COL_STATUS_VISIBLE,
- COL_CONTACT,
- COL_IS_GROUP,
- COL_IS_ACTIVE,
- COL_IS_ONLINE,
- COL_IS_SEPARATOR,
- COL_CAN_VOIP,
- COL_COUNT
+typedef enum {
+ EMPATHY_CONTACT_LIST_STORE_SORT_STATE,
+ EMPATHY_CONTACT_LIST_STORE_SORT_NAME
+} EmpathyContactListStoreSort;
+
+typedef enum {
+ EMPATHY_CONTACT_LIST_STORE_COL_ICON_STATUS,
+ EMPATHY_CONTACT_LIST_STORE_COL_PIXBUF_AVATAR,
+ EMPATHY_CONTACT_LIST_STORE_COL_PIXBUF_AVATAR_VISIBLE,
+ EMPATHY_CONTACT_LIST_STORE_COL_NAME,
+ EMPATHY_CONTACT_LIST_STORE_COL_STATUS,
+ EMPATHY_CONTACT_LIST_STORE_COL_STATUS_VISIBLE,
+ EMPATHY_CONTACT_LIST_STORE_COL_CONTACT,
+ EMPATHY_CONTACT_LIST_STORE_COL_IS_GROUP,
+ EMPATHY_CONTACT_LIST_STORE_COL_IS_ACTIVE,
+ EMPATHY_CONTACT_LIST_STORE_COL_IS_ONLINE,
+ EMPATHY_CONTACT_LIST_STORE_COL_IS_SEPARATOR,
+ EMPATHY_CONTACT_LIST_STORE_COL_CAN_VOIP,
+ EMPATHY_CONTACT_LIST_STORE_COL_COUNT
} EmpathyContactListStoreCol;
struct _EmpathyContactListStore {
- GtkTreeStore parent;
+ GtkTreeStore parent;
};
struct _EmpathyContactListStoreClass {
- GtkTreeStoreClass parent_class;
+ GtkTreeStoreClass parent_class;
};
-typedef GList * (*EmpathyContactGroupsFunc) (EmpathyContact *contact,
- gpointer user_data);
GType empathy_contact_list_store_get_type (void) G_GNUC_CONST;
-EmpathyContactListStore * empathy_contact_list_store_new (EmpathyContactList *list_iface);
+EmpathyContactListStore * empathy_contact_list_store_new (EmpathyContactList *list_iface);
EmpathyContactList * empathy_contact_list_store_get_list_iface (EmpathyContactListStore *store);
gboolean empathy_contact_list_store_get_show_offline (EmpathyContactListStore *store);
void empathy_contact_list_store_set_show_offline (EmpathyContactListStore *store,
return NULL;
}
- gtk_tree_model_get (model, &iter, COL_CONTACT, &contact, -1);
+ gtk_tree_model_get (model, &iter,
+ EMPATHY_CONTACT_LIST_STORE_COL_CONTACT, &contact,
+ -1);
return contact;
}
}
gtk_tree_model_get (model, &iter,
- COL_IS_GROUP, &is_group,
- COL_NAME, &name,
+ EMPATHY_CONTACT_LIST_STORE_COL_IS_GROUP, &is_group,
+ EMPATHY_CONTACT_LIST_STORE_COL_NAME, &name,
-1);
if (!is_group) {
view, NULL);
gtk_tree_view_column_add_attribute (col, cell,
- "name", COL_NAME);
+ "name", EMPATHY_CONTACT_LIST_STORE_COL_NAME);
gtk_tree_view_column_add_attribute (col, cell,
- "status", COL_STATUS);
+ "status", EMPATHY_CONTACT_LIST_STORE_COL_STATUS);
gtk_tree_view_column_add_attribute (col, cell,
- "is_group", COL_IS_GROUP);
+ "is_group", EMPATHY_CONTACT_LIST_STORE_COL_IS_GROUP);
#ifdef HAVE_VOIP
/* Voip Capability Icon */
gchar *name = NULL;
gtk_tree_model_get (model, iter,
- COL_IS_GROUP, &is_group,
- COL_NAME, &name,
+ EMPATHY_CONTACT_LIST_STORE_COL_IS_GROUP, &is_group,
+ EMPATHY_CONTACT_LIST_STORE_COL_NAME, &name,
-1);
if (!is_group || G_STR_EMPTY (name)) {
gboolean is_active;
gtk_tree_model_get (model, iter,
- COL_IS_GROUP, &is_group,
- COL_IS_ACTIVE, &is_active,
- COL_ICON_STATUS, &icon_name,
+ EMPATHY_CONTACT_LIST_STORE_COL_IS_GROUP, &is_group,
+ EMPATHY_CONTACT_LIST_STORE_COL_IS_ACTIVE, &is_active,
+ EMPATHY_CONTACT_LIST_STORE_COL_ICON_STATUS, &icon_name,
-1);
g_object_set (cell,
gboolean can_voip;
gtk_tree_model_get (model, iter,
- COL_IS_GROUP, &is_group,
- COL_IS_ACTIVE, &is_active,
- COL_CAN_VOIP, &can_voip,
+ EMPATHY_CONTACT_LIST_STORE_COL_IS_GROUP, &is_group,
+ EMPATHY_CONTACT_LIST_STORE_COL_IS_ACTIVE, &is_active,
+ EMPATHY_CONTACT_LIST_STORE_COL_CAN_VOIP, &can_voip,
-1);
g_object_set (cell,
gboolean is_active;
gtk_tree_model_get (model, iter,
- COL_PIXBUF_AVATAR, &pixbuf,
- COL_PIXBUF_AVATAR_VISIBLE, &show_avatar,
- COL_IS_GROUP, &is_group,
- COL_IS_ACTIVE, &is_active,
+ EMPATHY_CONTACT_LIST_STORE_COL_PIXBUF_AVATAR, &pixbuf,
+ EMPATHY_CONTACT_LIST_STORE_COL_PIXBUF_AVATAR_VISIBLE, &show_avatar,
+ EMPATHY_CONTACT_LIST_STORE_COL_IS_GROUP, &is_group,
+ EMPATHY_CONTACT_LIST_STORE_COL_IS_ACTIVE, &is_active,
-1);
g_object_set (cell,
gboolean show_status;
gtk_tree_model_get (model, iter,
- COL_IS_GROUP, &is_group,
- COL_IS_ACTIVE, &is_active,
- COL_STATUS_VISIBLE, &show_status,
+ EMPATHY_CONTACT_LIST_STORE_COL_IS_GROUP, &is_group,
+ EMPATHY_CONTACT_LIST_STORE_COL_IS_ACTIVE, &is_active,
+ EMPATHY_CONTACT_LIST_STORE_COL_STATUS_VISIBLE, &show_status,
-1);
g_object_set (cell,
gboolean is_active;
gtk_tree_model_get (model, iter,
- COL_IS_GROUP, &is_group,
- COL_IS_ACTIVE, &is_active,
+ EMPATHY_CONTACT_LIST_STORE_COL_IS_GROUP, &is_group,
+ EMPATHY_CONTACT_LIST_STORE_COL_IS_ACTIVE, &is_active,
-1);
if (gtk_tree_model_iter_has_child (model, iter)) {
gtk_tree_model_get_iter (model, &iter, path);
gtk_tree_path_free (path);
- gtk_tree_model_get (model, &iter, COL_CONTACT, &contact, -1);
+ gtk_tree_model_get (model, &iter,
+ EMPATHY_CONTACT_LIST_STORE_COL_CONTACT, &contact,
+ -1);
if (contact) {
menu = empathy_contact_list_view_get_contact_menu (view, contact);
model = gtk_tree_view_get_model (GTK_TREE_VIEW (view));
gtk_tree_model_get_iter (model, &iter, path);
- gtk_tree_model_get (model, &iter, COL_CONTACT, &contact, -1);
+ gtk_tree_model_get (model, &iter,
+ EMPATHY_CONTACT_LIST_STORE_COL_CONTACT, &contact,
+ -1);
if (contact) {
contact_list_view_action_activated (view, contact);
return;
}
- gtk_tree_model_get (model, &iter, COL_CONTACT, &contact, -1);
+ gtk_tree_model_get (model, &iter,
+ EMPATHY_CONTACT_LIST_STORE_COL_CONTACT, &contact,
+ -1);
if (contact) {
contact_list_view_voip_activated (view, contact);
model = gtk_tree_view_get_model (GTK_TREE_VIEW (view));
gtk_tree_model_get (model, iter,
- COL_NAME, &name,
+ EMPATHY_CONTACT_LIST_STORE_COL_NAME, &name,
-1);
expanded = GPOINTER_TO_INT (user_data);