Merge "Add a callback for navigation policy in web view." into 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) 2021 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 namespace Toolkit
27 {
28 namespace Text
29 {
30 namespace EffectStyle
31 {
32 enum Type
33 {
34   DEFAULT, ///< The default text effect style.
35   INPUT    ///< The input text effect style.
36 };
37 };
38
39 /**
40  * @brief Parses the shadow properties.
41  *
42  * @param[in] shadowProperties The map with the shadow properties.
43  * @param[out] colorDefined Whether the shadow's color is defined.
44  * @param[out] color The shadow's color.
45  * @param[out] offsetDefined Whether the shadow's offset is defined.
46  * @param[out] offset The shadow's offset.
47  */
48 bool ParseShadowProperties(const Property::Map& shadowProperties,
49                            bool&                colorDefined,
50                            Vector4&             color,
51                            bool&                offsetDefined,
52                            Vector2&             offset);
53
54 /**
55  * @brief Parses the underline properties.
56  *
57  * @param[in] underlineProperties The map with the underline properties.
58  * @param[out] enabled Whether the underline is enabled.
59  * @param[out] colorDefined Whether the underline's color is defined.
60  * @param[out] color The underline's color.
61  * @param[out] heightDefined Whether the underline's height is defined.
62  * @param[out] height The underline's height.
63  */
64 bool ParseUnderlineProperties(const Property::Map& underlineProperties,
65                               bool&                enabled,
66                               bool&                colorDefined,
67                               Vector4&             color,
68                               bool&                heightDefined,
69                               float&               height);
70
71 /**
72  * @brief Parses the outline properties.
73  *
74  * @param[in] outlineProperties The map with the outline properties.
75  * @param[out] colorDefined Whether the outline's color is defined.
76  * @param[out] color The outline's color.
77  * @param[out] widthDefined Whether the outline's width is defined.
78  * @param[out] width The outline's width.
79  */
80 bool ParseOutlineProperties(const Property::Map& outlineProperties,
81                             bool&                colorDefined,
82                             Vector4&             color,
83                             bool&                widthDefined,
84                             unsigned int&        width);
85
86 /**
87  * @brief Parses the background properties.
88  *
89  * @param[in] backgroundProperties The map with the background properties.
90  * @param[out] enabled Whether the background is enabled.
91  * @param[out] colorDefined Whether the background color is defined.
92  * @param[out] color The background color.
93  */
94 bool ParseBackgroundProperties(const Property::Map& backgroundProperties,
95                                bool&                enabled,
96                                bool&                colorDefined,
97                                Vector4&             color);
98
99 /**
100  * @brief Parses the strikethrough properties.
101  *
102  * @param[in] strikethroughProperties The map with the strikethrough properties.
103  * @param[out] enabled Whether the strikethrough is enabled.
104  * @param[out] colorDefined Whether the strikethrough's color is defined.
105  * @param[out] color The strikethrough's color.
106  * @param[out] heightDefined Whether the strikethrough's height is defined.
107  * @param[out] height The strikethrough's height.
108  */
109 bool ParseStrikethroughProperties(const Property::Map& strikethroughProperties,
110                               bool&                enabled,
111                               bool&                colorDefined,
112                               Vector4&             color,
113                               bool&                heightDefined,
114                               float&               height);
115
116 /**
117  * @brief Sets the underline properties.
118  *
119  * @param[in] controller The text's controller.
120  * @param[in] value The values of the underline's properties.
121  * @param[in] type Whether the property is for the default underline or the input underline.
122  *
123  * @return Whether the underline properties have been updated.
124  */
125 bool SetUnderlineProperties(ControllerPtr controller, const Property::Value& value, EffectStyle::Type type);
126
127 /**
128  * @brief Sets the strikethrough properties.
129  *
130  * @param[in] controller The text's controller.
131  * @param[in] value The values of the strikethrough's properties.
132  * @param[in] type Whether the property is for the default strikethrough or the input strikethrough.
133  *
134  * @return Whether the strikethrough properties have been updated.
135  */
136 bool SetStrikethroughProperties(ControllerPtr controller, const Property::Value& value, EffectStyle::Type type);
137
138 /**
139  * @brief Retrieves the underline's properties.
140  *
141  * @param[in] controller The text's controller.
142  * @param[out] value The value of the underline's properties.
143  * @param[in] type Whether the property is for the default underline or the input underline.
144  */
145 void GetUnderlineProperties(ControllerPtr controller, Property::Value& value, EffectStyle::Type type);
146
147 /**
148  * @brief Retrieves the strikethrough's properties.
149  *
150  * @param[in] controller The text's controller.
151  * @param[out] value The value of the strikethrough's properties.
152  * @param[in] type Whether the property is for the default strikethrough or the input strikethrough.
153  */
154 void GetStrikethroughProperties(ControllerPtr controller, Property::Value& value, EffectStyle::Type type);
155
156 /**
157  * @brief Sets the shadow properties.
158  *
159  * @param[in] controller The text's controller.
160  * @param[in] value The values of the shadow's style.
161  * @param[in] type Whether the property is for the default shadow's style or the input shadow's style.
162  *
163  * @return Whether the shadow properties have been updated.
164  */
165 bool SetShadowProperties(ControllerPtr controller, const Property::Value& value, EffectStyle::Type type);
166
167 /**
168  * @brief Retrieves the shadow's properties.
169  *
170  * @param[in] controller The text's controller.
171  * @param[out] value The value of the shadow's properties.
172  * @param[in] type Whether the property is for the default shadow or the input shadow.
173  */
174 void GetShadowProperties(ControllerPtr controller, Property::Value& value, EffectStyle::Type type);
175
176 /**
177  * @brief Sets the emboss properties.
178  *
179  * @param[in] controller The text's controller.
180  * @param[in] value The values of the emboss's properties.
181  * @param[in] type Whether the property is for the default emboss or the input emboss.
182  *
183  * @return Whether the emboss properties have been updated.
184  */
185 bool SetEmbossProperties(ControllerPtr controller, const Property::Value& value, EffectStyle::Type type);
186
187 /**
188  * @brief Retrieves the emboss's properties.
189  *
190  * @param[in] controller The text's controller.
191  * @param[out] value The value of the emboss's properties.
192  * @param[in] type Whether the property is for the default emboss or the input emboss.
193  */
194 void GetEmbossProperties(ControllerPtr controller, Property::Value& value, EffectStyle::Type type);
195
196 /**
197  * @brief Sets the outline properties.
198  *
199  * @param[in] controller The text's controller.
200  * @param[in] value The values of the outline's properties.
201  * @param[in] type Whether the property is for the default outline or the input outline.
202  *
203  * @return Whether the outline properties have been updated.
204  */
205 bool SetOutlineProperties(ControllerPtr controller, const Property::Value& value, EffectStyle::Type type);
206
207 /**
208  * @brief Retrieves the outline's properties.
209  *
210  * @param[in] controller The text's controller.
211  * @param[out] value The value of the outline's properties.
212  * @param[in] type Whether the property is for the default outline or the input outline.
213  */
214 void GetOutlineProperties(ControllerPtr controller, Property::Value& value, EffectStyle::Type type);
215
216 /**
217  * @brief Sets the background properties.
218  *
219  * @param[in] controller The text's controller.
220  * @param[in] value The values of the background's properties.
221  * @param[in] type Whether the property is for the default background or the input background.
222  *
223  * @return Whether the background properties have been updated.
224  */
225 bool SetBackgroundProperties(ControllerPtr controller, const Property::Value& value, EffectStyle::Type type);
226
227 /**
228  * @brief Retrieves the background's properties.
229  *
230  * @param[in] controller The text's controller.
231  * @param[out] value The value of the underline's properties.
232  * @param[in] type Whether the property is for the default background or the input background.
233  */
234 void GetBackgroundProperties(ControllerPtr controller, Property::Value& value, EffectStyle::Type type);
235
236 } // namespace Text
237
238 } // namespace Toolkit
239
240 } // namespace Dali
241
242 #endif // DALI_TOOLKIT_INTERNAL_TEXT_EFFECTS_STYLE_H