X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Fscrollable%2Fscroll-view%2Fscroll-view-page-cube-effect-impl.cpp;h=c65d4f37f176f4794c64a715db917091fbe327cf;hp=0c762ed81d9333f093baa48d1e3012a1dbda0ab7;hb=6e824d3bfb11cab305d0d8375b202076d59222b0;hpb=e2eda444afbe82e9591fe198eef339227f90a616 diff --git a/dali-toolkit/internal/controls/scrollable/scroll-view/scroll-view-page-cube-effect-impl.cpp b/dali-toolkit/internal/controls/scrollable/scroll-view/scroll-view-page-cube-effect-impl.cpp index 0c762ed..c65d4f3 100644 --- a/dali-toolkit/internal/controls/scrollable/scroll-view/scroll-view-page-cube-effect-impl.cpp +++ b/dali-toolkit/internal/controls/scrollable/scroll-view/scroll-view-page-cube-effect-impl.cpp @@ -1,24 +1,28 @@ -// -// Copyright (c) 2014 Samsung Electronics Co., Ltd. -// -// Licensed under the Flora License, Version 1.0 (the License); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://floralicense.org/license/ -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an AS IS BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// +/* + * Copyright (c) 2014 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. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ // CLASS HEADER #include // EXTERNAL INCLUDES #include +#include +#include +#include // INTERNAL INCLUDES #include @@ -55,7 +59,7 @@ using namespace ScrollViewHelperFunctions; * When at middle of the screen the position is not altered. * When one screen away from middle the position is rotated as per expected in a 3D inner cube. */ -class ScrollPageCubeEffectInfo : public Dali::RefObject +class ScrollPageCubeEffectInfo { public: @@ -67,11 +71,11 @@ public: /** * @param[in] current The current orientation of this Actor * @param[in] pagePositionProperty The page's position. - * @param[in] scrollPositionProperty The scroll-view's position property (SCROLL_POSITION_PROPERTY_NAME) - * @param[in] scrollPositionMin The minimum extent of this scroll domain. (SCROLL_POSITION_MIN_PROPERTY_NAME) - * @param[in] scrollPositionMax The maximum extent of this scroll domain. (SCROLL_POSITION_MIN_PROPERTY_NAME) + * @param[in] scrollPositionProperty The scroll-view's position property (SCROLL_POSITION) + * @param[in] scrollPositionMin The minimum extent of this scroll domain. (SCROLL_POSITION_MIN) + * @param[in] scrollPositionMax The maximum extent of this scroll domain. (SCROLL_POSITION_MAX) * @param[in] pageSizeProperty The size of the page. (scrollView SIZE) - * @param[in] scrollWrap Whether scroll wrap has been enabled or not (SCROLL_WRAP_PROPERTY_NAME) + * @param[in] scrollWrap Whether scroll wrap has been enabled or not (WRAP) * @return The new orientation of this Actor. */ Quaternion RotationConstraint(const Quaternion& current, @@ -121,11 +125,11 @@ public: /** * @param[in] current The current color of this Actor * @param[in] pagePositionProperty The page's position. - * @param[in] scrollPositionProperty The scroll-view's position property (SCROLL_POSITION_PROPERTY_NAME) - * @param[in] scrollPositionMin The minimum extent of this scroll domain. (SCROLL_POSITION_MIN_PROPERTY_NAME) - * @param[in] scrollPositionMax The maximum extent of this scroll domain. (SCROLL_POSITION_MIN_PROPERTY_NAME) + * @param[in] scrollPositionProperty The scroll-view's position property (SCROLL_POSITION) + * @param[in] scrollPositionMin The minimum extent of this scroll domain. (SCROLL_POSITION_MIN) + * @param[in] scrollPositionMax The maximum extent of this scroll domain. (SCROLL_POSITION_MAX) * @param[in] pageSizeProperty The size of the page. (scrollView SIZE) - * @param[in] scrollWrap Whether scroll wrap has been enabled or not (SCROLL_WRAP_PROPERTY_NAME) + * @param[in] scrollWrap Whether scroll wrap has been enabled or not (WRAP) * @return The new color of this Actor. */ Vector4 ColorConstraint(const Vector4& current, @@ -181,11 +185,11 @@ public: /** * @param[in] current The current position * @param[in] pagePositionProperty The page's position. - * @param[in] scrollPositionProperty The scroll-view's position property (SCROLL_POSITION_PROPERTY_NAME) - * @param[in] scrollPositionMin The minimum extent of this scroll domain. (SCROLL_POSITION_MIN_PROPERTY_NAME) - * @param[in] scrollPositionMax The maximum extent of this scroll domain. (SCROLL_POSITION_MIN_PROPERTY_NAME) + * @param[in] scrollPositionProperty The scroll-view's position property (SCROLL_POSITION) + * @param[in] scrollPositionMin The minimum extent of this scroll domain. (SCROLL_POSITION_MIN) + * @param[in] scrollPositionMax The maximum extent of this scroll domain. (SCROLL_POSITION_MAX) * @param[in] pageSizeProperty The size of the page. (scrollView SIZE) - * @param[in] scrollWrap Whether scroll wrap has been enabled or not (SCROLL_WRAP_PROPERTY_NAME) + * @param[in] scrollWrap Whether scroll wrap has been enabled or not (WRAP) * @return The new position of this Actor. */ Vector3 PositionConstraint(const Vector3& current, @@ -242,8 +246,6 @@ public: Vector2 mAngleSwing; ///< Maximum amount in X and Y axes to rotate. }; -typedef IntrusivePtr ScrollPageCubeEffectInfoPtr; - /** * Helper: Applies the 3D scroll cube constraints to the child actor * @@ -253,41 +255,41 @@ typedef IntrusivePtr ScrollPageCubeEffectInfoPtr; */ void ApplyScrollCubeConstraints(Toolkit::ScrollView scrollView, Actor child, - ScrollPageCubeEffectInfoPtr info) + ScrollPageCubeEffectInfo& info) { // Apply constraints to this actor // Constraint constraint; - constraint = Constraint::New( Actor::ROTATION, - LocalSource(Actor::POSITION), - Source(scrollView, scrollView.GetPropertyIndex( Toolkit::ScrollView::SCROLL_FINAL_PROPERTY_NAME ) ), - Source(scrollView, scrollView.GetPropertyIndex( Toolkit::ScrollView::SCROLL_POSITION_MIN_PROPERTY_NAME ) ), - Source(scrollView, scrollView.GetPropertyIndex( Toolkit::ScrollView::SCROLL_POSITION_MAX_PROPERTY_NAME ) ), - Source(scrollView, Actor::SIZE ), - Source(scrollView, scrollView.GetPropertyIndex( Toolkit::ScrollView::SCROLL_WRAP_PROPERTY_NAME ) ), + constraint = Constraint::New( Actor::Property::ORIENTATION, + LocalSource(Actor::Property::POSITION), + Source(scrollView, Toolkit::ScrollView::Property::SCROLL_FINAL ), + Source(scrollView, Toolkit::Scrollable::Property::SCROLL_POSITION_MIN ), + Source(scrollView, Toolkit::Scrollable::Property::SCROLL_POSITION_MAX ), + Source(scrollView, Actor::Property::SIZE ), + Source(scrollView, Toolkit::ScrollView::Property::WRAP ), boost::bind( &ScrollPageCubeEffectInfo::RotationConstraint, info, _1, _2, _3, _4, _5, _6, _7) ); constraint.SetRemoveAction( Constraint::Discard ); child.ApplyConstraint( constraint ); - constraint = Constraint::New( Actor::COLOR, - LocalSource(Actor::POSITION), - Source(scrollView, scrollView.GetPropertyIndex( Toolkit::ScrollView::SCROLL_FINAL_PROPERTY_NAME ) ), - Source(scrollView, scrollView.GetPropertyIndex( Toolkit::ScrollView::SCROLL_POSITION_MIN_PROPERTY_NAME ) ), - Source(scrollView, scrollView.GetPropertyIndex( Toolkit::ScrollView::SCROLL_POSITION_MAX_PROPERTY_NAME ) ), - Source(scrollView, Actor::SIZE ), - Source(scrollView, scrollView.GetPropertyIndex( Toolkit::ScrollView::SCROLL_WRAP_PROPERTY_NAME ) ), + constraint = Constraint::New( Actor::Property::COLOR, + LocalSource(Actor::Property::POSITION), + Source(scrollView, Toolkit::ScrollView::Property::SCROLL_FINAL ), + Source(scrollView, Toolkit::Scrollable::Property::SCROLL_POSITION_MIN ), + Source(scrollView, Toolkit::Scrollable::Property::SCROLL_POSITION_MAX ), + Source(scrollView, Actor::Property::SIZE ), + Source(scrollView, Toolkit::ScrollView::Property::WRAP ), boost::bind( &ScrollPageCubeEffectInfo::ColorConstraint, info, _1, _2, _3, _4, _5, _6, _7) ); constraint.SetRemoveAction( Constraint::Discard ); child.ApplyConstraint( constraint ); - constraint = Constraint::New( Actor::POSITION, - LocalSource(Actor::POSITION), - Source(scrollView, scrollView.GetPropertyIndex( Toolkit::ScrollView::SCROLL_FINAL_PROPERTY_NAME ) ), - Source(scrollView, scrollView.GetPropertyIndex( Toolkit::ScrollView::SCROLL_POSITION_MIN_PROPERTY_NAME ) ), - Source(scrollView, scrollView.GetPropertyIndex( Toolkit::ScrollView::SCROLL_POSITION_MAX_PROPERTY_NAME ) ), - Source(scrollView, Actor::SIZE ), - Source(scrollView, scrollView.GetPropertyIndex( Toolkit::ScrollView::SCROLL_WRAP_PROPERTY_NAME ) ), + constraint = Constraint::New( Actor::Property::POSITION, + LocalSource(Actor::Property::POSITION), + Source(scrollView, Toolkit::ScrollView::Property::SCROLL_FINAL ), + Source(scrollView, Toolkit::Scrollable::Property::SCROLL_POSITION_MIN ), + Source(scrollView, Toolkit::Scrollable::Property::SCROLL_POSITION_MAX ), + Source(scrollView, Actor::Property::SIZE ), + Source(scrollView, Toolkit::ScrollView::Property::WRAP ), boost::bind( &ScrollPageCubeEffectInfo::PositionConstraint, info, _1, _2, _3, _4, _5, _6, _7) ); constraint.SetRemoveAction( Constraint::Discard ); @@ -307,7 +309,7 @@ ScrollViewPageCubeEffect::~ScrollViewPageCubeEffect() void ScrollViewPageCubeEffect::ApplyToPage( Actor page, const Vector2& angleSwing ) { - ScrollPageCubeEffectInfoPtr info(new ScrollPageCubeEffectInfo( angleSwing )); + ScrollPageCubeEffectInfo info( angleSwing ); ApplyScrollCubeConstraints( GetScrollView(), page, info ); }