summaryrefslogtreecommitdiff
path: root/gtk/gtkctree.c
diff options
context:
space:
mode:
authorFederico Mena Quintero <federico@nuclecu.unam.mx>1998-08-03 19:50:23 +0000
committerArturo Espinosa <unammx@src.gnome.org>1998-08-03 19:50:23 +0000
commitf8a40e214a534f7c54fc41c3615df78a67cd3c63 (patch)
tree631322e6507dcad01cddad73e943c295c578f7cd /gtk/gtkctree.c
parent08d246be8908f4e3727df0a30995a36925be365f (diff)
downloadgtk+-f8a40e214a534f7c54fc41c3615df78a67cd3c63.tar.gz
New public function to find a row by its data pointer using a custom
1998-08-03 Federico Mena Quintero <federico@nuclecu.unam.mx> * gtk/gtkctree.c (gtk_ctree_find_by_row_data_custom): New public function to find a row by its data pointer using a custom comparison function.
Diffstat (limited to 'gtk/gtkctree.c')
-rw-r--r--gtk/gtkctree.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/gtk/gtkctree.c b/gtk/gtkctree.c
index 9cee1fd402..b36fb5e7cd 100644
--- a/gtk/gtkctree.c
+++ b/gtk/gtkctree.c
@@ -4077,6 +4077,27 @@ gtk_ctree_find_by_row_data (GtkCTree *ctree,
return NULL;
}
+GtkCTreeNode *
+gtk_ctree_find_by_row_data_custom (GtkCTree *ctree,
+ GtkCTreeNode *node,
+ gpointer data,
+ GCompareFunc func)
+{
+ GtkCTreeNode *work;
+
+ while (node)
+ {
+ if (!func (GTK_CTREE_ROW (node)->row.data, data))
+ return node;
+ if (GTK_CTREE_ROW (node)->children &&
+ (work = gtk_ctree_find_by_row_data_custom
+ (ctree, GTK_CTREE_ROW (node)->children, data, func)))
+ return work;
+ node = GTK_CTREE_ROW (node)->sibling;
+ }
+ return NULL;
+}
+
gboolean
gtk_ctree_is_hot_spot (GtkCTree *ctree,
gint x,