X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Fpage-turn-view%2Fpage-turn-portrait-view-impl.cpp;h=9fe3a0068b1ddf2e11396c405b7f408b0a269b31;hp=9b1891752c19d25bcefadbc0e80ceec0ef31786b;hb=0f006fbeb3f9dc630e3893887e8c6e5ae44b8e0a;hpb=693920239cd3e842a266404289e2869fe1fcf687 diff --git a/dali-toolkit/internal/controls/page-turn-view/page-turn-portrait-view-impl.cpp b/dali-toolkit/internal/controls/page-turn-view/page-turn-portrait-view-impl.cpp index 9b18917..9fe3a00 100644 --- a/dali-toolkit/internal/controls/page-turn-view/page-turn-portrait-view-impl.cpp +++ b/dali-toolkit/internal/controls/page-turn-view/page-turn-portrait-view-impl.cpp @@ -22,6 +22,7 @@ #include #include #include +#include //INTERNAL INCLUDES #include @@ -82,11 +83,6 @@ void PageTurnPortraitView::OnPageTurnViewInitialize() mTurningPageLayer.SetParentOrigin( ParentOrigin::CENTER_LEFT ); } -ImageActor PageTurnPortraitView::NewPageFromRenderBuffer( int pageIndex ) -{ - return ImageActor::New(mRenderedPage[pageIndex % NUMBER_OF_CACHED_PAGES]); -} - Vector2 PageTurnPortraitView::SetPanPosition( const Vector2& gesturePosition ) { return gesturePosition; @@ -97,6 +93,7 @@ void PageTurnPortraitView::SetPanActor( const Vector2& panPosition ) if( mCurrentPageIndex < mTotalPageCount ) { mPanActor = mPageActors[mCurrentPageIndex%NUMBER_OF_CACHED_PAGES]; + mTurningPageIndex = mCurrentPageIndex; } else { @@ -123,7 +120,7 @@ void PageTurnPortraitView::OnPossibleOutwardsFlick( const Vector2& panPosition, if( mCurrentPageIndex > 0 && gestureSpeed > GESTURE_SPEED_THRESHOLD && offset.x > fabs( offset.y )) { ImageActor actor = mPageActors[ (mCurrentPageIndex-1) % NUMBER_OF_CACHED_PAGES ]; - if(actor.GetParent() != mRootOnScreen) + if(actor.GetParent() != Self()) { return; } @@ -131,7 +128,8 @@ void PageTurnPortraitView::OnPossibleOutwardsFlick( const Vector2& panPosition, // Guard against destruction during signal emission //Emit signal, to notify that page[mCurrentPageIndex-1] is turning backwards Toolkit::PageTurnView handle( GetOwner() ); - mPageTurnStartedSignal.Emit( handle, static_cast(mCurrentPageIndex-1), false ); + mTurningPageIndex = mCurrentPageIndex-1; + mPageTurnStartedSignal.Emit( handle, static_cast(mTurningPageIndex), false ); //update pages mCurrentPageIndex--; @@ -139,6 +137,8 @@ void PageTurnPortraitView::OnPossibleOutwardsFlick( const Vector2& panPosition, AddPage( mCurrentPageIndex-NUMBER_OF_CACHED_PAGES_EACH_SIDE ); OrganizePageDepth(); + mPageActors[mTurningPageIndex%NUMBER_OF_CACHED_PAGES].SetVisible(true); + // Add the page to tuning page layer and set up PageTurnEffect mShadowView.Add( actor ); actor.SetShaderEffect( mTurnEffect[mIndex] ); @@ -151,7 +151,7 @@ void PageTurnPortraitView::OnPossibleOutwardsFlick( const Vector2& panPosition, // Start an animation to turn the previous page back Animation animation = Animation::New( PAGE_TURN_OVER_ANIMATION_DURATION ); - mAnimationActorPair[animation] = actor; + mAnimationPageIdPair[animation] = mCurrentPageIndex; mAnimationIndexPair[animation] = mIndex; animation.AnimateTo( Property( mTurnEffect[mIndex], "uCurrentCenter" ), @@ -159,14 +159,31 @@ void PageTurnPortraitView::OnPossibleOutwardsFlick( const Vector2& panPosition, AlphaFunction::EASE_OUT, TimePeriod(PAGE_TURN_OVER_ANIMATION_DURATION*0.75f) ); animation.AnimateBy( Property( actor, Actor::Property::ORIENTATION ), AngleAxis( Degree( 180.0f ), Vector3::YAXIS ) ,AlphaFunction::EASE_OUT ); animation.Play(); - ImageActor::DownCast(actor).SetCullFace( CullBack ); - animation.FinishedSignal().Connect( this, &PageTurnPortraitView::OnTurnedOver ); + + ImageActor imageActor = ImageActor::DownCast(actor); + if( imageActor ) + { + SetCullFace( imageActor, CullBack ); + } + animation.FinishedSignal().Connect( this, &PageTurnPortraitView::TurnedOverBackwards ); } } -void PageTurnPortraitView::OnTurnedOver( Animation& animation ) +void PageTurnPortraitView::OnTurnedOver( ImageActor actor, bool isLeftSide ) { - ImageActor::DownCast(mAnimationActorPair[animation]).SetCullFace( CullNone ); + if( isLeftSide ) + { + actor.SetVisible( false ); + } +} + +void PageTurnPortraitView::TurnedOverBackwards( Animation& animation ) +{ + ImageActor imageActor = mPageActors[mAnimationPageIdPair[animation] % NUMBER_OF_CACHED_PAGES]; + if( imageActor ) + { + SetCullFace( imageActor, CullNone ); + } TurnedOver( animation ); }