diff --git a/tests/interactive/Makefile.am b/tests/interactive/Makefile.am index 3c8595a1d..69ed137a7 100644 --- a/tests/interactive/Makefile.am +++ b/tests/interactive/Makefile.am @@ -9,7 +9,6 @@ UNIT_TESTS = \ test-actors.c \ test-actor-clone.c \ test-behave.c \ - test-project.c \ test-rotate.c \ test-depth.c \ test-threads.c \ diff --git a/tests/interactive/test-project.c b/tests/interactive/test-project.c deleted file mode 100644 index 29bc047e6..000000000 --- a/tests/interactive/test-project.c +++ /dev/null @@ -1,229 +0,0 @@ -#include -#include -#include -#include - -static ClutterActor *main_stage, *rect, *p[5]; - -static void -init_handles (void) -{ - gint i; - ClutterVertex v[4]; - ClutterVertex v1, v2; - ClutterColor blue = { 0, 0, 0xff, 0xff }; - - clutter_actor_get_abs_allocation_vertices (rect, v); - for (i = 0; i < 4; ++i) - { - p[i] = clutter_rectangle_new_with_color (&blue); - clutter_actor_set_size (p[i], 5, 5); - clutter_actor_set_position (p[i], 0, 0); - clutter_group_add (CLUTTER_GROUP (main_stage), p[i]); - - clutter_actor_set_position (p[i], - v[i].x - clutter_actor_get_width (p[i]) / 2, - v[i].y - clutter_actor_get_height (p[i]) / 2); - - clutter_actor_raise_top (p[i]); - - clutter_actor_show (p[i]); - } - - v1.x = clutter_actor_get_width (rect) / 2; - v1.y = clutter_actor_get_height (rect) / 2; - v1.z = 0; - - clutter_actor_apply_transform_to_point (rect, &v1, &v2); - p[4] = clutter_rectangle_new_with_color (&blue); - clutter_actor_set_size (p[4], 5, 5); - clutter_actor_set_position (p[4], 0, 0); - clutter_group_add (CLUTTER_GROUP (main_stage), p[4]); - clutter_actor_set_position (p[4], - v2.x - clutter_actor_get_width (p[4]) / 2, - v2.y - clutter_actor_get_height (p[4]) / 2); - - clutter_actor_raise_top (p[4]); - - clutter_actor_show (p[4]); -} - -static void -place_handles (void) -{ - gint i; - ClutterVertex v[4]; - ClutterVertex v1, v2; - - clutter_actor_get_abs_allocation_vertices (rect, v); - for (i = 0; i < 4; ++i) - { - clutter_actor_set_position (p[i], - v[i].x - clutter_actor_get_width (p[i])/2, - v[i].y - clutter_actor_get_height (p[i])/2); - } - - v1.x = clutter_actor_get_width (rect) / 2; - v1.y = clutter_actor_get_height (rect) / 2; - v1.z = 0; - - clutter_actor_apply_transform_to_point (rect, &v1, &v2); - clutter_actor_set_position (p[4], - v2.x - clutter_actor_get_width (p[4])/2, - v2.y - clutter_actor_get_height (p[4])/2); -} - -#define M(m,row,col) (m)[col*4+row] - -static gint -find_handle_index (ClutterActor * a) -{ - gint i; - for (i = 0; i < sizeof(p)/sizeof(p[0]); ++i) - if (p[i] == a) - return i; - - return -1; -} - -static gboolean -on_event (ClutterStage *stage, - ClutterEvent *event, - gpointer user_data) -{ - static ClutterActor * dragging = NULL; - - switch (event->type) - { - case CLUTTER_BUTTON_PRESS: - { - ClutterActor *actor; - gfloat x, y; - - clutter_event_get_coords (event, &x, &y); - - actor = clutter_stage_get_actor_at_pos (stage, - CLUTTER_PICK_ALL, - x, y); - - if (actor != CLUTTER_ACTOR (stage)) - { - if (actor != rect) - dragging = actor; - } - } - break; - - case CLUTTER_MOTION: - { - if (dragging) - { - ClutterActorBox box1, box2; - gfloat x, y; - gfloat xp, yp; - gint i; - - i = find_handle_index (dragging); - - if (i < 0) - break; - - clutter_event_get_coords (event, &x, &y); - - clutter_actor_get_allocation_box (dragging, &box1); - clutter_actor_get_allocation_box (rect, &box2); - - xp = (x - 3) - box1.x1; - yp = (y - 3) - box1.y1; - - if (i == 4) - { - g_debug ("moving box by %f, %f", xp, yp); - clutter_actor_move_by (rect, xp, yp); - } - else - { - g_debug ("adjusting box by %f, %f, handle %d", xp, yp, i); - - switch (i) - { - case 0: - box2.x1 += xp; - box2.y1 += yp; - break; - case 1: - box2.x2 += xp; - box2.y1 += yp; - break; - case 2: - box2.x1 += xp; - box2.y2 += yp; - break; - case 3: - box2.x2 += xp; - box2.y2 += yp; - break; - } - - /* FIXME this is just plain wrong, to allocate directly - * like this - */ - clutter_actor_allocate (rect, &box2, TRUE); - } - - place_handles (); - } - } - break; - - case CLUTTER_BUTTON_RELEASE: - { - dragging = NULL; - } - break; - - default: - break; - } - - return FALSE; -} - - -G_MODULE_EXPORT int -test_project_main (int argc, char *argv[]) -{ - ClutterActor *label; - - ClutterColor stage_color = { 0x0, 0x0, 0x0, 0xff }, - white = { 0xff, 0xff, 0xff, 0xff }; - - clutter_init (&argc, &argv); - - main_stage = clutter_stage_get_default (); - - clutter_stage_set_color (CLUTTER_STAGE (main_stage), &stage_color); - clutter_actor_set_size (main_stage, 640, 480); - - rect = clutter_rectangle_new_with_color (&white); - clutter_actor_set_size (rect, 320, 240); - clutter_actor_set_position (rect, 180, 120); - clutter_actor_set_rotation (rect, CLUTTER_Y_AXIS, 60, 0, 0, 0); - clutter_group_add (CLUTTER_GROUP (main_stage), rect); - - label = clutter_text_new_with_text ("Mono 8pt", "Drag the blue rectangles"); - clutter_text_set_color (CLUTTER_TEXT (label), &white); - - clutter_actor_set_position (label, 10, 10); - clutter_group_add (CLUTTER_GROUP (main_stage), label); - - clutter_actor_show_all (main_stage); - - g_signal_connect (main_stage, "event", G_CALLBACK (on_event), NULL); - - init_handles (); - - clutter_main(); - - return EXIT_SUCCESS; -}