Deprecate inheritance modes for position
[platform/core/uifw/dali-core.git] / dali / public-api / actors / actor-enumerations.h
1 #ifndef __DALI_ACTOR_ENUMERATIONS_H__
2 #define __DALI_ACTOR_ENUMERATIONS_H__
3
4 /*
5  * Copyright (c) 2015 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 #include <dali/public-api/common/dali-common.h>
22
23 namespace Dali
24 {
25 /**
26  * @addtogroup dali_core_actors
27  * @{
28  */
29
30 /**
31  * @brief Actor color mode.
32  *
33  * @SINCE_1_0.0
34  */
35 enum ColorMode
36 {
37   USE_OWN_COLOR,                 ///< Actor will use its own color @SINCE_1_0.0
38   USE_PARENT_COLOR,              ///< Actor will use its parent color @SINCE_1_0.0
39   USE_OWN_MULTIPLY_PARENT_COLOR, ///< Actor will blend its color with its parents color. @SINCE_1_0.0
40   USE_OWN_MULTIPLY_PARENT_ALPHA  ///< Actor will blend its alpha with its parents alpha. This means when parent fades in or out child does as well. This is the default. @SINCE_1_0.0
41 };
42
43 /**
44  * @DEPRECATED_1_1.24 Use SetInheritPosition instead
45  * @brief Actor position inheritance mode.
46  * @SINCE_1_0.0
47  */
48 enum PositionInheritanceMode
49 {
50   INHERIT_PARENT_POSITION,                 ///< Actor will inherit its parent position. This is the default @SINCE_1_0.0
51   USE_PARENT_POSITION,                     ///< Actor will copy its parent position. This is useful if many actors are stacked together in the same place. This option ignores parent origin and anchor point. @SINCE_1_0.0
52   USE_PARENT_POSITION_PLUS_LOCAL_POSITION, ///< Actor will copy its parent position and add local position. This is useful if many actors are stacked together in the same place with an offset.  This option ignores parent origin and anchor point. @SINCE_1_0.0
53   DONT_INHERIT_POSITION                    ///< Actor will not inherit position. Local position is treated as world position. This is useful if a constraint is used to override local position or if an actor is positioned globally. This option ignores parent origin, anchor point and local position. @SINCE_1_0.0
54 };
55
56 /**
57  * @brief Dimensions for layout
58  * @SINCE_1_0.0
59  */
60 namespace Dimension
61 {
62 enum Type
63 {
64   WIDTH  = 0x1,       ///< Width dimension @SINCE_1_0.0
65   HEIGHT = 0x2,       ///< Height dimension @SINCE_1_0.0
66
67   ALL_DIMENSIONS = 0x3  ///< Mask to cover all flags @SINCE_1_0.0
68 };
69
70 enum Meta
71 {
72   DIMENSION_COUNT = 2  ///< Number of dimensions - update this if adding new dimension @SINCE_1_0.0
73 };
74 }
75
76 /**
77  * @brief Size negotiation resize policies
78  * @SINCE_1_0.0
79  */
80 namespace ResizePolicy
81 {
82 enum Type
83 {
84   FIXED,                 ///< Size is fixed as set by SetSize @SINCE_1_0.0
85   USE_NATURAL_SIZE,      ///< Size is to use the actor's natural size @SINCE_1_0.0
86   FILL_TO_PARENT,        ///< Size is to fill up to the actor's parent's bounds. Aspect ratio is not maintained. @SINCE_1_0.0
87   SIZE_RELATIVE_TO_PARENT,        ///< The actors size will be ( ParentSize * SizeRelativeToParentFactor ). @SINCE_1_0.0
88   SIZE_FIXED_OFFSET_FROM_PARENT,  ///< The actors size will be ( ParentSize + SizeRelativeToParentFactor ). @SINCE_1_0.0
89   FIT_TO_CHILDREN,       ///< Size will adjust to wrap around all children @SINCE_1_0.0
90   DIMENSION_DEPENDENCY,  ///< One dimension is dependent on the other @SINCE_1_0.0
91   USE_ASSIGNED_SIZE      ///< The size will be assigned to the actor @SINCE_1_0.0
92 };
93 const Type DEFAULT = USE_NATURAL_SIZE; ///< Default resize policy
94 }
95
96 /**
97  * @brief Policies to determine how an actor should resize itself when having its size set in size negotiation
98  * @SINCE_1_0.0
99  */
100 namespace SizeScalePolicy
101 {
102 enum Type
103 {
104   USE_SIZE_SET,                ///< Use the size that was set @SINCE_1_0.0
105   FIT_WITH_ASPECT_RATIO,       ///< Fit within the size set maintaining natural size aspect ratio @SINCE_1_0.0
106   FILL_WITH_ASPECT_RATIO       ///< Fill up the size set maintaining natural size aspect ratio. May exceed size bounds in one dimension. @SINCE_1_0.0
107 };
108 }
109
110 /**
111  * @brief Horizontal alignment types.
112  * @SINCE_1_0.0
113  */
114 namespace HorizontalAlignment
115 {
116 enum Type
117 {
118   LEFT,         ///< Align horizontally left @SINCE_1_0.0
119   CENTER,       ///< Align horizontally center @SINCE_1_0.0
120   RIGHT         ///< Align horiztonally right @SINCE_1_0.0
121 };
122 }
123
124 /**
125  * @brief Vertical alignment types.
126  * @SINCE_1_0.0
127  */
128 namespace VerticalAlignment
129 {
130 enum Type
131 {
132   TOP,          ///< Align vertically top @SINCE_1_0.0
133   CENTER,       ///< Align vertically center @SINCE_1_0.0
134   BOTTOM        ///< Align vertically bottom @SINCE_1_0.0
135 };
136 }
137
138 /**
139  * @}
140  */
141 } // namespace Dali
142
143 #endif // __DALI_ACTOR_ENUMERATIONS_H__