License conversion from Flora to Apache 2.0
[platform/core/uifw/dali-core.git] / capi / dali_doc.h
1 #ifndef __DALI_DOC_H__
2 #define __DALI_DOC_H__
3
4 /*
5  * Copyright (c) 2014 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  * @ingroup CAPI_UI_FRAMEWORK
23  * @defgroup CAPI_DALI_FRAMEWORK Dali
24  * @brief The Dali provides a cross-platform C++ 3D UI toolkit based on
25  * OpenGL ES 2.0.
26  * <table> <tr><th>API</th><th>Description</th></tr>
27  * <tr><td>@ref CAPI_DALI_MODULE</td><td>A library to provide a C++ scene graph based on OpenGL ES 2.0.</td></tr>
28  * <tr><td>@ref CAPI_DALI_TOOLKIT_MODULE</td><td>A library to provide a user interface toolkit on top of Dali.</td></tr>
29  * </table>
30  */
31
32 /**
33  * @ingroup CAPI_DALI_FRAMEWORK
34  * @defgroup CAPI_DALI_MODULE Dali Core
35  * @brief The Dali library provides a C++ scene graph based on OpenGL ES 2.0.
36  *
37  * @section CAPI_DALI_MODULE_HEADER Required Header
38  *  \#include <dali/dali.h>
39  * @section CAPI_DALI_MODULE_OVERVIEW Overview
40  * <table> <tr><th>API</th><th>Description</th></tr>
41  * <tr><td>@ref CAPI_DALI_ACTORS_MODULE</td><td>The set of interactive objects that can be placed on the Dali::Stage.</td></tr>
42  * <tr><td>@ref CAPI_DALI_ADAPTOR_MODULE</td><td>Interface to the platform.</td></tr>
43  * <tr><td>@ref CAPI_DALI_ANIMATION_MODULE</td><td>The property animation and constraints system.</td></tr>
44  * <tr><td>@ref CAPI_DALI_COMMON_MODULE</td><td>General classes.</td></tr>
45  * <tr><td>@ref CAPI_DALI_EVENTS_MODULE</td><td>Events, gestures and gesture detectors.</td></tr>
46  * <tr><td>@ref CAPI_DALI_GEOMETRY_MODULE</td><td></td>Meshes.</tr>
47  * <tr><td>@ref CAPI_DALI_IMAGES_MODULE</td><td></td>Image resource types.</tr>
48  * <tr><td>@ref CAPI_DALI_MATH_MODULE</td><td></td>Math classes and utilities.</tr>
49  * <tr><td>@ref CAPI_DALI_MODELING_MODULE</td><td>Ancilliary classes for meshes and 3D models </td></tr>
50  * <tr><td>@ref CAPI_DALI_OBJECT_MODULE</td><td></td>Registered Object and property system.</tr>
51  * <tr><td>@ref CAPI_DALI_RENDER_TASKS_MODULE</td><td>Classes to describe how the scene is rendered. </td></tr>
52  * <tr><td>@ref CAPI_DALI_SHADER_EFFECTS_MODULE</td><td>Classes to change how actors are visualised.</td></tr>
53  * <tr><td>@ref CAPI_DALI_SIGNALS_MODULE</td><td>Signals and Slots - a type-safe, loosely-coupled callback system.</td></tr>
54  * <tr><td>@ref CAPI_DALI_TEXT_MODULE</td><td></td>Classes for manipulating text.</tr>
55  * </table>
56  */
57
58
59 /**
60  * @ingroup CAPI_DALI_MODULE
61  *
62  * @defgroup CAPI_DALI_ACTORS_MODULE Actors
63  *
64  * @section CAPI_DALI_ACTORS_MODULE_HEADER RequiredHeader
65  * \#include <dali/dali.h>
66  *
67  * @section CAPI_DALI_ACTORS_MODULE_OVERVIEW Overview
68  * <table> <tr><th>API</th><th>Description</th></tr>
69  * <tr><td>@ref Dali::Actor </td><td>Primary class for application interaction.</td></tr>
70  * <tr><td>@ref Dali::CameraActor </td><td>An actor which controls a camera.</td></tr>
71  * <tr><td>@ref Dali::CustomActor </td><td>CustomActor is a base class for custom UI controls.</td></tr>
72  * <tr><td>@ref Dali::CustomActorImpl </td><td>CustomActorImpl is an abstract base class for custom control implementations.</td></tr>
73  * <tr><td>@ref Dali::RenderableActor </td><td>A base class for renderable actors.</td></tr>
74  * <tr><td>@ref Dali::ImageActor </td><td>An actor for displaying images.</td></tr>
75  * <tr><td>@ref Dali::MeshActor </td><td>An actor for displaying mesh geometries.</td></tr>
76  * <tr><td>@ref Dali::TextActor </td><td>An actor for display simple text.</td></tr>
77  * <tr><td>@ref Dali::Layer </td><td></td>An actor for grouping and sorting other actors.</tr>
78  * </table>
79  */
80
81 /**
82  * @ingroup CAPI_DALI_MODULE
83  * @defgroup CAPI_DALI_ANIMATION_MODULE Animation
84  * @section  CAPI_DALI_ANIMATION_MODULE_HEADER Required Header
85  * \#include <dali/dali.h>
86  * @section  CAPI_DALI_ANIMATION_MODULE_OVERVIEW Overview
87  * <table> <tr><th>API</th><th>Description</th></tr>
88  * <tr><td>@ref Dali::ActiveConstraint </td><td>A constraint which is being applied to an object.</td></tr>
89  * <tr><td> Dali::AlphaFunctions </td><td>Various functions that control progress of an animation.</td></tr>
90  * <tr><td>@ref Dali::Animation </td><td>Dali::Animation can be used to animate the properties of any number of objects, typically Dali::Actor%s.</td></tr>
91  * <tr><td>@ref Dali::Constraint </td><td>An abstract base class for Constraints.</td></tr>
92  * <tr><td>Constraints</td><td>Various constraints for properties:
93 @ref Dali::ScaleToFitConstraint
94 @ref Dali::ScaleToFitKeepAspectRatioConstraint
95 @ref Dali::ScaleToFillKeepAspectRatioConstraint
96 @ref Dali::ScaleToFillXYKeepAspectRatioConstraint
97 @ref Dali::ShrinkInsideKeepAspectRatioConstraint
98 @ref Dali::MultiplyConstraint
99 @ref Dali::DivideConstraint
100 @ref Dali::EqualToConstraint
101 @ref Dali::RelativeToConstraint
102 @ref Dali::RelativeToConstraintFloat
103 @ref Dali::InverseOfConstraint
104 @ref Dali::SourceWidthFixedHeight
105 @ref Dali::SourceHeightFixedWidth
106 Dali::LookAt()
107 @ref Dali::OrientedLookAt </td></tr>
108  * <tr><td>Interpolator Functions </td><td>Dali::LerpBoolean(), Dali::LerpFloat(), Dali::LerpVector2(), Dali::LerpVector3(), Dali::LerpVector4(), Dali::SlerpQuaternion() </td></tr>
109  * <tr><td>@ref Dali::KeyFrames </td><td>A set of key frames for a property that can be animated using @ref Dali::Animation::AnimateBetween()</td></tr>
110  * <tr><td>Constraint Sources</td><td>Specifies the location of a property for use in a constraint:
111  * @ref Dali::SourceType
112 @ref Dali::LocalSource
113 @ref Dali::ParentSource
114 @ref Dali::Source
115 @ref Dali::ConstraintSource</td></tr>
116  * <tr><td>@ref Dali::TimePeriod </td><td>A value-type representing a period of time within an animation.</td></tr>
117  * </table>
118  */
119
120 /**
121  * @ingroup CAPI_DALI_MODULE
122  * @defgroup CAPI_DALI_COMMON_MODULE Common
123  * @section CAPI_DALI_COMMON_MODULE_HEADER Required Header
124  * \#include <dali/dali.h>
125  * @section CAPI_DALI_COMMON_MODULE_OVERVIEW Overview
126  * <table> <tr><th>API</th><th>Description</th></tr>
127  * <tr><td>@ref Dali::ParentOrigin </td><td>Constants to specify the origin of an actor within it's parent volume, used by Dali::Actor::SetParentOrigin()</td></tr>
128  * <tr><td>@ref Dali::AnchorPoint </td><td>Constants to specify the anchor point of an actor, used by Dali::Actor::SetAnchorPoint() </td></tr>
129  * <tr><td>@ref Dali::Color </td><td>Constants to specify primary colors</td></tr>
130  * <tr><td>@ref Dali::Math </td><td>Epsilon and Pi constants</td></tr>
131  * <tr><td>@ref Dali::String </td><td>String constants</td></tr>
132  * <tr><td>@ref Dali::LoadingState </td><td>The status during resource loading operations.</td></tr>
133  * <tr><td>@ref Dali::Stage </td><td>The Stage is a top-level object used for displaying a tree of Actors.</td></tr>
134  * </table>
135  */
136
137 /**
138  * @ingroup CAPI_DALI_MODULE
139  * @defgroup CAPI_DALI_EVENTS_MODULE Events
140  * @section CAPI_DALI_EVENTS_MODULE_HEADER Required Header
141  * \#include <dali/dali.h>
142  * @section CAPI_DALI_EVENTS_MODULE_OVERVIEW Overview
143  * <table> <tr><th>API</th><th>Description</th></tr>
144  * <tr><td>@ref Dali::GestureDetector </td><td>GestureDetectors analyse a stream of touch events and attempt to determine the intention of the user.</td></tr>
145  * <tr><td>@ref Dali::Gesture </td><td>Base structure for different gestures that an application can receive.</td></tr>
146  * <tr><td>@ref Dali::KeyEvent </td><td>The key event structure is used to store a key press.</td></tr>
147  * <tr><td>@ref Dali::LongPressGestureDetector</td><td>This emits a signal when a long press gesture occurs.</td></tr>
148  * <tr><td>@ref Dali::LongPressGesture </td><td>A LongPressGesture is emitted when the user touches and holds the screen with the stated number of fingers.</td></tr>
149  * <tr><td>@ref Dali::PanGestureDetector </td><td>This class looks for panning (or dragging) gestures.</td></tr>
150  * <tr><td>@ref Dali::PanGesture </td><td>A PanGesture is emitted when the user moves one or more fingers in a particular direction.</td></tr>
151  * <tr><td>@ref Dali::PinchGestureDetector </td><td>This class looks for pinching gestures involving two touches.</td></tr>
152  * <tr><td>@ref Dali::PinchGesture </td><td>A PinchGesture is emitted when the user moves two fingers towards or away from each other.</td></tr>
153  * <tr><td>@ref Dali::TapGestureDetector </td><td>This class emits a signal when a tap gesture occurs</td></tr>
154  * <tr><td>@ref Dali::TapGesture </td><td>A TapGesture is emitted when the user taps the screen</td></tr>
155  * <tr><td>@ref Dali::TouchEvent </td><td>Touch events are a collection of touch points at a specific moment in time.</td></tr>
156  * <tr><td>@ref Dali::TouchPoint </td><td>A TouchPoint represents a point on the screen that is currently being touched or where touch
157  * has stopped.</td></tr>
158  * </table>
159  */
160
161 /**
162  * @ingroup CAPI_DALI_MODULE
163  * @defgroup CAPI_DALI_GEOMETRY_MODULE Geometry
164  * @section CAPI_DALI_GEOMETRY_MODULE_HEADER Required Header
165  * \#include <dali/dali.h>
166  * @section CAPI_DALI_GEOMETRY_MODULE_OVERVIEW Overview
167  * <table> <tr><th>API</th><th>Description</th></tr>
168  * <tr><td>@ref Dali::AnimatableMesh </td><td>A mesh geometry that can be animated using the Dali property animation system.</td></tr>
169  * <tr><td>@ref Dali::AnimatableVertex </td><td>Represents a vertex in a Dali::AnimatableMesh.</td></tr>
170  * </table>
171  */
172
173 /**
174  * @ingroup CAPI_DALI_MODULE
175  * @defgroup CAPI_DALI_IMAGES_MODULE Images
176  * @section CAPI_DALI_IMAGES_MODULE_HEADER Required Header
177  * \#include <dali/dali.h>
178  * @section CAPI_DALI_IMAGES_MODULE_OVERVIEW Overview
179  * <table> <tr><th>API</th><th>Description</th></tr>
180  * <tr><td>@ref Dali::BitmapImage </td><td>This represents an image resource supplied by Application writer that can be added to Dali::ImageActor.</td></tr>
181  * <tr><td>@ref Dali::EncodedBufferImage </td><td>This represents an encoded image supplied by Application writer that can be added to Dali::ImageActor.</td></tr>
182  * <tr><td>@ref Dali::FrameBufferImage </td><td>This represents a GLES frame buffer object and contains the result of an 'off-screen' render pass of a Dali::RenderTask</td></tr>
183  * <tr><td>@ref Dali::ImageAttributes </td><td>Describes Image properties like width or pixel format.</td></tr>
184  * <tr><td>@ref Dali::Image </td><td>An Image object represents an image resource that can be added to ImageActors.</td></tr>
185  * <tr><td>@ref Dali::NativeImage </td><td>Abstract interface to provide platform-specific support for handling image data.</td></tr>
186  * <tr><td>@ref Dali::Pixel </td><td>Pixel format types and their properties.</td></tr>
187  * </table>
188  */
189
190 /**
191  * @ingroup CAPI_DALI_MODULE
192  * @defgroup CAPI_DALI_MATH_MODULE Math
193  * @section CAPI_DALI_MATH_MODULE_HEADER Required Header
194  * \#include <dali/dali.h>
195  * @section CAPI_DALI_MATH_MODULE_OVERVIEW Overview
196  * <table> <tr><th>API</th><th>Description</th></tr>
197  * <tr><td>@ref Dali::AngleAxis </td><td>An angle & axis pair.</td></tr>
198  * <tr><td>@ref Dali::Degree </td><td>An angle in degrees.</td></tr>
199  * <tr><td>@ref Dali::Radian </td><td>An angle in radians.</td></tr>
200  * <tr><td>@ref Dali::Matrix </td><td>The Matrix class represents transformations and projections.</td></tr>
201  * <tr><td>@ref Dali::Matrix3 </td><td>A 3x3 matrix.</td></tr>
202  * <tr><td>@ref Dali::Quaternion </td><td>The Quaternion class encapsulates the mathematics of the quaternion.</td></tr>
203  * <tr><td>@ref Dali::Rect </td><td>Template class to create and operate on rectangles.</td></tr>
204  * <tr><td>@ref Dali::Vector2 </td><td>A two-dimensional vector.</td></tr>
205  * <tr><td>@ref Dali::Vector3 </td><td>A three-dimensional vector.</td></tr>
206  * <tr><td>@ref Dali::Vector4 </td><td>A four-dimensional vector.</td></tr>
207  * <tr><td>@ref Dali::Random </td><td>Provides methods to generate and use random values.</td></tr>
208  * <tr><td>@ref Dali::Viewport </td><td>Screen area in pixels</td></tr>
209  * <tr><td> Math Utilities </td><td>
210 Dali::NextPowerOfTwo()
211 Dali::IsPowerOfTwo()
212 Dali::Clamp()
213 Dali::ClampInPlace()
214 Dali::Lerp()
215 Dali::GetRangedEpsilon()
216 Dali::EqualsZero()
217 Dali::Equals()
218 Dali::Round()
219 Dali::WrapInDomain()
220 Dali::ShortestDistanceInDomain()
221  * </td></tr>
222  * </table>
223  */
224
225 /**
226  * @ingroup CAPI_DALI_MODULE
227  * @defgroup CAPI_DALI_MODELING_MODULE Modeling
228  * @section CAPI_DALI_MODELING_MODULE_HEADER Required Header
229  * \#include <dali/dali.h>
230  * @section CAPI_DALI_MODELING_MODULE_OVERVIEW Overview
231  * <table> <tr><th>API</th><th>Description</th></tr>
232  * <tr><td>@ref Dali::Material </td><td>Encapsulates the data describing a material.</td></tr>
233  * </table>
234  */
235
236 /**
237  * @ingroup CAPI_DALI_MODULE
238  * @defgroup CAPI_DALI_OBJECT_MODULE Object
239  * @section CAPI_DALI_OBJECT_MODULE_HEADER Required Header
240  * \#include <dali/dali.h>
241  * @section CAPI_DALI_OBJECT_MODULE_OVERVIEW Overview
242  * <table> <tr><th>API</th><th>Description</th></tr>
243  * <tr><td>@ref Dali::BaseHandle </td><td>Dali::BaseHandle is a handle to an internal Dali resource.</td></tr>
244  * <tr><td>@ref Dali::BaseObject </td><td>A base class for objects.</td></tr>
245  * <tr><td>@ref Dali::Constrainable </td><td>A handle to an internal property owning Dali object that
246  * can have constraints applied to it.</td></tr>
247  * <tr><td>@ref Dali::Handle </td><td>A handle to an internal property owning Dali object.</td></tr>
248  * <tr><td>@ref Dali::ObjectRegistry </td><td>The ObjectRegistry notifies it's observers when an object is created.</td></tr>
249  * <tr><td>@ref Dali::PropertyCondition </td><td>This represents a condition that can be evaluated on a Property::Value. Factory methods include Dali::LessThanCondition(), Dali::GreaterThanCondition(), Dali::InsideCondition() and Dali::OutsideCondition()</td></tr>
250  * <tr><td>@ref Dali::PropertyInput </td><td>An abstract interface for receiving property values.</td></tr>
251  * <tr><td>@ref Dali::PropertyNotification </td><td>This is used to issue a notification upon a condition of the property being met.</td></tr>
252  * <tr><td>@ref Dali::PropertyTypes </td><td>Template function instances for property getters.</td></tr>
253  * <tr><td>@ref Dali::Property </td><td>An object + property pair.</td></tr>
254  * <tr><td>@ref Dali::Property::Value </td><td>A value-type representing a property value.</td></tr>a
255  * <tr><td>@ref Dali::RefObject </td><td>Base class for reference counted objects.</td></tr>
256  * <tr><td>@ref Dali::IntrusivePtr </td><td>Template class used to point at Dali::RefObjects</td></tr>
257  * <tr><td>@ref Dali::Any </td><td>Class for objects that contain values of different types</td></tr>
258  * </table>
259  */
260
261 /**
262  * @ingroup CAPI_DALI_MODULE
263  * @defgroup CAPI_DALI_RENDER_TASKS_MODULE Render Tasks
264  * @section CAPI_DALI_RENDER_TASKS_MODULE_HEADER Required Header
265  * \#include <dali/dali.h>
266  * @section CAPI_DALI_RENDER_TASKS_MODULE_OVERVIEW Overview
267  * <table> <tr><th>API</th><th>Description</th></tr>
268  * <tr><td>@ref Dali::RenderTask </td><td>A RenderTask describes how all or part of the Dali scene should be rendered.</td></tr>
269  * <tr><td>@ref Dali::RenderTaskList </td><td>An ordered list of Dali::RenderTask%s.</td></tr>
270  * </table>
271  */
272
273 /**
274  * @ingroup CAPI_DALI_MODULE
275  * @defgroup CAPI_DALI_SHADER_EFFECTS_MODULE Shader effects
276  * @section CAPI_DALI_SHADER_EFFECTS_MODULE_HEADER Required Header
277  * \#include <dali/dali.h>
278  * @section CAPI_DALI_SHADER_EFFECTS_MODULE_OVERVIEW Overview
279  * <table> <tr><th>API</th><th>Description</th></tr>
280  * <tr><td>@ref Dali::ShaderEffect </td><td>Shader effects provide a visual effect for actors.</td></tr>
281  * </table>
282  */
283
284 /**
285  * @ingroup CAPI_DALI_MODULE
286  * @defgroup CAPI_DALI_SIGNALS_MODULE Signals
287  * @section CAPI_DALI_SIGNALS_MODULE_HEADER Required Header
288  * \#include <dali/dali.h>
289  * @section CAPI_DALI_SIGNALS_MODULE_OVERVIEW Overview
290  * <table> <tr><th>API</th><th>Description</th></tr>
291  * <tr><td>@ref Dali::BaseSignal </td><td>Implementation class for Dali::SignalV2%s.</td></tr>
292  * <tr><td>@ref Dali::Callback </td><td>Templates to provide type safety for member function callbacks.</td></tr>
293  * <tr><td>@ref Dali::ConnectionTracker </td><td>Connection tracker concrete implementation</td></tr>
294  * <tr><td>@ref Dali::ConnectionTrackerInterface </td><td>Interface used to track connections between signals and slots.</td></tr>
295  * <tr><td>@ref Dali::SignalV2 </td><td>Template classes that provide signals</td></tr>
296  * <tr><td>@ref Dali::FunctorDelegate </td><td>Used to connect a void() functor to a signal via Dali::BaseObject::SignalConnect()</td></tr>
297  * <tr><td>@ref Dali::SlotConnection </td><td>SlotConnection is the connection information held by a connection tracker.</td></tr>
298  * <tr><td>@ref Dali::SignalConnection </td><td>SignalConnection is the connection information held by the signal.</td></tr>
299  * <tr><td>@ref Dali::SignalObserver </td><td>Abstract interface used by a signal to inform a slot it is disconnecting.</td></tr>
300  * <tr><td>@ref Dali::SlotObserver </td><td>Abstract Interface used by a slot to inform a signal it is disconnecting.</td></tr>
301  * <tr><td>@ref Dali::SlotDelegate </td><td>SlotDelegates can be used to connect member functions to signals, without inheriting from SlotDelegateInterface.</td></tr>
302  * </table>
303  */
304
305 /**
306  * @ingroup CAPI_DALI_MODULE
307  * @defgroup CAPI_DALI_TEXT_MODULE Text
308  * @section CAPI_DALI_TEXT_MODULE_HEADER Required Header
309  * \#include <dali/dali.h>
310  * @section CAPI_DALI_TEXT_MODULE_OVERVIEW Overview
311  * <table> <tr><th>API</th><th>Description</th></tr>
312  * <tr><td>@ref Dali::Character </td><td>Character class encapsulates a character implementation to support multiple languages.</td></tr>
313  * <tr><td>@ref Dali::PointSize </td><td>Font size in points.</td></tr>
314  * <tr><td>@ref Dali::PixelSize </td><td>Font size in pixels.</td></tr>
315  * <tr><td>@ref Dali::CapsHeight </td><td>Font size in caps height.</td></tr>
316  * <tr><td>@ref Dali::FontParameters </td><td>Encapsulates all font parameters.</td></tr>
317  * <tr><td>@ref Dali::Font </td><td>Encapsulates a font resource</td></tr>
318  * <tr><td>@ref Dali::TextStyle </td><td>Encapsulates style properties for text, such as weight, italics, underline, shadow, etc.</td></tr>
319  * <tr><td>@ref Dali::Text </td><td>Encapsulates a string of characters implementation to support multiple languages.</td></tr>
320  * </table>
321  */
322
323
324
325 #endif //__DALI_DOC_H__