[SRUK] Initial copy from Tizen 2.2 version
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / public-api / controls / scrollable / scroll-view / scroll-view-twist-effect.cpp
1 //
2 // Copyright (c) 2014 Samsung Electronics Co., Ltd.
3 //
4 // Licensed under the Flora License, Version 1.0 (the License);
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
7 //
8 //     http://floralicense.org/license/
9 //
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an AS IS BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
15 //
16
17 #include <dali-toolkit/public-api/controls/scrollable/scroll-view/scroll-view-effect.h>
18 #include <dali-toolkit/public-api/controls/scrollable/scroll-view/scroll-view-twist-effect.h>
19 #include <dali-toolkit/internal/controls/scrollable/scroll-view/scroll-view-effect-impl.h>
20 #include <dali-toolkit/internal/controls/scrollable/scroll-view/scroll-view-twist-effect-impl.h>
21
22 using namespace Dali;
23
24 namespace Dali
25 {
26
27 namespace Toolkit
28 {
29
30 const std::string ScrollViewTwistEffect::EFFECT_TIME( "ScrollViewTwistEffect::EFFECT_TIME" );
31 const std::string ScrollViewTwistEffect::EFFECT_REFERENCE( "ScrollViewTwistEffect::EFFECT_REFERENCE" );
32 const std::string ScrollViewTwistEffect::EFFECT_DEPTH( "ScrollViewTwistEffect::EFFECT_DEPTH");
33 const std::string ScrollViewTwistEffect::EFFECT_ACTIVATE( "ScrollViewTwistEffect::EFFECT_ACTIVATE");
34
35 const float ScrollViewTwistEffect::DEFAULT_MINIMUM_DISTANCE_FOR_SHRINK( 0.0f );
36
37 ScrollViewTwistEffect ScrollViewTwistEffect::New()
38 {
39   return ScrollViewTwistEffect(new Internal::ScrollViewTwistEffect());
40 }
41
42 ScrollViewTwistEffect::ScrollViewTwistEffect()
43 {
44
45 }
46
47 ScrollViewTwistEffect::ScrollViewTwistEffect(Internal::ScrollViewTwistEffect *impl)
48 : ScrollViewEffect(impl)
49 {
50 }
51
52 ScrollViewTwistEffect ScrollViewTwistEffect::DownCast( BaseHandle handle )
53 {
54   return ScrollViewTwistEffect( dynamic_cast<Internal::ScrollViewTwistEffect*>(handle.GetObjectPtr()) );
55 }
56
57 float ScrollViewTwistEffect::GetMinimumDistanceForShrink() const
58 {
59   return GetImpl(*this).GetMinimumDistanceForShrink();
60 }
61
62 void ScrollViewTwistEffect::SetMinimumDistanceForShrink(float distance)
63 {
64   GetImpl(*this).SetMinimumDistanceForShrink( distance );
65 }
66
67 void ScrollViewTwistEffect::EnableEffect(bool enableFlag)
68 {
69   GetImpl(*this).EnableEffect(enableFlag);
70 }
71
72 void ScrollViewTwistEffect::ApplyToActor( Actor child,
73                                           bool additionalEffects,
74                                           const Vector2& angleSwing,
75                                           float scaleAmount,
76                                           float delayMin,
77                                           float delayMax )
78 {
79   GetImpl(*this).ApplyToActor( child,
80                                additionalEffects,
81                                angleSwing,
82                                scaleAmount,
83                                delayMin,
84                                delayMax );
85 }
86
87 void ScrollViewTwistEffect::SetMaxSwingAngle(const Vector2& maxSwingAngle)
88 {
89   GetImpl(*this).SetMaxSwingAngle(maxSwingAngle);
90 }
91
92 void ScrollViewTwistEffect::SetSwingDropOff(const Vector2& dropOff, const Vector2& distance, AlphaFunction function)
93 {
94   GetImpl(*this).SetSwingDropOff(dropOff, distance, function);
95 }
96
97 } // namespace Toolkit
98
99 } // namespace Dali