From 1c01554e6a06db0e6afc9a76deea99daa44f9fba Mon Sep 17 00:00:00 2001 From: Emmanuele Bassi Date: Tue, 24 Jan 2012 15:01:00 +0000 Subject: [PATCH] cookbook: Begin porting examples to the new API Start dropping the usage of deprecated classes and API. --- doc/cookbook/examples/actors-composite-main.c | 2 +- .../examples/animations-moving-animator.c | 43 ++++++++++--------- doc/cookbook/examples/cb-button.c | 6 +-- doc/cookbook/examples/events-buttons-click.c | 18 +++++--- doc/cookbook/examples/events-mouse-scroll.c | 6 +-- .../layouts-bind-constraint-allocation.c | 12 +++--- doc/cookbook/examples/layouts-box.c | 41 +++++++++--------- 7 files changed, 68 insertions(+), 60 deletions(-) diff --git a/doc/cookbook/examples/actors-composite-main.c b/doc/cookbook/examples/actors-composite-main.c index b9a8ea3ef..bcbe9358a 100644 --- a/doc/cookbook/examples/actors-composite-main.c +++ b/doc/cookbook/examples/actors-composite-main.c @@ -70,7 +70,7 @@ main (int argc, clutter_actor_add_constraint (button, align_x_constraint); clutter_actor_add_constraint (button, align_y_constraint); - clutter_container_add_actor (CLUTTER_CONTAINER (stage), button); + clutter_actor_add_child (stage, button); clutter_actor_show (stage); diff --git a/doc/cookbook/examples/animations-moving-animator.c b/doc/cookbook/examples/animations-moving-animator.c index b13d57c12..091e37e8c 100644 --- a/doc/cookbook/examples/animations-moving-animator.c +++ b/doc/cookbook/examples/animations-moving-animator.c @@ -17,11 +17,9 @@ static const ClutterColor blue_color = { 0x00, 0x00, 0xff, 0xff }; * to a random x position */ static void -add_keys_for_actor (ClutterActor *actor, - gpointer user_data) +add_keys_for_actor (ClutterActor *actor, + ClutterAnimator *animator) { - ClutterAnimator *animator = CLUTTER_ANIMATOR (user_data); - gfloat x, end_x; x = clutter_actor_get_x (actor); @@ -41,7 +39,8 @@ move_actors (ClutterActor *actor, ClutterEvent *event, gpointer user_data) { - State *state = (State *) user_data; + State *state = user_data; + ClutterActor *child; /* do nothing if the animator is already running */ if (clutter_timeline_is_playing (clutter_animator_get_timeline (state->animator))) @@ -51,9 +50,12 @@ move_actors (ClutterActor *actor, clutter_animator_remove_key (state->animator, NULL, NULL, -1); /* add keys for all actors in the group */ - clutter_container_foreach (CLUTTER_CONTAINER (state->group), - add_keys_for_actor, - state->animator); + for (child = clutter_actor_get_first_child (state->group); + child != NULL; + child = clutter_actor_get_next_sibling (child)) + { + add_keys_for_actor (child, state->animator); + } /* start the animation */ clutter_animator_start (state->animator); @@ -68,12 +70,13 @@ main (int argc, ClutterActor *red; ClutterActor *green; ClutterActor *blue; + State *state = g_new0 (State, 1); /* seed random number generator */ srand ((unsigned int) time (NULL)); -if (clutter_init (&argc, &argv) != CLUTTER_INIT_SUCCESS) + if (clutter_init (&argc, &argv) != CLUTTER_INIT_SUCCESS) return 1; state->animator = clutter_animator_new (); @@ -87,32 +90,32 @@ if (clutter_init (&argc, &argv) != CLUTTER_INIT_SUCCESS) G_CALLBACK (clutter_main_quit), NULL); - state->group = clutter_group_new (); + state->group = clutter_actor_new (); + clutter_actor_add_child (state->stage, state->group); - red = clutter_rectangle_new_with_color (&red_color); + red = clutter_actor_new (); + clutter_actor_set_background_color (red, &red_color); clutter_actor_set_size (red, 50, 50); clutter_actor_set_position (red, 50, 50); + clutter_actor_add_child (state->group, red); - green = clutter_rectangle_new_with_color (&green_color); + green = clutter_actor_new (); + clutter_actor_set_background_color (green, &green_color); clutter_actor_set_size (green, 50, 50); clutter_actor_set_position (green, 50, 150); + clutter_actor_add_child (state->group, green); - blue = clutter_rectangle_new_with_color (&blue_color); + blue = clutter_actor_new (); + clutter_actor_set_background_color (blue, &blue_color); clutter_actor_set_size (blue, 50, 50); clutter_actor_set_position (blue, 50, 250); + clutter_actor_add_child (state->group, blue); g_signal_connect (state->stage, "key-press-event", G_CALLBACK (move_actors), state); - clutter_container_add (CLUTTER_CONTAINER (state->group), - red, - green, - blue, - NULL); - clutter_container_add_actor (CLUTTER_CONTAINER (state->stage), state->group); - clutter_actor_show (state->stage); clutter_main (); diff --git a/doc/cookbook/examples/cb-button.c b/doc/cookbook/examples/cb-button.c index e02416c9c..6f1f0b98a 100644 --- a/doc/cookbook/examples/cb-button.c +++ b/doc/cookbook/examples/cb-button.c @@ -326,8 +326,7 @@ cb_button_init (CbButton *self) priv->child = clutter_box_new (layout); /* set the parent of the ClutterBox to this instance */ - clutter_actor_set_parent (priv->child, - CLUTTER_ACTOR (self)); + clutter_actor_add_child (CLUTTER_ACTOR (self), priv->child); /* add text label to the button; see the ClutterText API docs * for more information about available properties @@ -337,8 +336,7 @@ cb_button_init (CbButton *self) "ellipsize", PANGO_ELLIPSIZE_END, NULL); - clutter_container_add_actor (CLUTTER_CONTAINER (priv->child), - priv->label); + clutter_actor_add_child (priv->child, priv->label); /* add a ClutterClickAction on this actor, so we can proxy its * "clicked" signal into a signal from this actor diff --git a/doc/cookbook/examples/events-buttons-click.c b/doc/cookbook/examples/events-buttons-click.c index f94bc7938..07479d4e1 100644 --- a/doc/cookbook/examples/events-buttons-click.c +++ b/doc/cookbook/examples/events-buttons-click.c @@ -2,15 +2,15 @@ #include static const ClutterColor stage_color = { 0x33, 0x33, 0x55, 0xff }; -static const ClutterColor red_color = { 0xff, 0x00, 0x00, 0xff }; -static const ClutterColor blue_color = { 0x00, 0x00, 0xff, 0xff }; void clicked_cb (ClutterClickAction *action, ClutterActor *actor, gpointer user_data) { - g_debug ("Button %d clicked", clutter_click_action_get_button (action)); + g_print ("Pointer button %d clicked on actor %s\n", + clutter_click_action_get_button (action), + clutter_actor_get_name (actor)); } int @@ -31,15 +31,21 @@ main (int argc, clutter_stage_set_color (CLUTTER_STAGE (stage), &stage_color); g_signal_connect (stage, "destroy", G_CALLBACK (clutter_main_quit), NULL); - actor1 = clutter_rectangle_new_with_color (&red_color); + actor1 = clutter_actor_new (); + clutter_actor_set_name (actor1, "Red Button"); + clutter_actor_set_background_color (actor1, CLUTTER_COLOR_Red); clutter_actor_set_size (actor1, 100, 100); clutter_actor_set_reactive (actor1, TRUE); clutter_actor_set_position (actor1, 50, 150); + clutter_actor_add_child (stage, actor1); - actor2 = clutter_rectangle_new_with_color (&blue_color); + actor2 = clutter_actor_new (); + clutter_actor_set_name (actor2, "Blue Button"); + clutter_actor_set_background_color (actor2, CLUTTER_COLOR_Blue); clutter_actor_set_size (actor2, 100, 100); clutter_actor_set_position (actor2, 250, 150); clutter_actor_set_reactive (actor2, TRUE); + clutter_actor_add_child (stage, actor2); action1 = clutter_click_action_new (); clutter_actor_add_action (actor1, action1); @@ -47,8 +53,6 @@ main (int argc, action2 = clutter_click_action_new (); clutter_actor_add_action (actor2, action2); - clutter_container_add (CLUTTER_CONTAINER (stage), actor1, actor2, NULL); - g_signal_connect (action1, "clicked", G_CALLBACK (clicked_cb), diff --git a/doc/cookbook/examples/events-mouse-scroll.c b/doc/cookbook/examples/events-mouse-scroll.c index 07cc0cb99..e491c14de 100644 --- a/doc/cookbook/examples/events-mouse-scroll.c +++ b/doc/cookbook/examples/events-mouse-scroll.c @@ -96,7 +96,7 @@ main (int argc, char *argv[]) NULL); /* the viewport which the box is scrolled within */ - viewport = clutter_group_new (); + viewport = clutter_actor_new (); /* viewport is shorter than the stage */ clutter_actor_set_size (viewport, STAGE_WIDTH, STAGE_HEIGHT * 0.5); @@ -111,10 +111,10 @@ main (int argc, char *argv[]) clutter_actor_set_clip_to_allocation (viewport, TRUE); /* put the texture inside the viewport */ - clutter_container_add_actor (CLUTTER_CONTAINER (viewport), texture); + clutter_actor_add_child (viewport, texture); /* add the viewport to the stage */ - clutter_container_add_actor (CLUTTER_CONTAINER (stage), viewport); + clutter_actor_add_child (stage, viewport); g_signal_connect (viewport, "scroll-event", diff --git a/doc/cookbook/examples/layouts-bind-constraint-allocation.c b/doc/cookbook/examples/layouts-bind-constraint-allocation.c index a48733135..2bc690e9a 100644 --- a/doc/cookbook/examples/layouts-bind-constraint-allocation.c +++ b/doc/cookbook/examples/layouts-bind-constraint-allocation.c @@ -4,8 +4,6 @@ #define OVERLAY_FACTOR 1.1 static const ClutterColor stage_color = { 0x33, 0x33, 0x55, 0xff }; -static const ClutterColor red = { 0xff, 0x00, 0x00, 0xff }; -static const ClutterColor blue = { 0x00, 0x00, 0xff, 0x66 }; void allocation_changed_cb (ClutterActor *actor, @@ -43,18 +41,22 @@ main (int argc, char *argv[]) clutter_stage_set_color (CLUTTER_STAGE (stage), &stage_color); g_signal_connect (stage, "destroy", G_CALLBACK (clutter_main_quit), NULL); - actor = clutter_rectangle_new_with_color (&red); + actor = clutter_actor_new (); + clutter_actor_set_background_color (actor, CLUTTER_COLOR_Red); clutter_actor_set_size (actor, 100, 100); clutter_actor_set_position (actor, 150, 150); + clutter_actor_add_child (stage, actor); - overlay = clutter_rectangle_new_with_color (&blue); + overlay = clutter_actor_new (); + clutter_actor_set_background_color (overlay, CLUTTER_COLOR_Blue); + clutter_actor_set_opacity (overlay, 128); g_signal_connect (actor, "allocation-changed", G_CALLBACK (allocation_changed_cb), overlay); - clutter_container_add (CLUTTER_CONTAINER (stage), actor, overlay, NULL); + clutter_actor_add_child (stage, overlay); clutter_actor_animate (actor, CLUTTER_LINEAR, 2000, "width", 300.0, diff --git a/doc/cookbook/examples/layouts-box.c b/doc/cookbook/examples/layouts-box.c index 9b2b40b7c..cef41ed95 100644 --- a/doc/cookbook/examples/layouts-box.c +++ b/doc/cookbook/examples/layouts-box.c @@ -35,18 +35,20 @@ main (int argc, /* put 5px of spacing between actors */ clutter_box_layout_set_spacing (CLUTTER_BOX_LAYOUT (box_layout), 5); - /* actors are packed into this box; we set its width, but + /* actors are packed into this actor; we set its width, but * allow its height to be determined by the children it contains */ - box = clutter_box_new (box_layout); - clutter_box_set_color (CLUTTER_BOX (box), &box_color); + box = clutter_actor_new (); + clutter_actor_set_layout_manager (box, box_layout); + clutter_actor_set_background_color (box, CLUTTER_COLOR_White); clutter_actor_set_position (box, 100, 50); clutter_actor_set_width (box, 200); /* pack an actor into the layout and set all layout properties on it * at the same time */ - yellow = clutter_rectangle_new_with_color (&yellow_color); + yellow = clutter_actor_new (); + clutter_actor_set_background_color (yellow, CLUTTER_COLOR_Yellow); clutter_actor_set_size (yellow, 100, 100); clutter_box_layout_pack (CLUTTER_BOX_LAYOUT (box_layout), @@ -57,28 +59,27 @@ main (int argc, CLUTTER_BOX_ALIGNMENT_START, /* x-align */ CLUTTER_BOX_ALIGNMENT_START); /* y-align */ - /* pack an actor into the box and set layout properties at the - * same time; note this is more concise if you mostly want to - * use the default properties for the layout - */ - red = clutter_rectangle_new_with_color (&red_color); - clutter_actor_set_size (red, 100, 100); - - clutter_box_pack (CLUTTER_BOX (box), - red, - "x-fill", TRUE, - NULL); - /* add an actor to the box as a container and set layout properties * afterwards; the latter is useful if you want to change properties on * actors already inside a layout, but note that you have to * pass the function both the layout AND the container */ - blue = clutter_rectangle_new_with_color (&blue_color); + red = clutter_actor_new (); + clutter_actor_set_background_color (red, CLUTTER_COLOR_Red); + clutter_actor_set_size (red, 100, 100); + + clutter_actor_add_child (box, red); + clutter_layout_manager_child_set (box_layout, + CLUTTER_CONTAINER (box), + red, + "x-fill", TRUE, + NULL); + + blue = clutter_actor_new (); + clutter_actor_set_background_color (blue, CLUTTER_COLOR_Blue); clutter_actor_set_size (blue, 100, 100); - clutter_container_add_actor (CLUTTER_CONTAINER (box), blue); - + clutter_actor_add_child (box, blue); clutter_layout_manager_child_set (box_layout, CLUTTER_CONTAINER (box), blue, @@ -86,7 +87,7 @@ main (int argc, NULL); /* put the box on the stage */ - clutter_container_add_actor (CLUTTER_CONTAINER (stage), box); + clutter_actor_add_child (stage, box); clutter_actor_show (stage);