[dali_1.2.58] Merge branch 'devel/master'
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / internal / text / text-effects-style.h
1 #ifndef __DALI_TOOLKIT_INTERNAL_TEXT_EFFECTS_STYLE_H__
2 #define __DALI_TOOLKIT_INTERNAL_TEXT_EFFECTS_STYLE_H__
3
4 /*
5  * Copyright (c) 2016 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 // INTERNAL INCLUDES
22 #include <dali-toolkit/internal/text/text-controller.h>
23
24 namespace Dali
25 {
26
27 namespace Toolkit
28 {
29
30 namespace Text
31 {
32
33 namespace EffectStyle
34 {
35   enum Type
36   {
37     DEFAULT, ///< The default text effect style.
38     INPUT    ///< The input text effect style.
39   };
40 };
41
42 /**
43  * @brief Parses the shadow properties.
44  *
45  * @param[in] shadowProperties The map with the shadow properties.
46  * @param[out] colorDefined Whether the shadow's color is defined.
47  * @param[out] color The shadow's color.
48  * @param[out] offsetDefined Whether the shadow's offset is defined.
49  * @param[out] offset The shadow's offset.
50  */
51 bool ParseShadowProperties( const Property::Map& shadowProperties,
52                             bool& colorDefined,
53                             Vector4& color,
54                             bool& offsetDefined,
55                             Vector2& offset );
56
57 /**
58  * @brief Parses the underline properties.
59  *
60  * @param[in] underlineProperties The map with the underline properties.
61  * @param[out] enabled Whether the underline is enabled.
62  * @param[out] colorDefined Whether the underline's color is defined.
63  * @param[out] color The underline's color.
64  * @param[out] heightDefined Whether the underline's height is defined.
65  * @param[out] height The underline's height.
66  */
67 bool ParseUnderlineProperties( const Property::Map& underlineProperties,
68                                bool& enabled,
69                                bool& colorDefined,
70                                Vector4& color,
71                                bool& heightDefined,
72                                float& height );
73
74 /**
75  * @brief Parses the outline properties.
76  *
77  * @param[in] outlineProperties The map with the outline properties.
78  * @param[out] colorDefined Whether the outline's color is defined.
79  * @param[out] color The outline's color.
80  * @param[out] widthDefined Whether the outline's width is defined.
81  * @param[out] width The outline's width.
82  */
83 bool ParseOutlineProperties( const Property::Map& outlineProperties,
84                                bool& colorDefined,
85                                Vector4& color,
86                                bool& widthDefined,
87                                float& width );
88
89 /**
90  * @brief Sets the underline properties.
91  *
92  * @param[in] controller The text's controller.
93  * @param[in] value The values of the underline's properties.
94  * @param[in] type Whether the property is for the default underline or the input underline.
95  *
96  * @return Whether the underline properties have been updated.
97  */
98 bool SetUnderlineProperties( ControllerPtr controller, const Property::Value& value, EffectStyle::Type type );
99
100 /**
101  * @brief Retrieves the underline's properties.
102  *
103  * @param[in] controller The text's controller.
104  * @param[out] value The value of the underline's properties.
105  * @param[in] type Whether the property is for the default underline or the input underline.
106  */
107 void GetUnderlineProperties( ControllerPtr controller, Property::Value& value, EffectStyle::Type type );
108
109 /**
110  * @brief Sets the shadow properties.
111  *
112  * @param[in] controller The text's controller.
113  * @param[in] value The values of the shadow's style.
114  * @param[in] type Whether the property is for the default shadow's style or the input shadow's style.
115  *
116  * @return Whether the shadow properties have been updated.
117  */
118 bool SetShadowProperties( ControllerPtr controller, const Property::Value& value, EffectStyle::Type type );
119
120 /**
121  * @brief Retrieves the shadow's properties.
122  *
123  * @param[in] controller The text's controller.
124  * @param[out] value The value of the shadow's properties.
125  * @param[in] type Whether the property is for the default shadow or the input shadow.
126  */
127 void GetShadowProperties( ControllerPtr controller, Property::Value& value, EffectStyle::Type type );
128
129 /**
130  * @brief Sets the emboss properties.
131  *
132  * @param[in] controller The text's controller.
133  * @param[in] value The values of the emboss's properties.
134  * @param[in] type Whether the property is for the default emboss or the input emboss.
135  *
136  * @return Whether the emboss properties have been updated.
137  */
138 bool SetEmbossProperties( ControllerPtr controller, const Property::Value& value, EffectStyle::Type type );
139
140 /**
141  * @brief Retrieves the emboss's properties.
142  *
143  * @param[in] controller The text's controller.
144  * @param[out] value The value of the emboss's properties.
145  * @param[in] type Whether the property is for the default emboss or the input emboss.
146  */
147 void GetEmbossProperties( ControllerPtr controller, Property::Value& value, EffectStyle::Type type );
148
149 /**
150  * @brief Sets the outline properties.
151  *
152  * @param[in] controller The text's controller.
153  * @param[in] value The values of the outline's properties.
154  * @param[in] type Whether the property is for the default outline or the input outline.
155  *
156  * @return Whether the outline properties have been updated.
157  */
158 bool SetOutlineProperties( ControllerPtr controller, const Property::Value& value, EffectStyle::Type type );
159
160 /**
161  * @brief Retrieves the outline's properties.
162  *
163  * @param[in] controller The text's controller.
164  * @param[out] value The value of the outline's properties.
165  * @param[in] type Whether the property is for the default outline or the input outline.
166  */
167 void GetOutlineProperties( ControllerPtr controller, Property::Value& value, EffectStyle::Type type );
168
169 } // namespace Text
170
171 } // namespace Toolkit
172
173 } // namespace Dali
174
175 #endif // __DALI_TOOLKIT_INTERNAL_TEXT_EFFECTS_STYLE_H__