} // 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");
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;
+}