static void remove_row(GtkTreeRowReference *ref, GtkTreeModel *model) { GtkTreeIter iter; GtkTreePath *path; int *i; path = gtk_tree_row_reference_get_path(ref); gtk_tree_model_get_iter(model, &iter, path); i = gtk_tree_path_get_indices(path); list_delete_entry(i[0]); gtk_list_store_remove(GTK_LIST_STORE(model), &iter); }
//delete node with end smaller than seq void delete_node_before_seq(struct list_head *list, uint32_t seq) { struct list_head *pos; list_for_each(pos, list) { struct range_t *range = list_entry(pos, struct range_t, list); if(range->end <= seq){ FREE(range); list_delete_entry(pos); } if(range->begin >= seq) break; } }
/* ==================================================================== Delete the current entry if not tail or head. This is the entry that contains the last returned item by list_next/prev(). Return Value: True if it was a valid deleteable entry. ==================================================================== */ int list_delete_current( List *list ) { if ( list->cur_entry == 0 || list->cur_entry == &list->head || list->cur_entry == &list->tail ) return 0; list_delete_entry( list, list->cur_entry ); return 1; }