1 #ifndef DALI_TOOLKIT_INTERNAL_TEXT_EFFECTS_STYLE_H
2 #define DALI_TOOLKIT_INTERNAL_TEXT_EFFECTS_STYLE_H
5 * Copyright (c) 2021 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 #include <dali-toolkit/internal/text/text-controller.h>
34 DEFAULT, ///< The default text effect style.
35 INPUT ///< The input text effect style.
40 * @brief Parses the shadow properties.
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.
48 bool ParseShadowProperties(const Property::Map& shadowProperties,
55 * @brief Parses the underline properties.
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 * @param[out] type The underline's type; DASHED, DOUBLE, etc. Default is a solid underline.
64 * @param[out] dashWidth The dashed underline's width.
65 * @param[out] dashGap The dashed underline's gap.
67 bool ParseUnderlineProperties(const Property::Map& underlineProperties,
74 Text::Underline::Type& type,
81 * @brief Parses the outline properties.
83 * @param[in] outlineProperties The map with the outline properties.
84 * @param[out] colorDefined Whether the outline's color is defined.
85 * @param[out] color The outline's color.
86 * @param[out] widthDefined Whether the outline's width is defined.
87 * @param[out] width The outline's width.
89 bool ParseOutlineProperties(const Property::Map& outlineProperties,
96 * @brief Parses the background properties.
98 * @param[in] backgroundProperties The map with the background properties.
99 * @param[out] enabled Whether the background is enabled.
100 * @param[out] colorDefined Whether the background color is defined.
101 * @param[out] color The background color.
103 bool ParseBackgroundProperties(const Property::Map& backgroundProperties,
109 * @brief Parses the strikethrough properties.
111 * @param[in] strikethroughProperties The map with the strikethrough properties.
112 * @param[out] enabled Whether the strikethrough is enabled.
113 * @param[out] colorDefined Whether the strikethrough's color is defined.
114 * @param[out] color The strikethrough's color.
115 * @param[out] heightDefined Whether the strikethrough's height is defined.
116 * @param[out] height The strikethrough's height.
118 bool ParseStrikethroughProperties(const Property::Map& strikethroughProperties,
126 * @brief Sets the underline properties.
128 * @param[in] controller The text's controller.
129 * @param[in] value The values of the underline's properties.
130 * @param[in] type Whether the property is for the default underline or the input underline.
132 * @return Whether the underline properties have been updated.
134 bool SetUnderlineProperties(ControllerPtr controller, const Property::Value& value, EffectStyle::Type type);
137 * @brief Sets the strikethrough properties.
139 * @param[in] controller The text's controller.
140 * @param[in] value The values of the strikethrough's properties.
141 * @param[in] type Whether the property is for the default strikethrough or the input strikethrough.
143 * @return Whether the strikethrough properties have been updated.
145 bool SetStrikethroughProperties(ControllerPtr controller, const Property::Value& value, EffectStyle::Type type);
148 * @brief Retrieves the underline's properties.
150 * @param[in] controller The text's controller.
151 * @param[out] value The value of the underline's properties.
152 * @param[in] type Whether the property is for the default underline or the input underline.
154 void GetUnderlineProperties(ControllerPtr controller, Property::Value& value, EffectStyle::Type type);
157 * @brief Retrieves the strikethrough's properties.
159 * @param[in] controller The text's controller.
160 * @param[out] value The value of the strikethrough's properties.
161 * @param[in] type Whether the property is for the default strikethrough or the input strikethrough.
163 void GetStrikethroughProperties(ControllerPtr controller, Property::Value& value, EffectStyle::Type type);
166 * @brief Sets the shadow properties.
168 * @param[in] controller The text's controller.
169 * @param[in] value The values of the shadow's style.
170 * @param[in] type Whether the property is for the default shadow's style or the input shadow's style.
172 * @return Whether the shadow properties have been updated.
174 bool SetShadowProperties(ControllerPtr controller, const Property::Value& value, EffectStyle::Type type);
177 * @brief Retrieves the shadow's properties.
179 * @param[in] controller The text's controller.
180 * @param[out] value The value of the shadow's properties.
181 * @param[in] type Whether the property is for the default shadow or the input shadow.
183 void GetShadowProperties(ControllerPtr controller, Property::Value& value, EffectStyle::Type type);
186 * @brief Sets the emboss properties.
188 * @param[in] controller The text's controller.
189 * @param[in] value The values of the emboss's properties.
190 * @param[in] type Whether the property is for the default emboss or the input emboss.
192 * @return Whether the emboss properties have been updated.
194 bool SetEmbossProperties(ControllerPtr controller, const Property::Value& value, EffectStyle::Type type);
197 * @brief Retrieves the emboss's properties.
199 * @param[in] controller The text's controller.
200 * @param[out] value The value of the emboss's properties.
201 * @param[in] type Whether the property is for the default emboss or the input emboss.
203 void GetEmbossProperties(ControllerPtr controller, Property::Value& value, EffectStyle::Type type);
206 * @brief Sets the outline properties.
208 * @param[in] controller The text's controller.
209 * @param[in] value The values of the outline's properties.
210 * @param[in] type Whether the property is for the default outline or the input outline.
212 * @return Whether the outline properties have been updated.
214 bool SetOutlineProperties(ControllerPtr controller, const Property::Value& value, EffectStyle::Type type);
217 * @brief Retrieves the outline's properties.
219 * @param[in] controller The text's controller.
220 * @param[out] value The value of the outline's properties.
221 * @param[in] type Whether the property is for the default outline or the input outline.
223 void GetOutlineProperties(ControllerPtr controller, Property::Value& value, EffectStyle::Type type);
226 * @brief Sets the background properties.
228 * @param[in] controller The text's controller.
229 * @param[in] value The values of the background's properties.
230 * @param[in] type Whether the property is for the default background or the input background.
232 * @return Whether the background properties have been updated.
234 bool SetBackgroundProperties(ControllerPtr controller, const Property::Value& value, EffectStyle::Type type);
237 * @brief Retrieves the background's properties.
239 * @param[in] controller The text's controller.
240 * @param[out] value The value of the underline's properties.
241 * @param[in] type Whether the property is for the default background or the input background.
243 void GetBackgroundProperties(ControllerPtr controller, Property::Value& value, EffectStyle::Type type);
247 } // namespace Toolkit
251 #endif // DALI_TOOLKIT_INTERNAL_TEXT_EFFECTS_STYLE_H