X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Fpage-turn-view%2Fpage-turn-view-impl.cpp;h=97753f09b04c9aa5599ea625ddeae5a0fe6588e3;hb=26efc210fc636e51a4d3df9ae7fbcc1d2a8bac40;hp=ddaf2924955169e8a66270f65ef9f4b2601f5082;hpb=9851bf19ae796af52a397dd19c234b91999cb1cb;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/controls/page-turn-view/page-turn-view-impl.cpp b/dali-toolkit/internal/controls/page-turn-view/page-turn-view-impl.cpp index ddaf292..97753f0 100644 --- a/dali-toolkit/internal/controls/page-turn-view/page-turn-view-impl.cpp +++ b/dali-toolkit/internal/controls/page-turn-view/page-turn-view-impl.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016 Samsung Electronics Co., Ltd. + * Copyright (c) 2017 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,10 +22,8 @@ #include // for strcmp #include #include -#include #include #include -#include #include // INTERNAL INCLUDES @@ -34,14 +32,12 @@ #include #include #include +#include using namespace Dali; namespace //Unnamed namespace { -// broken image is loaded if there is no valid image provided for the page -const char * const BROKEN_IMAGE_URL( DALI_IMAGE_DIR "broken.png"); - // properties set on shader, these properties have the constant value in regardless of the page status const char * const PROPERTY_SPINE_SHADOW ( "uSpineShadowParameter" ); // uniform for both spine and turn effect @@ -56,13 +52,13 @@ const char * const PROPERTY_PAN_CENTER( "panCenter" );// property used to constr // default grid density for page turn effect, 20 pixels by 20 pixels const float DEFAULT_GRID_DENSITY(20.0f); -// to bent the page, the minimal horizontal pan start position is pageSize.x * MINIMUM_START_POSITION_RATIO +// to bent the page, the minimal horizontal pan start position is viewPageSize.x * MINIMUM_START_POSITION_RATIO const float MINIMUM_START_POSITION_RATIO(0.6f); -// the maximum vertical displacement of pan gesture, if exceed, will reduce it: pageSize.y * MAXIMUM_VERTICAL_MOVEMENT_RATIO +// the maximum vertical displacement of pan gesture, if exceed, will reduce it: viewPageSize.y * MAXIMUM_VERTICAL_MOVEMENT_RATIO const float MAXIMUM_VERTICAL_MOVEMENT_RATIO(0.15f); -// when the x component of pan position reaches pageSize.x * PAGE_TURN_OVER_THRESHOLD_RATIO, page starts to turn over +// when the x component of pan position reaches viewPageSize.x * PAGE_TURN_OVER_THRESHOLD_RATIO, page starts to turn over const float PAGE_TURN_OVER_THRESHOLD_RATIO(0.5f); // duration of animation, shorter for faster speed @@ -242,7 +238,7 @@ BaseHandle Create() // Setup properties, signals and actions using the type-registry. DALI_TYPE_REGISTRATION_BEGIN( Toolkit::PageTurnView, Toolkit::Control, Create ); -DALI_PROPERTY_REGISTRATION( Toolkit, PageTurnView, "pageSize", VECTOR2, PAGE_SIZE ) +DALI_PROPERTY_REGISTRATION( Toolkit, PageTurnView, "viewPageSize", VECTOR2, VIEW_PAGE_SIZE ) DALI_PROPERTY_REGISTRATION( Toolkit, PageTurnView, "currentPageId", INTEGER, CURRENT_PAGE_ID ) DALI_PROPERTY_REGISTRATION( Toolkit, PageTurnView, "spineShadow", VECTOR2, SPINE_SHADOW ) @@ -282,14 +278,13 @@ PageTurnView::Page::Page() propertyTurnDirection = actor.RegisterProperty(PROPERTY_TURN_DIRECTION, -1.f); } -void PageTurnView::Page::SetImage( Image image ) +void PageTurnView::Page::SetTexture( Texture texture ) { if( !textureSet ) { textureSet = TextureSet::New(); } - - TextureSetImage( textureSet, 0u, image ); + textureSet.SetTexture( 0u, texture ); } void PageTurnView::Page::UseEffect(Shader newShader) @@ -346,10 +341,10 @@ void PageTurnView::Page::SetCurrentCenter( const Vector2& value ) actor.SetProperty( propertyCurrentCenter, value ); } -PageTurnView::PageTurnView( PageFactory& pageFactory, const Vector2& pageSize ) -: Control( ControlBehaviour( ACTOR_BEHAVIOUR_NONE ) ), +PageTurnView::PageTurnView( PageFactory& pageFactory, const Vector2& viewPageSize ) +: Control( ControlBehaviour( CONTROL_BEHAVIOUR_DEFAULT ) ), mPageFactory( &pageFactory ), - mPageSize( pageSize ), + mPageSize( viewPageSize ), mSpineShadowParameter( DEFAULT_SPINE_SHADOW_PARAMETER ), mDistanceUpCorner( 0.f ), mDistanceBottomCorner( 0.f ), @@ -368,6 +363,10 @@ PageTurnView::PageTurnView( PageFactory& pageFactory, const Vector2& pageSize ) mPagePanStartedSignal(), mPagePanFinishedSignal() { + DevelControl::SetAccessibilityConstructor( Self(), []( Dali::Actor actor ) { + return std::unique_ptr< Dali::Accessibility::Accessible >( + new Control::Impl::AccessibleImpl( actor, Dali::Accessibility::Role::PAGE_TAB_LIST ) ); + } ); } PageTurnView::~PageTurnView() @@ -398,7 +397,7 @@ void PageTurnView::OnInitialize() Self().Add( mPages[i].actor ); } - // create the layer for turning images + // create the layer for turning pages mTurningPageLayer = Layer::New(); mTurningPageLayer.SetAnchorPoint( AnchorPoint::CENTER_LEFT ); mTurningPageLayer.SetBehavior(Layer::LAYER_3D); @@ -479,9 +478,9 @@ void PageTurnView::SetupShadowView() void PageTurnView::OnStageConnection( int depth ) { - Control::OnStageConnection( depth ); - SetupShadowView(); + + Control::OnStageConnection( depth ); } void PageTurnView::OnStageDisconnection() @@ -500,9 +499,9 @@ void PageTurnView::OnStageDisconnection() Control::OnStageDisconnection(); } -void PageTurnView::SetPageSize( const Vector2& pageSize ) +void PageTurnView::SetPageSize( const Vector2& viewPageSize ) { - mPageSize = pageSize; + mPageSize = viewPageSize; if( mPointLight ) { @@ -584,13 +583,9 @@ void PageTurnView::AddPage( int pageIndex ) { int index = pageIndex % NUMBER_OF_CACHED_PAGES; - Image newPageImage; - newPageImage = mPageFactory->NewPage( pageIndex ); - - if( !newPageImage ) // load the broken image - { - newPageImage = ResourceImage::New( BROKEN_IMAGE_URL ); - } + Texture newPage; + newPage = mPageFactory->NewPage( pageIndex ); + DALI_ASSERT_ALWAYS( newPage && "must pass in valid texture" ); bool isLeftSide = ( pageIndex < mCurrentPageIndex ); if( mPages[index].isTurnBack != isLeftSide ) @@ -602,11 +597,11 @@ void PageTurnView::AddPage( int pageIndex ) mPages[index].actor.SetOrientation( Degree( degree ), Vector3::YAXIS ); mPages[index].actor.SetVisible( false ); mPages[index].UseEffect( mSpineEffectShader, mGeometry ); - mPages[index].SetImage( newPageImage ); + mPages[index].SetTexture( newPage ); // For Portrait, nothing to do // For Landscape, set the parent origin to CENTER - OnAddPage( mPages[index].actor, isLeftSide ); + OnAddPage( mPages[index].actor, isLeftSide ); } } @@ -1054,7 +1049,7 @@ void PageTurnView::SetProperty( BaseObject* object, Property::Index index, const switch( index ) { - case Toolkit::PageTurnView::Property::PAGE_SIZE: + case Toolkit::PageTurnView::Property::VIEW_PAGE_SIZE: { pageTurnViewImpl.SetPageSize( value.Get() ); break; @@ -1085,7 +1080,7 @@ Property::Value PageTurnView::GetProperty( BaseObject* object, Property::Index i switch( index ) { - case Toolkit::PageTurnView::Property::PAGE_SIZE: + case Toolkit::PageTurnView::Property::VIEW_PAGE_SIZE: { value = pageTurnViewImpl.GetPageSize(); break;