summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmmanuele Bassi <ebassi@gnome.org>2019-04-08 12:06:32 +0100
committerEmmanuele Bassi <ebassi@gnome.org>2019-04-08 17:44:55 +0100
commit8eb31af8135ea094fa3b868274688b531bb98161 (patch)
tree5381dcc194a553896176f1ae08c2d5fbac401b96
parentf963d7d7fe174adaf79e01e803bdca472a3a605d (diff)
downloadgtk+-8eb31af8135ea094fa3b868274688b531bb98161.tar.gz
Port GtkIconView to GtkCustomLayout
-rw-r--r--gtk/gtkiconview.c19
1 files changed, 12 insertions, 7 deletions
diff --git a/gtk/gtkiconview.c b/gtk/gtkiconview.c
index 06d1240fb4..6212f76cbf 100644
--- a/gtk/gtkiconview.c
+++ b/gtk/gtkiconview.c
@@ -30,6 +30,7 @@
#include "gtkcellrenderertext.h"
#include "gtkcombobox.h"
#include "gtkcssnodeprivate.h"
+#include "gtkcustomlayout.h"
#include "gtkdnd.h"
#include "gtkdragdest.h"
#include "gtkdragsource.h"
@@ -153,7 +154,7 @@ static void gtk_icon_view_measure (GtkWidget *widget,
int *natural,
int *minimum_baseline,
int *natural_baseline);
-static void gtk_icon_view_size_allocate (GtkWidget *widget,
+static void gtk_icon_view_allocate (GtkWidget *widget,
int width,
int height,
int baseline);
@@ -356,8 +357,6 @@ gtk_icon_view_class_init (GtkIconViewClass *klass)
widget_class->destroy = gtk_icon_view_destroy;
widget_class->get_request_mode = gtk_icon_view_get_request_mode;
- widget_class->measure = gtk_icon_view_measure;
- widget_class->size_allocate = gtk_icon_view_size_allocate;
widget_class->snapshot = gtk_icon_view_snapshot;
widget_class->drag_begin = gtk_icon_view_drag_begin;
widget_class->drag_end = gtk_icon_view_drag_end;
@@ -917,6 +916,7 @@ static void
gtk_icon_view_init (GtkIconView *icon_view)
{
GtkEventController *controller;
+ GtkLayoutManager *layout;
GtkGesture *gesture;
icon_view->priv = gtk_icon_view_get_instance_private (icon_view);
@@ -977,6 +977,11 @@ gtk_icon_view_init (GtkIconView *icon_view)
g_signal_connect (controller, "key-pressed", G_CALLBACK (gtk_icon_view_key_pressed),
icon_view);
gtk_widget_add_controller (GTK_WIDGET (icon_view), controller);
+
+ layout = gtk_custom_layout_new (gtk_icon_view_get_request_mode,
+ gtk_icon_view_measure,
+ gtk_icon_view_allocate);
+ gtk_widget_set_layout_manager (GTK_WIDGET (icon_view), layout);
}
/* GObject methods */
@@ -1620,10 +1625,10 @@ gtk_icon_view_allocate_children (GtkIconView *icon_view)
}
static void
-gtk_icon_view_size_allocate (GtkWidget *widget,
- int width,
- int height,
- int baseline)
+gtk_icon_view_allocate (GtkWidget *widget,
+ int width,
+ int height,
+ int baseline)
{
GtkIconView *icon_view = GTK_ICON_VIEW (widget);