MultiLanguage support - Fix for font validation.
[platform/core/uifw/dali-toolkit.git] / docs / content / shared-javascript-and-cpp-documentation / fundamentals.md
1 /**
2  *
3 # Dali Fundamentals  {#fundamentals}
4
5 ## Actors and the Stage
6
7 A Dali application uses a hierachy of Dali::Actor objects to position visible content.  An actor inherits a position relative to its parent, and can be moved relative to this point.  UI controls can be built by combining multiple actors.
8   
9 To display the contents of an actor, it must be connected to the Dali::Stage.  This provides an invisible root (top-level) actor, to which all other actors are added.  A direct or indirect child of the root actor is considered "on-stage".  Multi-touch events are received through signals emitted by on-stage actors.
10   
11 The following example shows how to connect a new actor to the stage:
12
13 ~~~{.cpp}
14 Actor actor = Actor::New();
15 Stage::GetCurrent().Add(actor);
16 ~~~
17
18 ~~~{.js}
19 var actor = new dali.Actor();
20 dali.stage.add( actor );
21 ~~~
22
23 ## The Coordinate System
24
25 The Stage has a 2D size, which matches the size of the application window.  The default coordinate system in Dali has the origin at the top-left corner, with positive X to right, and position Y going
26 downwards.  This is intended to be convenient when laying-out 2D views.
27
28 ![ ](../assets/img/coordinate-system-and-stage.png)
29 ![ ](coordinate-system-and-stage.png)
30
31 ## Positioning Actors
32
33 An actor inherits its parent's position.  The relative position between the actor & parent is determined by 3 properties:
34 1) ParentOrigin.  This Vector3 property defines a point within the parent actor's area.
35
36 ![ ](../assets/img/parent-origin.png)
37 ![ ](parent-origin.png)
38
39 The default is "top-left", which can be visualized in 2D as (0, 0), but is actually Vector3(0, 0, 0.5) in the 3D Dali world.  The actor's position is relative to this point.
40
41 2) AnchorPoint.  This Vector3 property defines a point within the child actor's area.
42
43 ![ ](../assets/img/anchor-point.png)
44 ![ ](anchor-point.png)
45
46 The default is "center", which can be visualized in 2D as (0.5, 0.5), but is actually Vector3(0.5, 0.5, 0.5) in the 3D Dali world.  The actor's position is also relative to this point.
47
48 3) Position.  This is the position vector between the parent-origin and anchor-point.
49
50 ![ ](../assets/img/actor-position.png)
51 ![ ](actor-position.png)
52
53 Therefore by default, an actors position is the distance between its center and the top-left corner of its parent.
54
55 An actor added directly to the stage with position (X = stageWidth*0.5, Y = stageHeight*0.5), would appear in the center of the screen.  Likewise an actor with position (X = actorWidth*0.5, Y = actorWidth*0.5), would appear at the top-left of the screen.
56
57 Note that since Dali is a 3D toolkit, this behaviour is the result of a default perspective camera setup.
58
59 @class _Guide_DALi_Fundamentals
60
61 */