comparison finch/libgnt/gnttree.c @ 18564:36257cac2b11

Anoter patch from Javeed Shaikh to introduce a utility function for a tree. I changed it a bit, but hopefully I didn't break the patch in the process.
author Sadrul Habib Chowdhury <imadil@gmail.com>
date Thu, 19 Jul 2007 21:34:35 +0000
parents dba4edbde4a7
children 3c634117a7ef
comparison
equal deleted inserted replaced
18563:dba4edbde4a7 18564:36257cac2b11
1361 if (tree->current) 1361 if (tree->current)
1362 return update_row_text(tree, tree->current); 1362 return update_row_text(tree, tree->current);
1363 return NULL; 1363 return NULL;
1364 } 1364 }
1365 1365
1366 GList *gnt_tree_get_row_text_list(GntTree *tree, gpointer key)
1367 {
1368 GList *list = NULL, *iter;
1369 GntTreeRow *row = key ? g_hash_table_lookup(tree->hash, key) : tree->current;
1370 int i;
1371
1372 if (!row)
1373 return NULL;
1374
1375 for (i = 0, iter = row->columns; i < tree->ncol && iter;
1376 i++, iter = iter->next)
1377 {
1378 GntTreeCol *col = iter->data;
1379 list = g_list_append(list, BINARY_DATA(tree, i) ? col->text : g_strdup(col->text));
1380 }
1381
1382 return list;
1383 }
1384
1366 GList *gnt_tree_get_selection_text_list(GntTree *tree) 1385 GList *gnt_tree_get_selection_text_list(GntTree *tree)
1367 { 1386 {
1368 GList *list = NULL, *iter; 1387 return gnt_tree_get_row_text_list(tree, NULL);
1369 int i;
1370
1371 if (!tree->current)
1372 return NULL;
1373
1374 for (i = 0, iter = tree->current->columns; i < tree->ncol && iter;
1375 i++, iter = iter->next)
1376 {
1377 GntTreeCol *col = iter->data;
1378 list = g_list_append(list, g_strdup(col->text));
1379 }
1380
1381 return list;
1382 } 1388 }
1383 1389
1384 void gnt_tree_remove(GntTree *tree, gpointer key) 1390 void gnt_tree_remove(GntTree *tree, gpointer key)
1385 { 1391 {
1386 GntTreeRow *row = g_hash_table_lookup(tree->hash, key); 1392 GntTreeRow *row = g_hash_table_lookup(tree->hash, key);