diff options
author | Benjamin Otte <otte@redhat.com> | 2023-03-12 18:36:57 +0100 |
---|---|---|
committer | Benjamin Otte <otte@redhat.com> | 2023-03-23 04:45:03 +0100 |
commit | ccacf80f478cb34ba04d6fca5a292a8cb64fd1ae (patch) | |
tree | cc4bf811ff56c820a0070b05cc1fcf0bc7d1ae02 /gtk/gtkgridview.c | |
parent | 1f3a2734ebd9073f96d0170b4f30d863ced01518 (diff) | |
download | gtk+-ccacf80f478cb34ba04d6fca5a292a8cb64fd1ae.tar.gz |
listitemmanager: Create widgets via vfunc
We now have listitemmanager just create GtkListItemBase objects via
vfunc and use them.
Diffstat (limited to 'gtk/gtkgridview.c')
-rw-r--r-- | gtk/gtkgridview.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/gtk/gtkgridview.c b/gtk/gtkgridview.c index 76f2e26e00..b03076bb8f 100644 --- a/gtk/gtkgridview.c +++ b/gtk/gtkgridview.c @@ -25,6 +25,7 @@ #include "gtklistbaseprivate.h" #include "gtklistitemfactory.h" #include "gtklistitemmanagerprivate.h" +#include "gtklistitemwidgetprivate.h" #include "gtkmain.h" #include "gtkprivate.h" #include "gtksingleselection.h" @@ -255,6 +256,19 @@ gtk_grid_view_split (GtkListBase *base, return split; } +static GtkListItemBase * +gtk_grid_view_create_list_widget (GtkListBase *base) +{ + GtkGridView *self = GTK_GRID_VIEW (base); + GtkWidget *result; + + result = gtk_list_item_widget_new (gtk_list_item_manager_get_factory (self->item_manager), + "child", + GTK_ACCESSIBLE_ROLE_GRID_CELL); + + return GTK_LIST_ITEM_BASE (result); +} + static gboolean gtk_grid_view_get_allocation (GtkListBase *base, guint pos, @@ -954,9 +968,8 @@ gtk_grid_view_class_init (GtkGridViewClass *klass) GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); GObjectClass *gobject_class = G_OBJECT_CLASS (klass); - list_base_class->list_item_name = "child"; - list_base_class->list_item_role = GTK_ACCESSIBLE_ROLE_GRID_CELL; list_base_class->split = gtk_grid_view_split; + list_base_class->create_list_widget = gtk_grid_view_create_list_widget; list_base_class->get_allocation = gtk_grid_view_get_allocation; list_base_class->get_items_in_rect = gtk_grid_view_get_items_in_rect; list_base_class->get_position_from_allocation = gtk_grid_view_get_position_from_allocation; |