From 8e4966de6a061349a5b8669e4f86a87da1efb19d Mon Sep 17 00:00:00 2001 From: Emmanuele Bassi Date: Thu, 4 Jun 2009 17:48:44 +0100 Subject: [PATCH 1/1] [examples] Use different sized stages The multi-stage example should use two stages with different stages. Also, we should show the ::allocation-changed signal. --- examples/gtk-clutter-multistage.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/examples/gtk-clutter-multistage.c b/examples/gtk-clutter-multistage.c index 95058a7..ef4623a 100644 --- a/examples/gtk-clutter-multistage.c +++ b/examples/gtk-clutter-multistage.c @@ -3,6 +3,17 @@ #include +static void +on_stage2_allocation_changed (ClutterActor *stage_2, + const ClutterActorBox *allocation, + ClutterAllocationFlags flags, + ClutterActor *texture_2) +{ + clutter_actor_set_position (texture_2, + (allocation->x2 - allocation->x1) / 2, + (allocation->y2 - allocation->y1) / 2); +} + int main (int argc, char *argv[]) { @@ -39,7 +50,7 @@ main (int argc, char *argv[]) gtk_container_add (GTK_CONTAINER (vbox), clutter1); clutter2 = gtk_clutter_embed_new (); - gtk_widget_set_size_request (clutter2, 320, 240); + gtk_widget_set_size_request (clutter2, 320, 120); stage2 = gtk_clutter_embed_get_stage (GTK_CLUTTER_EMBED (clutter2)); clutter_stage_set_color (CLUTTER_STAGE(stage2), &col2); tex2 = gtk_clutter_texture_new_from_icon_name (clutter1, @@ -48,11 +59,15 @@ main (int argc, char *argv[]) clutter_actor_set_anchor_point (tex2, clutter_actor_get_width (tex2) / 2, clutter_actor_get_height (tex2) / 2); - clutter_actor_set_position (tex2, 160, 120); + clutter_actor_set_position (tex2, 160, 60); clutter_stage_add (stage2, tex2); gtk_container_add (GTK_CONTAINER (vbox), clutter2); + g_signal_connect (stage2, "allocation-changed", + G_CALLBACK (on_stage2_allocation_changed), + tex2); + gtk_widget_show_all (window); clutter_actor_show_all (stage1); clutter_actor_show_all (stage2); -- 1.7.9.5