namespace
{
-const int MILLISECONDS_PER_SECOND = 1000;
const int RENDER_FRAME_INTERVAL = 16; ///< Duration of each frame in ms. (at approx 60FPS)
-const int RENDER_ANIMATION_TEST_DURATION_MS = 1000; ///< 1000ms to test animation
-const int RENDER_DELAY_SCROLL = 1000; ///< duration to wait for any scroll to complete.
/*
* Simulate time passed by.
static bool gOnScrollCompleteCalled; ///< Whether the OnScrollComplete signal was invoked.
static Vector3 gConstraintResult; ///< Result from constraint.
-static ActorContainer gPages; ///< Keeps track of all the pages for applying effects.
+static std::vector< Actor > gPages; ///< Keeps track of all the pages for applying effects.
+typedef std::vector< Actor >::iterator ActorIter;
static void ResetScrollCallbackResults()
{
*
* @param[in] position The current scroll position.
*/
-static void OnScrollStart( const Vector3& position )
+static void OnScrollStart( const Vector2& position )
{
gOnScrollStartCalled = true;
}
*
* @param[in] position The current scroll position.
*/
-static void OnScrollUpdate( const Vector3& position )
+static void OnScrollUpdate( const Vector2& position )
{
gOnScrollUpdateCalled = true;
}
*
* @param[in] position The current scroll position.
*/
-static void OnScrollComplete( const Vector3& position )
+static void OnScrollComplete( const Vector2& position )
{
gOnScrollCompleteCalled = true;
}
ScrollView SetupTestScrollView(int rows, int columns, Vector2 size)
{
+ Constraint constraint;
+
ScrollView scrollView = ScrollView::New();
scrollView.SetSize(size);
scrollView.SetAnchorPoint(AnchorPoint::CENTER);
scrollView.SetParentOrigin(ParentOrigin::CENTER);
- scrollView.ApplyConstraint( Constraint::New<Dali::Vector3>( Dali::Actor::SIZE, Dali::ParentSource( Dali::Actor::SIZE ), Dali::EqualToConstraint() ) );
+
+ constraint = Constraint::New<Dali::Vector3>( scrollView, Dali::Actor::Property::SIZE, Dali::EqualToConstraint() );
+ constraint.AddSource( Dali::ParentSource( Dali::Actor::Property::SIZE ) );
+ constraint.Apply();
+
scrollView.SetWrapMode(false);
scrollView.ScrollStartedSignal().Connect( &OnScrollStart );
scrollView.ScrollUpdatedSignal().Connect( &OnScrollUpdate );
container.SetAnchorPoint(AnchorPoint::CENTER);
container.SetSize( size );
scrollView.Add( container );
- container.ApplyConstraint( Constraint::New<Vector3>( Actor::SIZE, ParentSource( Actor::SIZE ), EqualToConstraint() ) );
+
+ constraint = Constraint::New<Vector3>( container, Actor::Property::SIZE, EqualToConstraint() );
+ constraint.AddSource( Dali::ParentSource( Dali::Actor::Property::SIZE ) );
+ constraint.Apply();
gPages.clear();
for(int row = 0;row<rows;row++)
for(int column = 0;column<columns;column++)
{
Actor page = Actor::New();
- page.ApplyConstraint( Constraint::New<Vector3>( Actor::SIZE, ParentSource( Actor::SIZE ), EqualToConstraint() ) );
+
+ constraint = Constraint::New<Vector3>( page, Actor::Property::SIZE, EqualToConstraint() );
+ constraint.AddSource( Dali::ParentSource( Dali::Actor::Property::SIZE ) );
+ constraint.Apply();
page.SetParentOrigin( ParentOrigin::CENTER );
page.SetAnchorPoint( AnchorPoint::CENTER );
page.SetPosition( column * size.x, row * size.y );
} // unnamed namespace
-
-int UtcDaliScrollViewCustomEffectSetup(void)
-{
- tet_infoline(" UtcDaliScrollViewCustomEffectSetup");
-
- ScrollViewCustomEffect effect;
-
- DALI_TEST_CHECK( !effect );
-
- BaseHandle handle = ScrollViewCustomEffect::New();
-
- DALI_TEST_CHECK( handle );
-
- effect = ScrollViewCustomEffect::DownCast(handle);
-
- DALI_TEST_CHECK( effect );
-
- END_TEST;
-}
-
-int UtcDaliScrollViewCubeEffectSetup(void)
-{
- tet_infoline(" UtcDaliScrollViewCubeEffectSetup");
-
- ScrollViewCubeEffect effect;
-
- DALI_TEST_CHECK( !effect );
-
- BaseHandle handle = ScrollViewCubeEffect::New();
-
- DALI_TEST_CHECK( handle );
-
- effect = ScrollViewCubeEffect::DownCast(handle);
-
- DALI_TEST_CHECK( effect );
- END_TEST;
-}
-
-int UtcDaliScrollViewSpiralEffectSetup(void)
+int UtcDaliScrollViewPagePathEffectSetup(void)
{
- tet_infoline(" UtcDaliScrollViewSpiralEffectSetup");
+ tet_infoline(" UtcDaliScrollViewPagePathEffectSetup");
- ScrollViewPageSpiralEffect effect;
+ ScrollViewPagePathEffect effect;
DALI_TEST_CHECK( !effect );
- BaseHandle handle = ScrollViewPageSpiralEffect::New();
+ BaseHandle handle = ScrollViewPagePathEffect::New(Dali::Path::New(), Vector3::ZERO,Toolkit::ScrollView::Property::SCROLL_FINAL_X, Vector3::ZERO,0);
DALI_TEST_CHECK( handle );
- effect = ScrollViewPageSpiralEffect::DownCast(handle);
+ effect = ScrollViewPagePathEffect::DownCast(handle);
DALI_TEST_CHECK( effect );
END_TEST;
}
-
-
-
-int UtcDaliScrollViewSlideEffectSetup(void)
-{
- tet_infoline(" UtcDaliScrollViewSlideEffectSetup");
-
- ScrollViewSlideEffect effect;
-
- DALI_TEST_CHECK( !effect );
-
- BaseHandle handle = ScrollViewSlideEffect::New();
-
- DALI_TEST_CHECK( handle );
-
- effect = ScrollViewSlideEffect::DownCast(handle);
-
- DALI_TEST_CHECK( effect );
- END_TEST;
-}
-
-int UtcDaliScrollViewCubeEffectTest(void)
+int UtcDaliScrollViewPagePathEffectTest(void)
{
ToolkitTestApplication application;
- tet_infoline(" UtcDaliScrollViewCubeEffectTest");
+ tet_infoline(" UtcDaliScrollViewPagePathEffectTest");
Vector2 size = Stage::GetCurrent().GetSize();
ScrollView scrollView = SetupTestScrollView(1, 3, size);
- Actor page = gPages[1];
+ Actor testPage = gPages[2];
Wait(application, 500);
- ScrollViewCubeEffect effect = ScrollViewCubeEffect::New();
- scrollView.ApplyEffect(effect);
-
- Actor actor = AddActorToPage(page, 0.5f, 0.5f, 3, 3);
- Wait(application);
- Vector3 actorPrePosition = actor.GetCurrentPosition();
-
- effect.ApplyToActor(actor, page, Vector3(-105.0f, 30.0f, -240.0f), Vector2(Math::PI * 0.5f, Math::PI * 0.5f), Vector2(0.25f, 0.25f) * size);
-
- Actor actor2 = AddActorToPage(page, 0.5f, 0.5f, 3, 3);
- effect.ApplyToActor(actor2, Vector3(-105.0f, 30.0f, -240.0f), Vector2(Math::PI * 0.5f, Math::PI * 0.5f), Vector2(0.25f, 0.25f) * size);
-
- scrollView.ScrollTo(1);
- while(!gOnScrollCompleteCalled)
- {
- Wait(application);
- }
- // test that the first page has reached centre of screen
- Vector3 actorPostPosition = actor.GetCurrentPosition();
- // just check the actor has moved
- DALI_TEST_CHECK((actorPostPosition - actorPrePosition).Length() > Math::MACHINE_EPSILON_1);
- CleanupTest();
- END_TEST;
-}
-
-
-int UtcDaliScrollViewSpiralEffectTest(void)
-{
- ToolkitTestApplication application;
- tet_infoline(" UtcDaliScrollViewSpiralEffectTest");
-
- Vector2 size = Stage::GetCurrent().GetSize();
-
- ScrollView scrollView = SetupTestScrollView(1, 3, size);
- Actor testPage = gPages[1];
- Wait(application, 500);
-
- ScrollViewPageSpiralEffect effect = ScrollViewPageSpiralEffect::New();
+ //Create path
+ float xHalfSize( size.x * 0.5f);
+
+ Dali::Path path = Dali::Path::New();
+ Dali::Property::Array points;
+ points.Resize(3);
+ points[0] = Vector3( xHalfSize, 0.0f, -xHalfSize);
+ points[1] = Vector3( 0.0f, 0.0f, 0.0f );
+ points[2] = Vector3( -xHalfSize, 0.0f, -xHalfSize);
+ path.SetProperty( Path::Property::POINTS, points );
+
+ Dali::Property::Array controlPoints;
+ controlPoints.Resize(4);
+ controlPoints[0] = Vector3( xHalfSize, 0.0f, 0.0f );
+ controlPoints[1] = Vector3( xHalfSize, 0.0f, 0.0f );
+ controlPoints[2] = Vector3(-xHalfSize, 0.0f, 0.0f );
+ controlPoints[3] = Vector3(-xHalfSize, 0.0f, 0.0f );
+ path.SetProperty( Path::Property::CONTROL_POINTS, controlPoints );
+
+ ScrollViewPagePathEffect effect = ScrollViewPagePathEffect::New(path,
+ Vector3::ZERO,
+ Toolkit::ScrollView::Property::SCROLL_FINAL_X,
+ Vector3(size.x,size.y,0.0f),
+ 3);
scrollView.ApplyEffect(effect);
+ unsigned int pageCounter(0);
for(ActorIter pageIter = gPages.begin(); pageIter != gPages.end(); ++pageIter)
{
Actor page = *pageIter;
page.RemoveConstraints();
- page.ApplyConstraint( Constraint::New<Vector3>( Actor::SIZE, ParentSource( Actor::SIZE ), EqualToConstraint() ) );
- effect.ApplyToPage(page, Vector2(Math::PI_2, 0.0f));
+ Constraint constraint = Constraint::New<Vector3>( page, Actor::Property::SIZE, EqualToConstraint() );
+ constraint.AddSource( ParentSource( Actor::Property::SIZE ) );
+ constraint.Apply();
+ effect.ApplyToPage(page, pageCounter++);
}
Wait(application);
{
Wait(application);
}
- // test that the first page has reached centre of screen
+
+ // test that the test page has reached centre of screen
Vector3 pagePos = testPage.GetCurrentPosition();
DALI_TEST_EQUALS(pagePos, Vector3::ZERO, Math::MACHINE_EPSILON_0, TEST_LOCATION);
- CleanupTest();
- END_TEST;
-}
-
-
-
-int UtcDaliScrollViewSlideEffectTest(void)
-{
- ToolkitTestApplication application;
- tet_infoline(" UtcDaliScrollViewSlideEffectTest");
-
- Vector2 size = Stage::GetCurrent().GetSize();
- Vector3 pageSize(size.x, size.y, 0.0f);
-
- ScrollView scrollView = SetupTestScrollView(1, 3, size);
- Actor testPage = gPages[1];
- Wait(application, 500);
- ScrollViewSlideEffect effect = ScrollViewSlideEffect::New();
- effect.SetDelayReferenceOffset(pageSize * 0.25);
- DALI_TEST_EQUALS(effect.GetDelayReferenceOffset(), pageSize * 0.25, Math::MACHINE_EPSILON_0, TEST_LOCATION);
- effect.SetMaxDelayDuration(0.5f);
- DALI_TEST_EQUALS(effect.GetMaxDelayDuration(), 0.5f, Math::MACHINE_EPSILON_0, TEST_LOCATION);
- effect.SetSlideDirection(false);
- DALI_TEST_CHECK(!effect.GetSlideDirection());
-
- scrollView.ApplyEffect(effect);
-
- Actor actor = AddActorToPage(testPage, 0.5f, 0.5f, 3, 3);
- Wait(application);
- Vector3 actorPrePosition = actor.GetCurrentPosition();
-
- effect.ApplyToActor(actor, 0.0f, 0.5f);
-
- scrollView.ScrollTo(1);
- while(!gOnScrollCompleteCalled)
- {
- Wait(application);
- }
- // test that the first page has reached centre of screen
- Vector3 actorPostPosition = actor.GetCurrentPosition();
- // just check the actor has moved
- DALI_TEST_CHECK((actorPostPosition - actorPrePosition).Length() > Math::MACHINE_EPSILON_1);
CleanupTest();
END_TEST;
}
-int UtcDaliScrollViewCustomEffectTest(void)
-{
- ToolkitTestApplication application;
- tet_infoline(" UtcDaliScrollViewCustomEffectTest");
-
- Vector2 size = Stage::GetCurrent().GetSize();
- Vector3 pageSize(size.x, size.y, 0.0f);
-
- ScrollView scrollView = SetupTestScrollView(1, 3, size);
- Actor testPage = gPages[1];
- Wait(application, 500);
- Vector3 pageStartPos, pagePos;
- pageStartPos = pagePos = testPage.GetCurrentPosition();
- //scrollView.RemoveConstraintsFromChildren();
-
- ScrollViewCustomEffect effect = ScrollViewCustomEffect::DownCast(scrollView.ApplyEffect(ScrollView::PageEffectCarousel));
-
- for(ActorIter pageIter = gPages.begin(); pageIter != gPages.end(); ++pageIter)
- {
- Actor page = *pageIter;
- page.RemoveConstraints();
- page.ApplyConstraint( Constraint::New<Vector3>( Actor::SIZE, ParentSource( Actor::SIZE ), EqualToConstraint() ) );
- effect.ApplyToPage(page, pageSize);
- }
- Wait(application);
- pagePos = testPage.GetCurrentPosition();
- DALI_TEST_EQUALS(pagePos, pageStartPos, Math::MACHINE_EPSILON_0, TEST_LOCATION);
-
- scrollView.ScrollTo(1);
- while(!gOnScrollCompleteCalled)
- {
- Wait(application);
- }
- ResetScrollCallbackResults();
- // test that the first page has reached centre of screen
- pagePos = testPage.GetCurrentPosition();
- DALI_TEST_EQUALS(pagePos, Vector3::ZERO, Math::MACHINE_EPSILON_0, TEST_LOCATION);
-
- // scroll back to page 0
- scrollView.ScrollTo(0);
- while(!gOnScrollCompleteCalled)
- {
- Wait(application);
- }
- ResetScrollCallbackResults();
- pagePos = testPage.GetCurrentPosition();
- DALI_TEST_EQUALS(pagePos, pageStartPos, Math::MACHINE_EPSILON_0, TEST_LOCATION);
-
- scrollView.RemoveEffect(effect);
-
- effect = ScrollViewCustomEffect::New();
- effect.SetPageTranslation(Vector3(20.0f, 20.0f, 5.0f));
- effect.SetPageTranslation(Vector3(20.0f, 20.0f, 5.0f), Vector3(20.0f, 20.0f, -5.0f));
- effect.SetPageTranslationIn(Vector3(20.0f, 20.0f, 5.0f));
- effect.SetPageTranslationOut(Vector3(20.0f, 20.0f, -5.0f));
- effect.SetPageTranslation(Vector3(20.0f, 0.0f, 0.0f));
- effect.SetSwingAngle(Math::PI, Vector3::YAXIS);
- effect.SetPageSpacing(Vector2(20.0f, 20.0f));
- scrollView.ApplyEffect(effect);
-
- for(ActorIter pageIter = gPages.begin(); pageIter != gPages.end(); ++pageIter)
- {
- Actor page = *pageIter;
- page.RemoveConstraints();
- page.ApplyConstraint( Constraint::New<Vector3>( Actor::SIZE, ParentSource( Actor::SIZE ), EqualToConstraint() ) );
- effect.ApplyToPage(page, pageSize);
- }
- Wait(application);
- pagePos = testPage.GetCurrentPosition();
- DALI_TEST_EQUALS(pagePos, pageStartPos, Math::MACHINE_EPSILON_0, TEST_LOCATION);
-
- scrollView.ScrollTo(1);
- while(!gOnScrollCompleteCalled)
- {
- Wait(application);
- }
- ResetScrollCallbackResults();
- // test that the first page has reached centre of screen
- pagePos = testPage.GetCurrentPosition();
- DALI_TEST_EQUALS(pagePos, Vector3::ZERO, Math::MACHINE_EPSILON_0, TEST_LOCATION);
-
- // scroll back to page 0
- scrollView.ScrollTo(0);
- while(!gOnScrollCompleteCalled)
- {
- Wait(application);
- }
- ResetScrollCallbackResults();
- pagePos = testPage.GetCurrentPosition();
- DALI_TEST_EQUALS(pagePos, pageStartPos, Math::MACHINE_EPSILON_0, TEST_LOCATION);
-
- scrollView.RemoveEffect(effect);
- effect = ScrollViewCustomEffect::New();
- effect.SetSwingAngle(Math::PI, Vector3::YAXIS);
- effect.SetSwingAnchor(AnchorPoint::CENTER_LEFT);
- effect.SetPageTranslation(Vector3(size.x, size.y, 0));
- effect.SetOpacityThreshold(0.66f);
- scrollView.ApplyEffect(effect);
-
- for(ActorIter pageIter = gPages.begin(); pageIter != gPages.end(); ++pageIter)
- {
- Actor page = *pageIter;
- page.RemoveConstraints();
- page.ApplyConstraint( Constraint::New<Vector3>( Actor::SIZE, ParentSource( Actor::SIZE ), EqualToConstraint() ) );
- effect.ApplyToPage(page, pageSize);
- }
- Wait(application);
-
- scrollView.ScrollTo(1);
- while(!gOnScrollCompleteCalled)
- {
- Wait(application);
- }
- ResetScrollCallbackResults();
- // test that the first page has reached centre of screen
- pagePos = testPage.GetCurrentPosition();
- DALI_TEST_EQUALS(pagePos, Vector3::ZERO, Math::MACHINE_EPSILON_0, TEST_LOCATION);
-
- // scroll back to page 0
- scrollView.ScrollTo(0);
- while(!gOnScrollCompleteCalled)
- {
- Wait(application);
- }
- ResetScrollCallbackResults();
- pagePos = testPage.GetCurrentPosition();
- DALI_TEST_EQUALS(pagePos, pageStartPos, Math::MACHINE_EPSILON_0, TEST_LOCATION);
- scrollView.RemoveEffect(effect);
-
-
- effect.SetPageTranslateAlphaFunction(AlphaFunctions::Linear);
- effect.SetPageTranslateAlphaFunction(AlphaFunctions::Linear, AlphaFunctions::Linear);
- effect.SetPageTranslateAlphaFunctionIn(AlphaFunctions::Linear);
- effect.SetPageTranslateAlphaFunctionOut(AlphaFunctions::Linear);
- effect.SetGlobalPageRotation(Math::PI, Vector3::YAXIS);
- effect.SetAngledOriginPageRotation(Vector3(Math::PI, Math::PI, 0.0f));
- effect.SetGlobalPageRotation(Math::PI, Vector3::YAXIS, Math::PI, Vector3::YAXIS);
- effect.SetGlobalPageRotationIn(Math::PI, Vector3::YAXIS);
- effect.SetGlobalPageRotationOut(Math::PI, Vector3::YAXIS);
- effect.SetGlobalPageRotationOrigin(Vector3::ZERO);
- effect.SetGlobalPageRotationOrigin(Vector3::ZERO, Vector3::ZERO);
- effect.SetGlobalPageRotationOriginIn(Vector3::ZERO);
- effect.SetGlobalPageRotationOriginOut(Vector3::ZERO);
- effect.SetSwingAngle(Math::PI, Vector3::YAXIS);
- effect.SetSwingAngle(Math::PI, Vector3::YAXIS, Math::PI, Vector3::YAXIS);
- effect.SetSwingAngleIn(Math::PI, Vector3::YAXIS);
- effect.SetSwingAngleOut(Math::PI, Vector3::YAXIS);
- effect.SetSwingAngleAlphaFunction(AlphaFunctions::Linear);
- effect.SetSwingAngleAlphaFunction(AlphaFunctions::Linear, AlphaFunctions::Linear);
- effect.SetSwingAngleAlphaFunctionIn(AlphaFunctions::Linear);
- effect.SetSwingAngleAlphaFunctionOut(AlphaFunctions::Linear);
- effect.SetSwingAnchor(AnchorPoint::CENTER, AnchorPoint::CENTER_LEFT);
- effect.SetSwingAnchorIn(AnchorPoint::CENTER);
- effect.SetSwingAnchorOut(AnchorPoint::CENTER);
- effect.SetSwingAnchorAlphaFunction(AlphaFunctions::Linear);
- effect.SetSwingAnchorAlphaFunction(AlphaFunctions::Linear, AlphaFunctions::Linear);
- effect.SetSwingAnchorAlphaFunctionIn(AlphaFunctions::Linear);
- effect.SetSwingAnchorAlphaFunctionOut(AlphaFunctions::Linear);
- effect.SetOpacityThreshold(0.5f);
- effect.SetOpacityThreshold(0.5f, 0.5f);
- effect.SetOpacityThresholdIn(0.5f);
- effect.SetOpacityThresholdOut(0.5f);
- effect.SetOpacityAlphaFunction(AlphaFunctions::Linear);
- effect.SetOpacityAlphaFunction(AlphaFunctions::Linear, AlphaFunctions::Linear);
- effect.SetOpacityAlphaFunctionIn(AlphaFunctions::Linear);
- effect.SetOpacityAlphaFunctionOut(AlphaFunctions::Linear);
- CleanupTest();
- END_TEST;
-}