1 #ifndef DALI_TOOLKIT_DEFAULT_ITEM_LAYOUT_PROPERTY_H
2 #define DALI_TOOLKIT_DEFAULT_ITEM_LAYOUT_PROPERTY_H
5 * Copyright (c) 2020 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.
26 * @addtogroup dali_toolkit_controls_item_view
31 * @brief Default item layout property.
34 namespace DefaultItemLayoutProperty
37 * @brief The properties of each type of item layout.
43 * @brief The type of the Layout.
44 * @details Name "type", type Dali::Toolkit::DefaultItemLayout::Type (Property::INTEGER).
51 * @brief The size of each item in the Layout.
52 * @details Name "itemSize", type Property::VECTOR3
55 * @note If not supplied, see ItemLayout::GetDefaultItemSize().
60 * @brief The internal orientation of the Layout.
61 * @details Name "orientation", type Dali::Toolkit::ControlOrientation::Type (Property::INTEGER).
64 * @note If not supplied, the default is ControlOrientation::Up, The contents of control are in a vertical layout, from top to bottom.
69 * @brief The number of columns in the GridLayout.
70 * @details Name "gridColumnNumber", type Property::INTEGER.
73 * @note If not supplied, the default is 4.
78 * @brief The spacing between rows in the GridLayout.
79 * @details Name "gridRowSpacing", type Property::FLOAT.
82 * @note If not supplied, the default is 20.0f.
87 * @brief The spacing between columns in the GridLayout.
88 * @details Name "gridColumnSpacing", type Property::FLOAT
91 * @note If not supplied, the default is 20.0f.
96 * @brief The margin in the top of the GridLayout.
97 * @details Name "gridTopMargin", type Property::FLOAT
100 * @note If not supplied, the default is 95.0f.
105 * @brief The margin in the bottom of the GridLayout.
106 * @details Name "gridBottomMargin", type Property::FLOAT
109 * @note If not supplied, the default is 20.0f.
114 * @brief The margin in the left and right of the GridLayout.
115 * @details Name "gridSideMargin", type Property::FLOAT.
118 * @note If not supplied, the default is 20.0f.
123 * @brief The factor used to customise the scroll speed while dragging and swiping the GridLayout.
124 * @details Name "gridScrollSpeedFactor", type Property::FLOAT.
127 * @note If not supplied, the default is 0.03f.
129 GRID_SCROLL_SPEED_FACTOR,
132 * @brief The maximum swipe speed in pixels per second of GridLayout.
133 * @details Name "gridMaximumSwipSpeed", type Property::FLOAT.
136 * @note If not supplied, the default is 100.0f.
138 GRID_MAXIMUM_SWIPE_SPEED,
141 * @brief The duration of the flick animation in seconds of GridLayout.
142 * @details Name "gridItemFlickAnimationDuration", type Property::FLOAT.
145 * @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.
146 * @note Must be greater than zero;If not supplied, the default is 0.015f.
148 GRID_ITEM_FLICK_ANIMATION_DURATION,
151 * @brief The number of columns in the DepthLayout.
152 * @details Name "depthColumnNumber", type Property::INTEGER.
155 * @note If not supplied, the default is 3.
160 * @brief The number of rows in the DepthLayout.
161 * @details Name "depthRowNumber", type Property::INTEGER.
164 * @note If not supplied, the default is 26.
169 * @brief The spacing between rows in the DepthLayout.
170 * @details Name "depthRowSpacing", type Property::FLOAT.
173 * @note If not supplied, the default is 55.0f.
178 * @brief The factor used to customise the scroll speed while dragging and swiping the DepthLayout.
179 * @details Name "depthScrollSpeedFactor", type Property::FLOAT.
182 * @note If not supplied, the default is 0.02f.
184 DEPTH_SCROLL_SPEED_FACTOR,
187 * @brief The maximumSwipSpeed of the DepthLayout.
188 * @details Name "depthMaximumSwipSpeed", type Property::FLOAT.
191 * @note If not supplied, the default is 50.0f.
193 DEPTH_MAXIMUM_SWIPE_SPEED,
196 * @brief The duration of the flick animation in seconds of DepthLayout.
197 * @details Name "depthItemFlickAnimationDuration", type Property::FLOAT.
200 * @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.
201 * @note Must be greater than zero; If not supplied, the default is 0.03f.
203 DEPTH_ITEM_FLICK_ANIMATION_DURATION,
206 * @brief The tilt angle of DepthLayout.
207 * @details Name "depthTiltAngle",Property::FLOAT
210 * @note If not supplied, the default is (Math::PI)*0.15f.
211 * @note This is clamped between -45 & 45 degrees.
216 * @brief The tilt angle of the individual items in the DepthLayout.
217 * @details Name "depthItemTiltAngle", type Property::FLOAT.
220 * @note If not supplied, the default is -(Math::PI)*0.025f.
222 DEPTH_ITEM_TILT_ANGLE,
225 * @brief The spacing angle between items in the SpiralLayout.
226 * @details Name "spiralItemSpacing", type Property::FLOAT.
229 * @note If not supplied, the default is 9.5f.
234 * @brief The factor used to customise the scroll speed while dragging and swiping the SpiralLayout.
235 * @details Name "spiralScrollSpeedFactor", type Property::FLOAT.
238 * @note If not supplied, the default is 0.01f.
240 SPIRAL_SCROLL_SPEED_FACTOR,
243 * @brief The maximum swipe speed in pixels per second of the SpiralLayout.
244 * @details Name "spiralMaximumSwipSpeed", type Property::FLOAT.
247 * @note If not supplied, the default is 30.0f.
249 SPIRAL_MAXIMUM_SWIPE_SPEED,
252 * @brief The duration of the flick animation in seconds of the SpiralLayout.
253 * @details Name "spiralItemFlickAnimationDuration", type Property::FLOAT.
256 * @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.
257 * @note Must be greater than zero; If not supplied, the default is 0.1f.
259 SPIRAL_ITEM_FLICK_ANIMATION_DURATION,
262 * @brief The vertical distance for one revolution of the SpiralLayout.
263 * @details Name "spiralRevolutionDistance", type Property::FLOAT.
266 * @note If not supplied, the default is 190.0f.
268 SPIRAL_REVOLUTION_DISTANCE,
271 * @brief The alignment of the top-item, when at the beginning of the SpiralLayout.
272 * @details Name "spiralTopItemAlignment", type Property::FLOAT.
275 * @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.
276 * A value of -0.5 or 0.5 indicates that the top-item is centred at the top or bottom of the layout respectively.
277 * @note If not supplied, the default is (-0.125f).
279 SPIRAL_TOP_ITEM_ALIGNMENT,
285 } // namespace DefaultItemLayoutProperty
287 } // namespace Toolkit
291 #endif // DALI_TOOLKIT_DEFAULT_ITEM_LAYOUT_PROPERTY_H