summaryrefslogtreecommitdiff
path: root/gtk/gtkgridview.c
diff options
context:
space:
mode:
authorBenjamin Otte <otte@redhat.com>2023-03-12 18:36:57 +0100
committerBenjamin Otte <otte@redhat.com>2023-03-23 04:45:03 +0100
commitccacf80f478cb34ba04d6fca5a292a8cb64fd1ae (patch)
treecc4bf811ff56c820a0070b05cc1fcf0bc7d1ae02 /gtk/gtkgridview.c
parent1f3a2734ebd9073f96d0170b4f30d863ced01518 (diff)
downloadgtk+-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.c17
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;