summaryrefslogtreecommitdiff
path: root/demos
diff options
context:
space:
mode:
authorTimm Bäder <mail@baedert.org>2016-10-22 16:06:14 +0200
committerTimm Bäder <mail@baedert.org>2016-10-22 19:05:47 +0200
commit9992a616efa47205ac16ed8be255eda5e7aadf6c (patch)
tree3879538642de33a77472bafe3e6e8afea3b3e343 /demos
parent6525b95e2502080c08b65317c910204c2b6125da (diff)
downloadgtk+-9992a616efa47205ac16ed8be255eda5e7aadf6c.tar.gz
widget: Use ::measure vfunc to measure size
Add a new ::measure vfunc similar to GtkCssGadget's that widget implementations have to override instead of the old get_preferred_width, get_preferred_height, get_preferred_width_for_height, get_preferred_height_for_width and get_preferred_height_and_baseline_for_width.
Diffstat (limited to 'demos')
-rw-r--r--demos/gtk-demo/offscreen_window.c43
-rw-r--r--demos/gtk-demo/offscreen_window2.c43
2 files changed, 38 insertions, 48 deletions
diff --git a/demos/gtk-demo/offscreen_window.c b/demos/gtk-demo/offscreen_window.c
index 9480025869..1affe04d1b 100644
--- a/demos/gtk-demo/offscreen_window.c
+++ b/demos/gtk-demo/offscreen_window.c
@@ -39,12 +39,13 @@ void gtk_rotated_bin_set_angle (GtkRotatedBin *bin,
static void gtk_rotated_bin_realize (GtkWidget *widget);
static void gtk_rotated_bin_unrealize (GtkWidget *widget);
-static void gtk_rotated_bin_get_preferred_width (GtkWidget *widget,
- gint *minimum,
- gint *natural);
-static void gtk_rotated_bin_get_preferred_height (GtkWidget *widget,
- gint *minimum,
- gint *natural);
+static void gtk_rotated_bin_measure (GtkWidget *widget,
+ GtkOrientation orientation,
+ int for_size,
+ int *minimum,
+ int *natural,
+ int *minimum_baseline,
+ int *natural_baseline);
static void gtk_rotated_bin_size_allocate (GtkWidget *widget,
GtkAllocation *allocation);
static gboolean gtk_rotated_bin_damage (GtkWidget *widget,
@@ -152,8 +153,7 @@ gtk_rotated_bin_class_init (GtkRotatedBinClass *klass)
widget_class->realize = gtk_rotated_bin_realize;
widget_class->unrealize = gtk_rotated_bin_unrealize;
- widget_class->get_preferred_width = gtk_rotated_bin_get_preferred_width;
- widget_class->get_preferred_height = gtk_rotated_bin_get_preferred_height;
+ widget_class->measure = gtk_rotated_bin_measure;
widget_class->size_allocate = gtk_rotated_bin_size_allocate;
widget_class->draw = gtk_rotated_bin_draw;
@@ -396,27 +396,22 @@ gtk_rotated_bin_size_request (GtkWidget *widget,
}
static void
-gtk_rotated_bin_get_preferred_width (GtkWidget *widget,
- gint *minimum,
- gint *natural)
+gtk_rotated_bin_measure (GtkWidget *widget,
+ GtkOrientation orientation,
+ int for_size,
+ int *minimum,
+ int *natural,
+ int *minimum_baseline,
+ int *natural_baseline)
{
GtkRequisition requisition;
gtk_rotated_bin_size_request (widget, &requisition);
- *minimum = *natural = requisition.width;
-}
-
-static void
-gtk_rotated_bin_get_preferred_height (GtkWidget *widget,
- gint *minimum,
- gint *natural)
-{
- GtkRequisition requisition;
-
- gtk_rotated_bin_size_request (widget, &requisition);
-
- *minimum = *natural = requisition.height;
+ if (orientation == GTK_ORIENTATION_HORIZONTAL)
+ *minimum = *natural = requisition.width;
+ else
+ *minimum = *natural = requisition.height;
}
static void
diff --git a/demos/gtk-demo/offscreen_window2.c b/demos/gtk-demo/offscreen_window2.c
index 06c4a0aa15..22bbe5237e 100644
--- a/demos/gtk-demo/offscreen_window2.c
+++ b/demos/gtk-demo/offscreen_window2.c
@@ -36,12 +36,13 @@ GtkWidget* gtk_mirror_bin_new (void);
static void gtk_mirror_bin_realize (GtkWidget *widget);
static void gtk_mirror_bin_unrealize (GtkWidget *widget);
-static void gtk_mirror_bin_get_preferred_width (GtkWidget *widget,
- gint *minimum,
- gint *natural);
-static void gtk_mirror_bin_get_preferred_height (GtkWidget *widget,
- gint *minimum,
- gint *natural);
+static void gtk_mirror_bin_measure (GtkWidget *widget,
+ GtkOrientation orientation,
+ int for_size,
+ int *minimum,
+ int *natural,
+ int *minimum_baseline,
+ int *natural_baseline);
static void gtk_mirror_bin_size_allocate (GtkWidget *widget,
GtkAllocation *allocation);
static gboolean gtk_mirror_bin_damage (GtkWidget *widget,
@@ -91,8 +92,7 @@ gtk_mirror_bin_class_init (GtkMirrorBinClass *klass)
widget_class->realize = gtk_mirror_bin_realize;
widget_class->unrealize = gtk_mirror_bin_unrealize;
- widget_class->get_preferred_width = gtk_mirror_bin_get_preferred_width;
- widget_class->get_preferred_height = gtk_mirror_bin_get_preferred_height;
+ widget_class->measure = gtk_mirror_bin_measure;
widget_class->size_allocate = gtk_mirror_bin_size_allocate;
widget_class->draw = gtk_mirror_bin_draw;
@@ -320,27 +320,22 @@ gtk_mirror_bin_size_request (GtkWidget *widget,
}
static void
-gtk_mirror_bin_get_preferred_width (GtkWidget *widget,
- gint *minimum,
- gint *natural)
+gtk_mirror_bin_measure (GtkWidget *widget,
+ GtkOrientation orientation,
+ int for_size,
+ int *minimum,
+ int *natural,
+ int *minimum_baseline,
+ int *natural_baseline)
{
GtkRequisition requisition;
gtk_mirror_bin_size_request (widget, &requisition);
- *minimum = *natural = requisition.width;
-}
-
-static void
-gtk_mirror_bin_get_preferred_height (GtkWidget *widget,
- gint *minimum,
- gint *natural)
-{
- GtkRequisition requisition;
-
- gtk_mirror_bin_size_request (widget, &requisition);
-
- *minimum = *natural = requisition.height;
+ if (orientation == GTK_ORIENTATION_HORIZONTAL)
+ *minimum = *natural = requisition.width;
+ else
+ *minimum = *natural = requisition.height;
}
static void