1 #ifndef DALI_TOOLKIT_DEFAULT_ITEM_LAYOUT_PROPERTY_H
2 #define DALI_TOOLKIT_DEFAULT_ITEM_LAYOUT_PROPERTY_H
5 * Copyright (c) 2017 Samsung Electronics Co., Ltd.
7 * Licensed under the Apache License, Version 2.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
11 * http://www.apache.org/licenses/LICENSE-2.0
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.
28 * @brief Default item layout property.
31 namespace DefaultItemLayoutProperty
35 * @brief The properties of each type of item layout.
41 * @brief The type of the Layout.
42 * @details Name "type", type Dali::Toolkit::DefaultItemLayout::Type (Property::INTEGER).
49 * @brief The size of each item in the Layout.
50 * @details Name "itemSize", type Property::VECTOR3
53 * @note If not supplied, see ItemLayout::GetDefaultItemSize().
58 * @brief The internal orientation of the Layout.
59 * @details Name "orientation", type Dali::Toolkit::ControlOrientation::Type (Property::INTEGER).
62 * @note If not supplied, the default is ControlOrientation::Up, The contents of control are in a vertical layout, from top to bottom.
67 * @brief The number of columns in the GridLayout.
68 * @details Name "gridColumnNumber", type Property::INTEGER.
71 * @note If not supplied, the default is 4.
76 * @brief The spacing between rows in the GridLayout.
77 * @details Name "gridRowSpacing", type Property::FLOAT.
80 * @note If not supplied, the default is 20.0f.
85 * @brief The spacing between columns in the GridLayout.
86 * @details Name "gridColumnSpacing", type Property::FLOAT
89 * @note If not supplied, the default is 20.0f.
94 * @brief The margin in the top of the GridLayout.
95 * @details Name "gridTopMargin", type Property::FLOAT
98 * @note If not supplied, the default is 95.0f.
103 * @brief The margin in the bottom of the GridLayout.
104 * @details Name "gridBottomMargin", type Property::FLOAT
107 * @note If not supplied, the default is 20.0f.
112 * @brief The margin in the left and right of the GridLayout.
113 * @details Name "gridSideMargin", type Property::FLOAT.
116 * @note If not supplied, the default is 20.0f.
121 * @brief The factor used to customise the scroll speed while dragging and swiping the GridLayout.
122 * @details Name "gridScrollSpeedFactor", type Property::FLOAT.
125 * @note If not supplied, the default is 0.03f.
127 GRID_SCROLL_SPEED_FACTOR,
130 * @brief The maximum swipe speed in pixels per second of GridLayout.
131 * @details Name "gridMaximumSwipSpeed", type Property::FLOAT.
134 * @note If not supplied, the default is 100.0f.
136 GRID_MAXIMUM_SWIPE_SPEED,
139 * @brief The duration of the flick animation in seconds of GridLayout.
140 * @details Name "gridItemFlickAnimationDuration", type Property::FLOAT.
143 * @note This is the time taken to animate each item to its next layout position (e.g. from 1.0 to 2.0) when a flick animation is triggered by a swipe gesture.
144 * @note Must be greater than zero;If not supplied, the default is 0.015f.
146 GRID_ITEM_FLICK_ANIMATION_DURATION,
149 * @brief The number of columns in the DepthLayout.
150 * @details Name "depthColumnNumber", type Property::INTEGER.
153 * @note If not supplied, the default is 3.
158 * @brief The number of rows in the DepthLayout.
159 * @details Name "depthRowNumber", type Property::INTEGER.
162 * @note If not supplied, the default is 26.
167 * @brief The spacing between rows in the DepthLayout.
168 * @details Name "depthRowSpacing", type Property::FLOAT.
171 * @note If not supplied, the default is 55.0f.
176 * @brief The factor used to customise the scroll speed while dragging and swiping the DepthLayout.
177 * @details Name "depthScrollSpeedFactor", type Property::FLOAT.
180 * @note If not supplied, the default is 0.02f.
182 DEPTH_SCROLL_SPEED_FACTOR,
185 * @brief The maximumSwipSpeed of the DepthLayout.
186 * @details Name "depthMaximumSwipSpeed", type Property::FLOAT.
189 * @note If not supplied, the default is 50.0f.
191 DEPTH_MAXIMUM_SWIPE_SPEED,
194 * @brief The duration of the flick animation in seconds of DepthLayout.
195 * @details Name "depthItemFlickAnimationDuration", type Property::FLOAT.
198 * @note This is the time taken to animate each item to its next layout position (e.g. from 1.0 to 2.0) when a flick animation is triggered by a swipe gesture.
199 * @note Must be greater than zero; If not supplied, the default is 0.03f.
201 DEPTH_ITEM_FLICK_ANIMATION_DURATION,
204 * @brief The tilt angle of DepthLayout.
205 * @details Name "depthTiltAngle",Property::FLOAT
208 * @note If not supplied, the default is (Math::PI)*0.15f.
209 * @note This is clamped between -45 & 45 degrees.
214 * @brief The tilt angle of the individual items in the DepthLayout.
215 * @details Name "depthItemTiltAngle", type Property::FLOAT.
218 * @note If not supplied, the default is -(Math::PI)*0.025f.
220 DEPTH_ITEM_TILT_ANGLE,
223 * @brief The spacing angle between items in the SpiralLayout.
224 * @details Name "spiralItemSpacing", type Property::FLOAT.
227 * @note If not supplied, the default is 9.5f.
232 * @brief The factor used to customise the scroll speed while dragging and swiping the SpiralLayout.
233 * @details Name "spiralScrollSpeedFactor", type Property::FLOAT.
236 * @note If not supplied, the default is 0.01f.
238 SPIRAL_SCROLL_SPEED_FACTOR,
241 * @brief The maximum swipe speed in pixels per second of the SpiralLayout.
242 * @details Name "spiralMaximumSwipSpeed", type Property::FLOAT.
245 * @note If not supplied, the default is 30.0f.
247 SPIRAL_MAXIMUM_SWIPE_SPEED,
250 * @brief The duration of the flick animation in seconds of the SpiralLayout.
251 * @details Name "spiralItemFlickAnimationDuration", type Property::FLOAT.
254 * @note This is the time taken to animate each item to its next layout position (e.g. from 1.0 to 2.0) when a flick animation is triggered by a swipe gesture.
255 * @note Must be greater than zero; If not supplied, the default is 0.1f.
257 SPIRAL_ITEM_FLICK_ANIMATION_DURATION,
260 * @brief The vertical distance for one revolution of the SpiralLayout.
261 * @details Name "spiralRevolutionDistance", type Property::FLOAT.
264 * @note If not supplied, the default is 190.0f.
266 SPIRAL_REVOLUTION_DISTANCE,
269 * @brief The alignment of the top-item, when at the beginning of the SpiralLayout.
270 * @details Name "spiralTopItemAlignment", type Property::FLOAT.
273 * @note When at the beginning of the spiral (with a first-item layout-position of zero).A value of 0 indicates that the top-item is centered in the middle of the layout.
274 * A value of -0.5 or 0.5 indicates that the top-item is centred at the top or bottom of the layout respectively.
275 * @note If not supplied, the default is (-0.125f).
277 SPIRAL_TOP_ITEM_ALIGNMENT,
280 } // namespace Toolkit
286 #endif // DALI_TOOLKIT_DEFAULT_ITEM_LAYOUT_PROPERTY_H