summaryrefslogtreecommitdiff
path: root/gtk/gtklistbase.c
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2020-08-31 17:06:48 -0400
committerMatthias Clasen <mclasen@redhat.com>2020-08-31 17:15:05 -0400
commit8d79a32c50a6f40de935b845ae9529147a705fa3 (patch)
treef5a95adb30fb48dd1620f6edf9221fbb87182906 /gtk/gtklistbase.c
parentd2d8b748e9d5458b8dacaa7c875a1e8bf10884a4 (diff)
downloadgtk+-8d79a32c50a6f40de935b845ae9529147a705fa3.tar.gz
list widgets: Use selection models in the api
Change the apis in GtkListView, GtkColumnView and GtkGridView to be explicitly about GtkSelectionModel, to make it obvious that the widgets handle selection. Update all users.
Diffstat (limited to 'gtk/gtklistbase.c')
-rw-r--r--gtk/gtklistbase.c22
1 files changed, 6 insertions, 16 deletions
diff --git a/gtk/gtklistbase.c b/gtk/gtklistbase.c
index efc2ced6db..201bcb0844 100644
--- a/gtk/gtklistbase.c
+++ b/gtk/gtklistbase.c
@@ -56,7 +56,7 @@ typedef struct _GtkListBasePrivate GtkListBasePrivate;
struct _GtkListBasePrivate
{
GtkListItemManager *item_manager;
- GListModel *model;
+ GtkSelectionModel *model;
GtkOrientation orientation;
GtkAdjustment *adjustment[2];
GtkScrollablePolicy scroll_policy[2];
@@ -469,7 +469,7 @@ gtk_list_base_get_n_items (GtkListBase *self)
if (priv->model == NULL)
return 0;
- return g_list_model_get_n_items (priv->model);
+ return g_list_model_get_n_items (G_LIST_MODEL (priv->model));
}
guint
@@ -2102,7 +2102,7 @@ gtk_list_base_grab_focus_on_item (GtkListBase *self,
return TRUE;
}
-GListModel *
+GtkSelectionModel *
gtk_list_base_get_model (GtkListBase *self)
{
GtkListBasePrivate *priv = gtk_list_base_get_instance_private (self);
@@ -2111,8 +2111,8 @@ gtk_list_base_get_model (GtkListBase *self)
}
gboolean
-gtk_list_base_set_model (GtkListBase *self,
- GListModel *model)
+gtk_list_base_set_model (GtkListBase *self,
+ GtkSelectionModel *model)
{
GtkListBasePrivate *priv = gtk_list_base_get_instance_private (self);
@@ -2123,19 +2123,9 @@ gtk_list_base_set_model (GtkListBase *self,
if (model)
{
- GtkSelectionModel *selection_model;
-
priv->model = g_object_ref (model);
-
- if (GTK_IS_SELECTION_MODEL (model))
- selection_model = GTK_SELECTION_MODEL (g_object_ref (model));
- else
- selection_model = GTK_SELECTION_MODEL (gtk_single_selection_new (g_object_ref (model)));
-
- gtk_list_item_manager_set_model (priv->item_manager, selection_model);
+ gtk_list_item_manager_set_model (priv->item_manager, model);
gtk_list_base_set_anchor (self, 0, 0.0, GTK_PACK_START, 0.0, GTK_PACK_START);
-
- g_object_unref (selection_model);
}
else
{