]> git.0d.be Git - empathy.git/commitdiff
individual-view: add API to define our own filter function
authorGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Fri, 6 May 2011 12:09:05 +0000 (14:09 +0200)
committerGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Wed, 18 May 2011 13:40:09 +0000 (15:40 +0200)
libempathy-gtk/empathy-individual-view.c
libempathy-gtk/empathy-individual-view.h

index fcbc93fa47ab69221f7f7030ac27ac84217ecb91..dbd8f336bcae67d5480c078177d839afb083d526 100644 (file)
@@ -88,6 +88,9 @@ typedef struct
   /* Distance between mouse pointer and the nearby border. Negative when
      scrolling updards.*/
   gint distance;
+
+  GtkTreeModelFilterVisibleFunc custom_filter;
+  gpointer custom_filter_data;
 } EmpathyIndividualViewPriv;
 
 typedef struct
@@ -1800,6 +1803,9 @@ individual_view_filter_visible_func (GtkTreeModel *model,
   gboolean visible, is_online;
   gboolean is_searching = TRUE;
 
+  if (priv->custom_filter != NULL)
+    return priv->custom_filter (model, iter, priv->custom_filter_data);
+
   if (priv->search_widget == NULL ||
       !gtk_widget_get_visible (priv->search_widget))
      is_searching = FALSE;
@@ -2843,3 +2849,14 @@ empathy_individual_view_start_search (EmpathyIndividualView *self)
   else
     gtk_widget_show (GTK_WIDGET (priv->search_widget));
 }
+
+void
+empathy_individual_view_set_custom_filter (EmpathyIndividualView *self,
+    GtkTreeModelFilterVisibleFunc filter,
+    gpointer data)
+{
+  EmpathyIndividualViewPriv *priv = GET_PRIV (self);
+
+  priv->custom_filter = filter;
+  priv->custom_filter_data = data;
+}
index bae7fbcba3a745de97a6166bf32972e55d31860b..ae94ed3d6d78a1c5c2980f2e93682aa0a9c6e3b0 100644 (file)
@@ -129,5 +129,9 @@ void empathy_individual_view_set_store (EmpathyIndividualView *self,
 
 void empathy_individual_view_start_search (EmpathyIndividualView *self);
 
+void empathy_individual_view_set_custom_filter (EmpathyIndividualView *self,
+    GtkTreeModelFilterVisibleFunc filter,
+    gpointer data);
+
 G_END_DECLS
 #endif /* __EMPATHY_INDIVIDUAL_VIEW_H__ */