diff --git a/ChangeLog b/ChangeLog index 9b442e91c..42230213c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2007-07-25 Tomas Frydrych + + * tests/test-rotate.c: + * tests/Makefile.am: + + Added test-rotate. + 2007-07-25 Emmanuele Bassi * clutter/clutter-behaviour-bspline.c: Kill off some deep pointer diff --git a/tests/Makefile.am b/tests/Makefile.am index b41ec990d..baba97b84 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -1,6 +1,6 @@ noinst_PROGRAMS = test-textures test-events test-offscreen test-scale \ test-actors test-behave test-text test-entry test-project \ - test-boxes test-perspective + test-boxes test-perspective test-rotate INCLUDES = -I$(top_srcdir)/ LDADD = $(top_builddir)/clutter/libclutter-@CLUTTER_FLAVOUR@-@CLUTTER_MAJORMINOR@.la @@ -11,12 +11,13 @@ test_textures_SOURCES = test-textures.c test_events_SOURCES = test-events.c test_offscreen_SOURCES = test-offscreen.c test_scale_SOURCES = test-scale.c -test_actors_SOURCES = test-actors.c +test_actors_SOURCES = test-actors.c test_behave_SOURCES = test-behave.c test_text_SOURCES = test-text.c test_entry_SOURCES = test-entry.c test_project_SOURCES = test-project.c test_boxes_SOURCES = test-boxes.c test_perspective_SOURCES = test-perspective.c +test_rotate_SOURCES = test-rotate.c EXTRA_DIST = redhand.png diff --git a/tests/test-rotate.c b/tests/test-rotate.c new file mode 100644 index 000000000..9b5297973 --- /dev/null +++ b/tests/test-rotate.c @@ -0,0 +1,78 @@ +#include +#include +#include + +#include + +#include + +int +main (int argc, char *argv[]) +{ + ClutterTimeline *timeline; + ClutterAlpha *alpha; + ClutterBehaviour *r_behave; + ClutterActor *stage; + ClutterActor *hand, *label; + ClutterColor stage_color = { 0xcc, 0xcc, 0xcc, 0xff }; + ClutterColor rect_bg_color = { 0x33, 0x22, 0x22, 0xff }; + ClutterColor rect_border_color = { 0, 0, 0, 0 }; + GdkPixbuf *pixbuf; + + clutter_init (&argc, &argv); + + stage = clutter_stage_get_default (); + + pixbuf = gdk_pixbuf_new_from_file ("redhand.png", NULL); + + if (!pixbuf) + g_error("pixbuf load failed"); + + clutter_stage_set_color (CLUTTER_STAGE (stage), + &stage_color); + + /* Make a hand */ + hand = clutter_texture_new_from_pixbuf (pixbuf); + clutter_actor_set_position (hand, 240, 140); + clutter_actor_show (hand); + clutter_container_add_actor (CLUTTER_CONTAINER (stage), hand); + + label = clutter_label_new_with_text ("Mono 16", + "The Wonder of the Spinning Hand\n\n "); + + clutter_actor_set_position (label, 150, 150); + clutter_actor_show (label); + clutter_container_add_actor (CLUTTER_CONTAINER (stage), label); + + /* Make a timeline */ + timeline = clutter_timeline_new (200, 26); /* num frames, fps */ + g_object_set (timeline, "loop", TRUE, 0); + + /* Set an alpha func to power behaviour - ramp is constant rise/fall */ + alpha = clutter_alpha_new_full (timeline, + CLUTTER_ALPHA_RAMP_INC, + NULL, NULL); + + /* Create a behaviour for that alpha */ + r_behave = clutter_behaviour_rotate_new (alpha, + CLUTTER_Z_AXIS, + CLUTTER_ROTATE_CW, + 0.0, 360.0); + + clutter_behaviour_rotate_set_center (r_behave, 86, 125, 0); + + /* Apply it to our actor */ + clutter_behaviour_apply (r_behave, hand); + clutter_behaviour_apply (r_behave, label); + + /* start the timeline and thus the animations */ + clutter_timeline_start (timeline); + + clutter_actor_show_all (stage); + + clutter_main(); + + g_object_unref (r_behave); + + return 0; +}