[gtk/wip/baedert/transforms6: 50/61] testwidgettransforms: Set transformation in size_allocate
- From: Timm Bäder <baedert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/wip/baedert/transforms6: 50/61] testwidgettransforms: Set transformation in size_allocate
- Date: Wed, 23 Jan 2019 16:54:52 +0000 (UTC)
commit 45a98597070a235fbaf28d7e53cf0e7169d37508
Author: Timm Bäder <mail baedert org>
Date: Thu Nov 29 10:39:28 2018 +0100
testwidgettransforms: Set transformation in size_allocate
tests/testwidgettransforms.c | 90 +++++++++++++++++---------------------------
1 file changed, 34 insertions(+), 56 deletions(-)
---
diff --git a/tests/testwidgettransforms.c b/tests/testwidgettransforms.c
index 1da36cc7b8..fe5e182353 100644
--- a/tests/testwidgettransforms.c
+++ b/tests/testwidgettransforms.c
@@ -106,8 +106,30 @@ gtk_transform_tester_size_allocate (GtkWidget *widget,
int baseline)
{
GtkTransformTester *self = (GtkTransformTester *)widget;
+ int w, h;
- gtk_widget_size_allocate (self->test_widget, &(GtkAllocation){ 0, 0, width, height }, -1);
+ if (!self->test_widget)
+ return;
+
+ scale += 2.5f;
+
+ gtk_widget_measure (self->test_widget, GTK_ORIENTATION_HORIZONTAL, -1,
+ &w, NULL, NULL, NULL);
+ gtk_widget_measure (self->test_widget, GTK_ORIENTATION_VERTICAL, w,
+ &h, NULL, NULL, NULL);
+
+ graphene_matrix_init_identity (&global_transform);
+ graphene_matrix_translate (&global_transform, &(graphene_point3d_t){ -w/2.0f, -h/2.0f, 0});
+
+ graphene_matrix_rotate (&global_transform, scale,
+ graphene_vec3_z_axis ());
+
+ graphene_matrix_translate (&global_transform, &(graphene_point3d_t){ width / 2.0f, height / 2.0f, 0});
+
+ gtk_widget_size_allocate_transformed (self->test_widget,
+ w, h,
+ -1,
+ &global_transform);
}
static void
@@ -234,6 +256,16 @@ gtk_transform_tester_class_init (GtkTransformTesterClass *klass)
gtk_widget_class_set_css_name (widget_class, "test");
}
+static gboolean
+tick_cb (GtkWidget *widget,
+ GdkFrameClock *frame_clock,
+ gpointer user_data)
+{
+ gtk_widget_queue_allocate (widget);
+
+ return G_SOURCE_CONTINUE;
+}
+
static void
gtk_transform_tester_set_test_widget (GtkTransformTester *self,
GtkWidget *test_widget)
@@ -242,60 +274,8 @@ gtk_transform_tester_set_test_widget (GtkTransformTester *self,
self->test_widget = test_widget;
gtk_widget_set_parent (test_widget, (GtkWidget *)self);
-}
-
-static gboolean
-transform_func (gpointer user_data)
-{
- GtkAllocation alloc;
-
- scale += 2.5f;
- gtk_widget_get_allocation (test_widget, &alloc);
-
- graphene_matrix_init_identity (&global_transform);
- graphene_matrix_translate (&global_transform,
- &(graphene_point3d_t){
- /*- alloc.width,*/
- /*0,*/
- - alloc.width / 2,
- - alloc.height / 2,
- 0}
- );
-
- graphene_matrix_rotate (&global_transform, scale,
- graphene_vec3_z_axis ());
-
- graphene_matrix_translate (&global_transform,
- &(graphene_point3d_t){
- alloc.width / 2,
- alloc.height /2,
- 0}
- );
-
- /*graphene_matrix_init_scale (&global_transform, 2, 2, 1);*/
-
-
- gtk_widget_set_transform (test_widget, &global_transform);
-
-
-
-
-
- /*graphene_matrix_init_scale (&global_transform, 0.5, 1, 1);*/
- /*graphene_matrix_translate (&global_transform,*/
- /*&(graphene_point3d_t){*/
- /*alloc.width / 2, 0, 0*/
- /*});*/
-
-
-
- /*gtk_widget_set_transform (test_child, &global_transform);*/
-
-
- gtk_widget_queue_draw (test_widget);
-
- return G_SOURCE_CONTINUE;
+ gtk_widget_add_tick_callback (GTK_WIDGET (self), tick_cb, NULL, NULL);
}
static void
@@ -354,8 +334,6 @@ main (int argc, char **argv)
gtk_transform_tester_set_test_widget (GTK_TRANSFORM_TESTER (transform_tester), test_widget);
- g_timeout_add (16, transform_func, NULL);
-
gtk_widget_set_vexpand (transform_tester, TRUE);
gtk_container_add (GTK_CONTAINER (box), transform_tester);
gtk_container_add (GTK_CONTAINER (box), matrix_chooser);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]