summaryrefslogtreecommitdiff
path: root/gtk/gtkcellview.c
diff options
context:
space:
mode:
authorOwen Taylor <otaylor@redhat.com>2004-03-02 18:56:10 +0000
committerOwen Taylor <otaylor@src.gnome.org>2004-03-02 18:56:10 +0000
commit1d64b555390554571c935d835855e07b160b077e (patch)
treed6919d83c7186e13a3e8edcacd641d10f935f6e2 /gtk/gtkcellview.c
parentde011a6d9c632b119a01bf7bede1d224daa66fa1 (diff)
downloadgtk+-1d64b555390554571c935d835855e07b160b077e.tar.gz
Always connect to the changed signals on the model, update the active item
Tue Mar 2 11:45:50 2004 Owen Taylor <otaylor@redhat.com> * gtk/gtkcombobox.c: Always connect to the changed signals on the model, update the active item as appropriate when rows are inserted/deleted/reordered, re-layout the menu on ::rows-reordered. * gtk/gtkcellview.c (gtk_cell_view_set_displayed_row): Allow %NULL for path to unset and leave no current path.
Diffstat (limited to 'gtk/gtkcellview.c')
-rw-r--r--gtk/gtkcellview.c22
1 files changed, 19 insertions, 3 deletions
diff --git a/gtk/gtkcellview.c b/gtk/gtkcellview.c
index d5a6e561f3..452d8d6ca0 100644
--- a/gtk/gtkcellview.c
+++ b/gtk/gtkcellview.c
@@ -877,19 +877,35 @@ gtk_cell_view_set_model (GtkCellView *cell_view,
g_object_ref (G_OBJECT (cell_view->priv->model));
}
+/**
+ * gtk_cell_view_set_displayed_row:
+ * @cell_view: a #GtkCellView
+ * @path: a #GtkTreePath or %NULL to unset.
+ *
+ * Sets the row of the model that is currently displayed
+ * by the #GtkCellView. If the path is unset, then the
+ * contents of the cellview "stick" at their last value;
+ * this is not normally a desired result, but may be
+ * a needed intermediate state if say, the model for
+ * the #GtkCellView becomes temporarily empty.
+ **/
void
gtk_cell_view_set_displayed_row (GtkCellView *cell_view,
GtkTreePath *path)
{
g_return_if_fail (GTK_IS_CELL_VIEW (cell_view));
g_return_if_fail (GTK_IS_TREE_MODEL (cell_view->priv->model));
- g_return_if_fail (path != NULL);
if (cell_view->priv->displayed_row)
gtk_tree_row_reference_free (cell_view->priv->displayed_row);
- cell_view->priv->displayed_row =
- gtk_tree_row_reference_new (cell_view->priv->model, path);
+ if (path)
+ {
+ cell_view->priv->displayed_row =
+ gtk_tree_row_reference_new (cell_view->priv->model, path);
+ }
+ else
+ cell_view->priv->displayed_row = NULL;
/* force resize and redraw */
gtk_widget_queue_resize (GTK_WIDGET (cell_view));