From cc7f4fdedabdc386093255e3a306dcad1125f554 Mon Sep 17 00:00:00 2001 From: Kristian Rietveld Date: Mon, 26 Jun 2006 15:49:43 +0000 Subject: Make the insert and set functions somewhat more convenient. (#343841, 2006-06-26 Kristian Rietveld Make the insert and set functions somewhat more convenient. (#343841, David Necas). * gtk/gtkliststore.c (gtk_list_store_insert_with_values): allow a NULL iter, (gtk_list_store_insert_with_valuesv): likewise. * gtk/gtktreestore.c (gtk_tree_store_insert_with_values): ditto, (gtk_tree_store_insert_with_valuesv): likewise. --- gtk/gtkliststore.c | 14 ++++++++++---- gtk/gtktreestore.c | 16 ++++++++++++---- 2 files changed, 22 insertions(+), 8 deletions(-) (limited to 'gtk') diff --git a/gtk/gtkliststore.c b/gtk/gtkliststore.c index 5d02b677d5..503a1e61b4 100644 --- a/gtk/gtkliststore.c +++ b/gtk/gtkliststore.c @@ -1777,7 +1777,7 @@ gtk_list_store_has_default_sort_func (GtkTreeSortable *sortable) /** * gtk_list_store_insert_with_values: * @list_store: A #GtkListStore - * @iter: An unset #GtkTreeIter to set to the new row + * @iter: An unset #GtkTreeIter to set to the new row, or %NULL. * @position: position to insert the new row * @Varargs: pairs of column number and value, terminated with -1 * @@ -1811,6 +1811,7 @@ gtk_list_store_insert_with_values (GtkListStore *list_store, GtkTreePath *path; GtkSequence *seq; GtkSequencePtr ptr; + GtkTreeIter tmp_iter; gint length; gboolean changed = FALSE; gboolean maybe_need_sort = FALSE; @@ -1818,7 +1819,9 @@ gtk_list_store_insert_with_values (GtkListStore *list_store, /* FIXME: refactor to reduce overlap with gtk_list_store_set() */ g_return_if_fail (GTK_IS_LIST_STORE (list_store)); - g_return_if_fail (iter != NULL); + + if (!iter) + iter = &tmp_iter; list_store->columns_dirty = TRUE; @@ -1860,7 +1863,7 @@ gtk_list_store_insert_with_values (GtkListStore *list_store, /** * gtk_list_store_insert_with_valuesv: * @list_store: A #GtkListStore - * @iter: An unset #GtkTreeIter to set to the new row + * @iter: An unset #GtkTreeIter to set to the new row, or %NULL. * @position: position to insert the new row * @columns: an array of column numbers * @values: an array of GValues @@ -1884,6 +1887,7 @@ gtk_list_store_insert_with_valuesv (GtkListStore *list_store, GtkTreePath *path; GtkSequence *seq; GtkSequencePtr ptr; + GtkTreeIter tmp_iter; gint length; gboolean changed = FALSE; gboolean maybe_need_sort = FALSE; @@ -1894,7 +1898,9 @@ gtk_list_store_insert_with_valuesv (GtkListStore *list_store, * gtk_list_store_insert_with_values() */ g_return_if_fail (GTK_IS_LIST_STORE (list_store)); - g_return_if_fail (iter != NULL); + + if (!iter) + iter = &tmp_iter; list_store->columns_dirty = TRUE; diff --git a/gtk/gtktreestore.c b/gtk/gtktreestore.c index 03dd170a31..f13c5ec74a 100644 --- a/gtk/gtktreestore.c +++ b/gtk/gtktreestore.c @@ -1277,7 +1277,7 @@ gtk_tree_store_insert_after (GtkTreeStore *tree_store, /** * gtk_tree_store_insert_with_values: * @tree_store: A #GtkTreeStore - * @iter: An unset #GtkTreeIter to set the new row + * @iter: An unset #GtkTreeIter to set the new row, or %NULL. * @parent: A valid #GtkTreeIter, or %NULL * @position: position to insert the new row * @Varargs: pairs of column number and value, terminated with -1 @@ -1313,12 +1313,16 @@ gtk_tree_store_insert_with_values (GtkTreeStore *tree_store, GtkTreePath *path; GNode *parent_node; GNode *new_node; + GtkTreeIter tmp_iter; va_list var_args; gboolean changed = FALSE; gboolean maybe_need_sort = FALSE; g_return_if_fail (GTK_IS_TREE_STORE (tree_store)); - g_return_if_fail (iter != NULL); + + if (!iter) + iter = &tmp_iter; + if (parent) g_return_if_fail (VALID_ITER (parent, tree_store)); @@ -1364,7 +1368,7 @@ gtk_tree_store_insert_with_values (GtkTreeStore *tree_store, /** * gtk_tree_store_insert_with_valuesv: * @tree_store: A #GtkTreeStore - * @iter: An unset #GtkTreeIter to set the new row + * @iter: An unset #GtkTreeIter to set the new row, or %NULL. * @parent: A valid #GtkTreeIter, or %NULL * @position: position to insert the new row * @columns: an array of column numbers @@ -1389,13 +1393,17 @@ gtk_tree_store_insert_with_valuesv (GtkTreeStore *tree_store, GtkTreePath *path; GNode *parent_node; GNode *new_node; + GtkTreeIter tmp_iter; gboolean changed = FALSE; gboolean maybe_need_sort = FALSE; GtkTreeIterCompareFunc func = NULL; gint i; g_return_if_fail (GTK_IS_TREE_STORE (tree_store)); - g_return_if_fail (iter != NULL); + + if (!iter) + iter = &tmp_iter; + if (parent) g_return_if_fail (VALID_ITER (parent, tree_store)); -- cgit v1.2.1