e8cae7282e870fd76a52b541e5242cac94ceb95b
[platform/core/uifw/dali-toolkit.git] / doc / dali-toolkit-doc.h
1 #ifndef DALI_TOOLKIT_DOC_H
2 #define DALI_TOOLKIT_DOC_H
3
4 /*
5  * Copyright (c) 2019 Samsung Electronics Co., Ltd.
6  *
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
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
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
21 /**
22  * @defgroup dali DALi
23  * @ingroup CAPI_UI_FRAMEWORK
24  *
25  * @brief DALi is a cross-platform 3D UI Toolkit for embedded systems.
26  *
27  * @section dali-overview Overview
28  *
29  * DALi's 3D user interface engine enables you to create rich and high-performance
30  * UI applications. DALi is based on OpenGL ES 2.0, but provides a clean
31  * cross-platform C++ framework.
32  * This means that you can use high-level DALi APIs instead of accessing
33  * low-level OpenGL APIs directly.
34  *
35  * DALi consists of the following modules:
36  * <table>
37  * <tr>
38  *    <th>Module</th>
39  *    <th>Description</th>
40  * </tr>
41  * <tr>
42  *    <td>@ref dali_core</td>
43  *    <td>DALi Core provides core functionalities such as scene graph-based rendering, animation, and event handling.</td>
44  * </tr>
45  * <tr>
46  *    <td>@ref dali_adaptor</td>
47  *    <td>DALi Adaptor is a platform adaptation layer.</td>
48  * </tr>
49  * <tr>
50  *    <td>@ref dali_toolkit</td>
51  *    <td>DALi Toolkit provides UI components and various effects on top of the DALi Core.</td>
52  * </tr>
53  * </table>
54  *
55  * The layer diagram for DALi modules is shown below:
56  * @image html dali-modules.png "Figure: DALi modules"
57  *
58  * @defgroup dali_toolkit DALi Toolkit
59  *
60  * @brief DALi Toolkit provides UI components and various effects on top of the DALi Core.
61  *
62  * @section dali_toolkit_overview Overview
63  *
64  * DALi Toolkit consists of the following groups of API:
65  *
66  * <table>
67  * <tr>
68  *    <th>API Group</th>
69  *    <th>Description</th>
70  * </tr>
71  * <tr>
72  *    <td>@ref dali_toolkit_controls</td>
73  *    <td>Controls are interactive components for layouting the user interface.</td>
74  * </tr>
75  * <tr>
76  *    <td style="padding-left:1em">@ref dali_toolkit_controls_alignment</td>
77  *    <td>Alignment is a container which provides an easy way to align other actors inside its boundary.</td>
78  * </tr>
79  * <tr>
80  *    <td style="padding-left:1em">@ref dali_toolkit_controls_buttons</td>
81  *    <td>Button is a small object on UI that you can press.</td>
82  * </tr>
83  * <tr>
84  *    <td style="padding-left:1em">@ref dali_toolkit_controls_gaussian_blur_view</td>
85  *    <td>GaussianBlurView provides a render process that blurs an image.</td>
86  * </tr>
87  * <tr>
88  *    <td style="padding-left:1em">@ref dali_toolkit_controls_image_view</td>
89  *    <td>ImageView is a control displaying an image.</td>
90  * </tr>
91  * <tr>
92  *    <td style="padding-left:1em">@ref dali_toolkit_controls_model3d_view</td>
93  *    <td>Model3dView is a control for displaying 3d geometry.</td>
94  * </tr>
95  * <tr>
96  *    <td style="padding-left:1em">@ref dali_toolkit_controls_scroll_bar</td>
97  *    <td>ScrollBar is a component that can be linked to the scrollable objects.</td>
98  * </tr>
99  * <tr>
100  *    <td style="padding-left:1em">@ref dali_toolkit_controls_scrollable</td>
101  *    <td>Scrollable contains scrolled controls.</td>
102  * </tr>
103  * <tr>
104  *    <td style="padding-left:2em">@ref dali_toolkit_controls_item_view</td>
105  *    <td>ItemView class is a scrollable container that can contain many items.</td>
106  * </tr>
107  * <tr>
108  *    <td style="padding-left:2em">@ref dali_toolkit_controls_scroll_view</td>
109  *    <td>ScrollView class provides scrollable view which contains actors and can be scrolled automatically or manually by panning.</td>
110  * </tr>
111  * <tr>
112  *    <td style="padding-left:1em">@ref dali_toolkit_controls_table_view</td>
113  *    <td>TableView class is a layout container for aligning child actors in a grid like layout.</td>
114  * </tr>
115  * <tr>
116  *    <td style="padding-left:1em">@ref dali_toolkit_controls_text_controls</td>
117  *    <td>Controls for displaying text or text input.</td>
118  * </tr>
119  * <tr>
120  *    <td style="padding-left:1em">@ref dali_toolkit_controls_flex_container</td>
121  *    <td>FlexContainer is a container for Flexbox layout.</td>
122  * </tr>
123  * <tr>
124  *    <td style="padding-left:1em">@ref dali_toolkit_controls_video_view</td>
125  *    <td>VideoView is a control for video playback and display.</td>
126  * </tr>
127  * <tr>
128  *    <td style="padding-left:1em">@ref dali_toolkit_controls_slider</td>
129  *    <td>Slider is a control to enable sliding an indicator between two values.</td>
130  * </tr>
131  * <tr>
132  *    <td style="padding-left:1em">@ref dali_toolkit_controls_progress_bar</td>
133  *    <td>ProgressBar is a control to give the user an indication of the progress of an operation.</td>
134  * </tr>
135  * <tr>
136  *    <td>@ref dali_toolkit_managers</td>
137  *    <td>Singleton classes for managing application-wide functionalities.</td>
138  * </tr>
139  * <tr>
140  *    <td>@ref dali_toolkit_visuals</td>
141  *    <td>Visuals can control rendering the contents as using Property.</td>
142  * </tr>
143  * <tr>
144  *    <td>@ref dali_toolkit_image_loader</td>
145  *    <td>The ImageLoader is used to load pixel data from a URL.</td>
146  * </tr>
147  * </table>
148  *
149  * \ifnot show_tizen_feature
150  *
151  * @section dali_toolkit_feature Related Features
152  * This API is related with the following features:\n
153  *    - http://tizen.org/feature/opengles.version.2_0\n
154  *
155  * It is recommended to design feature related codes in your application for reliability.\n
156  *
157  * You can check if a device supports the related features for this API by using @ref CAPI_SYSTEM_SYSTEM_INFO_MODULE, thereby controlling the procedure of your application.\n
158  *
159  * To ensure your application is only running on the device with specific features, please define the features in your manifest file using the manifest editor in the SDK.\n
160  *
161  * More details on featuring your application can be found from <a href="https://developer.tizen.org/development/tizen-studio/native-tools/configuring-your-app/manifest-text-editor#feature"><b>Feature Element</b>.</a>
162  *
163  * \endif
164  *
165  * @ingroup dali
166  * @{
167  *   @defgroup dali_toolkit_controls Controls
168  *   @brief Controls are interactive components for layouting the user interface.
169
170  *   @{
171  *     @defgroup dali_toolkit_controls_alignment Alignment
172  *     @brief Alignment is a container which provides an easy way to align other actors inside its boundary.
173
174  *     @defgroup dali_toolkit_controls_buttons Buttons
175  *     @brief Button is a small object on UI that you can press.
176
177  *     @defgroup dali_toolkit_controls_gaussian_blur_view Gaussian Blur View
178  *     @brief GaussianBlurView provides a render process that blurs an image.
179
180  *     @defgroup dali_toolkit_controls_image_view Image View
181  *     @brief ImageView is a control displaying an image.
182
183  *     @defgroup dali_toolkit_controls_model3d_view Model3dView
184  *     @brief Model3dView is a control for displaying 3d geometry.
185
186  *     @defgroup dali_toolkit_controls_scroll_bar Scroll Bar
187  *     @brief ScrollBar is a component that can be linked to the scrollable objects.
188
189  *     @defgroup dali_toolkit_controls_scrollable Scrollable
190  *     @brief Scrollable contains scrolled controls.
191
192  *     @{
193  *       @defgroup dali_toolkit_controls_item_view Item View
194  *       @brief ItemView class is a scrollable container that can contain many items.
195
196  *       @defgroup dali_toolkit_controls_scroll_view Scroll View
197  *       @brief ScrollView class provides scrollable view which contains actors and can be scrolled automatically or manually by panning.
198
199  *     @}
200  *     @defgroup dali_toolkit_controls_table_view Table View
201  *     @brief TableView class is a layout container for aligning child actors in a grid like layout.
202
203  *     @defgroup dali_toolkit_controls_text_controls Text Controls
204  *     @brief Controls for displaying text or text input.
205
206  *     @defgroup dali_toolkit_controls_flex_container Flex Container
207  *     @brief FlexContainer is a container for Flexbox layout.
208
209  *     @defgroup dali_toolkit_controls_video_view Video View
210  *     @brief VideoView is a control for video playback and display.
211
212  *     @defgroup dali_toolkit_controls_slider Slider
213  *     @brief Slider is a control to enable sliding an indicator between two values.
214
215  *     @defgroup dali_toolkit_controls_progress_bar Progress Bar
216  *     @brief ProgressBar is a control to give the user an indication of the progress of an operation.
217
218  *   @}
219
220  *   @defgroup dali_toolkit_managers Managers
221  *   @brief Singleton classes for managing application-wide functionalities.
222
223  *   @defgroup dali_toolkit_visuals Visuals
224  *   @brief Visuals can control rendering the contents as using Property.
225
226  *   @defgroup dali_toolkit_image_loader Image Loader
227  *   @brief The ImageLoader is used to load pixel data from a URL.
228
229  * @}
230  */
231
232 #endif // DALI_TOOLKIT_DOC_H