5 * Copyright (c) 2014 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.
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
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>
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.
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>
60 * @ingroup CAPI_DALI_MODULE
62 * @defgroup CAPI_DALI_ACTORS_MODULE Actors
64 * @section CAPI_DALI_ACTORS_MODULE_HEADER RequiredHeader
65 * \#include <dali/dali.h>
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>
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
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
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>
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>
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>
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>
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>
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()
215 Dali::GetRangedEpsilon()
220 Dali::ShortestDistanceInDomain()
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>
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>
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>
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>
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>
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>
325 #endif //__DALI_DOC_H__