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.
27 * @addtogroup dali_toolkit_controls_item_view
32 * @brief Default item layout property.
35 namespace DefaultItemLayoutProperty
39 * @brief The properties of each type of item layout.
45 * @brief The type of the Layout.
46 * @details Name "type", type Dali::Toolkit::DefaultItemLayout::Type (Property::INTEGER).
53 * @brief The size of each item in the Layout.
54 * @details Name "itemSize", type Property::VECTOR3
57 * @note If not supplied, see ItemLayout::GetDefaultItemSize().
62 * @brief The internal orientation of the Layout.
63 * @details Name "orientation", type Dali::Toolkit::ControlOrientation::Type (Property::INTEGER).
66 * @note If not supplied, the default is ControlOrientation::Up, The contents of control are in a vertical layout, from top to bottom.
71 * @brief The number of columns in the GridLayout.
72 * @details Name "gridColumnNumber", type Property::INTEGER.
75 * @note If not supplied, the default is 4.
80 * @brief The spacing between rows in the GridLayout.
81 * @details Name "gridRowSpacing", type Property::FLOAT.
84 * @note If not supplied, the default is 20.0f.
89 * @brief The spacing between columns in the GridLayout.
90 * @details Name "gridColumnSpacing", type Property::FLOAT
93 * @note If not supplied, the default is 20.0f.
98 * @brief The margin in the top of the GridLayout.
99 * @details Name "gridTopMargin", type Property::FLOAT
102 * @note If not supplied, the default is 95.0f.
107 * @brief The margin in the bottom of the GridLayout.
108 * @details Name "gridBottomMargin", type Property::FLOAT
111 * @note If not supplied, the default is 20.0f.
116 * @brief The margin in the left and right of the GridLayout.
117 * @details Name "gridSideMargin", type Property::FLOAT.
120 * @note If not supplied, the default is 20.0f.
125 * @brief The factor used to customise the scroll speed while dragging and swiping the GridLayout.
126 * @details Name "gridScrollSpeedFactor", type Property::FLOAT.
129 * @note If not supplied, the default is 0.03f.
131 GRID_SCROLL_SPEED_FACTOR,
134 * @brief The maximum swipe speed in pixels per second of GridLayout.
135 * @details Name "gridMaximumSwipSpeed", type Property::FLOAT.
138 * @note If not supplied, the default is 100.0f.
140 GRID_MAXIMUM_SWIPE_SPEED,
143 * @brief The duration of the flick animation in seconds of GridLayout.
144 * @details Name "gridItemFlickAnimationDuration", type Property::FLOAT.
147 * @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.
148 * @note Must be greater than zero;If not supplied, the default is 0.015f.
150 GRID_ITEM_FLICK_ANIMATION_DURATION,
153 * @brief The number of columns in the DepthLayout.
154 * @details Name "depthColumnNumber", type Property::INTEGER.
157 * @note If not supplied, the default is 3.
162 * @brief The number of rows in the DepthLayout.
163 * @details Name "depthRowNumber", type Property::INTEGER.
166 * @note If not supplied, the default is 26.
171 * @brief The spacing between rows in the DepthLayout.
172 * @details Name "depthRowSpacing", type Property::FLOAT.
175 * @note If not supplied, the default is 55.0f.
180 * @brief The factor used to customise the scroll speed while dragging and swiping the DepthLayout.
181 * @details Name "depthScrollSpeedFactor", type Property::FLOAT.
184 * @note If not supplied, the default is 0.02f.
186 DEPTH_SCROLL_SPEED_FACTOR,
189 * @brief The maximumSwipSpeed of the DepthLayout.
190 * @details Name "depthMaximumSwipSpeed", type Property::FLOAT.
193 * @note If not supplied, the default is 50.0f.
195 DEPTH_MAXIMUM_SWIPE_SPEED,
198 * @brief The duration of the flick animation in seconds of DepthLayout.
199 * @details Name "depthItemFlickAnimationDuration", type Property::FLOAT.
202 * @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.
203 * @note Must be greater than zero; If not supplied, the default is 0.03f.
205 DEPTH_ITEM_FLICK_ANIMATION_DURATION,
208 * @brief The tilt angle of DepthLayout.
209 * @details Name "depthTiltAngle",Property::FLOAT
212 * @note If not supplied, the default is (Math::PI)*0.15f.
213 * @note This is clamped between -45 & 45 degrees.
218 * @brief The tilt angle of the individual items in the DepthLayout.
219 * @details Name "depthItemTiltAngle", type Property::FLOAT.
222 * @note If not supplied, the default is -(Math::PI)*0.025f.
224 DEPTH_ITEM_TILT_ANGLE,
227 * @brief The spacing angle between items in the SpiralLayout.
228 * @details Name "spiralItemSpacing", type Property::FLOAT.
231 * @note If not supplied, the default is 9.5f.
236 * @brief The factor used to customise the scroll speed while dragging and swiping the SpiralLayout.
237 * @details Name "spiralScrollSpeedFactor", type Property::FLOAT.
240 * @note If not supplied, the default is 0.01f.
242 SPIRAL_SCROLL_SPEED_FACTOR,
245 * @brief The maximum swipe speed in pixels per second of the SpiralLayout.
246 * @details Name "spiralMaximumSwipSpeed", type Property::FLOAT.
249 * @note If not supplied, the default is 30.0f.
251 SPIRAL_MAXIMUM_SWIPE_SPEED,
254 * @brief The duration of the flick animation in seconds of the SpiralLayout.
255 * @details Name "spiralItemFlickAnimationDuration", type Property::FLOAT.
258 * @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.
259 * @note Must be greater than zero; If not supplied, the default is 0.1f.
261 SPIRAL_ITEM_FLICK_ANIMATION_DURATION,
264 * @brief The vertical distance for one revolution of the SpiralLayout.
265 * @details Name "spiralRevolutionDistance", type Property::FLOAT.
268 * @note If not supplied, the default is 190.0f.
270 SPIRAL_REVOLUTION_DISTANCE,
273 * @brief The alignment of the top-item, when at the beginning of the SpiralLayout.
274 * @details Name "spiralTopItemAlignment", type Property::FLOAT.
277 * @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.
278 * A value of -0.5 or 0.5 indicates that the top-item is centred at the top or bottom of the layout respectively.
279 * @note If not supplied, the default is (-0.125f).
281 SPIRAL_TOP_ITEM_ALIGNMENT,
287 } // namespace Toolkit
293 #endif // DALI_TOOLKIT_DEFAULT_ITEM_LAYOUT_PROPERTY_H