ef93f54edfbd9d4da7ab48bbf92b5916257cb0db
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / public-api / controls / scrollable / scroll-view / scroll-view-constraints.h
1 #ifndef __DALI_TOOLKIT_SCROLL_VIEW_CONSTRAINTS_H__
2 #define __DALI_TOOLKIT_SCROLL_VIEW_CONSTRAINTS_H__
3
4 //
5 // Copyright (c) 2014 Samsung Electronics Co., Ltd.
6 //
7 // Licensed under the Flora License, Version 1.0 (the License);
8 // you may not use this file except in compliance with the License.
9 // You may obtain a copy of the License at
10 //
11 //     http://floralicense.org/license/
12 //
13 // Unless required by applicable law or agreed to in writing, software
14 // distributed under the License is distributed on an AS IS BASIS,
15 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 // See the License for the specific language governing permissions and
17 // limitations under the License.
18 //
19
20 // EXTERNAL INCLUDES
21
22 // INTERNAL INCLUDES
23
24 namespace Dali DALI_IMPORT_API
25 {
26
27 struct Vector2;
28 struct Vector3;
29 struct Vector4;
30 class PropertyInput;
31
32 namespace Toolkit
33 {
34
35 // Constraints ////////////////////////////////////////////////////////////////////////////////////
36
37 /**
38  * Useful constraints to apply to a ScrollView.
39  */
40
41 /**
42  * Move Actor constraint.
43  *
44  * Moves an Actor in accordance to scroll position.
45  */
46 Vector3 MoveActorConstraint(const Vector3&    current,
47                             const PropertyInput& scrollPositionProperty);
48
49 /**
50  * Move-Scaled Actor constraint.
51  *
52  * Moves an Actor in accordance to scroll position (and scroll scale).
53  */
54 Vector3 MoveScaledActorConstraint(const Vector3&    current,
55                                   const PropertyInput& scrollPositionProperty,
56                                   const PropertyInput& scrollScaleProperty);
57
58 /**
59  * Scale Actor constraint.
60  *
61  * Scales an Actor in accordance to scroll scale.
62  */
63 Vector3 ScaleActorConstraint(const Vector3&    current,
64                              const PropertyInput& scrollScaleProperty);
65
66 /**
67  * Wrap Actor constraint.
68  *
69  * Wraps an Actors position in accordance to min/max bounds of domain.
70  */
71 Vector3 WrapActorConstraint(const Vector3&    current,
72                             const PropertyInput& actorScaleProperty,
73                             const PropertyInput& actorAnchorPointProperty,
74                             const PropertyInput& actorSizeProperty,
75                             const PropertyInput& scrollPositionMin,
76                             const PropertyInput& scrollPositionMax,
77                             const PropertyInput& scrollWrap);
78
79 } // namespace Toolkit
80
81 } // namespace Dali
82
83 #endif // __DALI_TOOLKIT_SCROLL_VIEW_CONSTRAINTS_H__