[gtk/wip/ebassi/custom-layouts: 111/115] Port GtkIconView to GtkCustomLayout
- From: Emmanuele Bassi <ebassi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/wip/ebassi/custom-layouts: 111/115] Port GtkIconView to GtkCustomLayout
- Date: Mon, 8 Apr 2019 16:45:55 +0000 (UTC)
commit 8eb31af8135ea094fa3b868274688b531bb98161
Author: Emmanuele Bassi <ebassi gnome org>
Date: Mon Apr 8 12:06:32 2019 +0100
Port GtkIconView to GtkCustomLayout
gtk/gtkiconview.c | 19 ++++++++++++-------
1 file 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);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]