interactive: Remove test-project

The test-project test case was an old test that was barely working after
landing the size allocation API in Clutter 0.8. It has never been fixed,
and it's been of relative use ever since.
This commit is contained in:
Emmanuele Bassi 2010-12-16 15:10:27 +00:00
parent 8ae47eb79c
commit 1515a9f989
2 changed files with 0 additions and 230 deletions

View File

@ -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 \

View File

@ -1,229 +0,0 @@
#include <clutter/clutter.h>
#include <stdio.h>
#include <stdlib.h>
#include <gmodule.h>
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;
}