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