Merge "Fix for multi-language support." 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) 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 Sets the underline properties.
76  *
77  * @param[in] controller The text's controller.
78  * @param[in] value The values of the underline's properties.
79  * @param[in] type Whether the property is for the default underline or the input underline.
80  *
81  * @return Whether the underline properties have been updated.
82  */
83 bool SetUnderlineProperties( ControllerPtr controller, const Property::Value& value, EffectStyle::Type type );
84
85 /**
86  * @brief Retrieves the underline's properties.
87  *
88  * @param[in] controller The text's controller.
89  * @param[out] value The value of the underline's properties.
90  * @param[in] type Whether the property is for the default underline or the input underline.
91  */
92 void GetUnderlineProperties( ControllerPtr controller, Property::Value& value, EffectStyle::Type type );
93
94 /**
95  * @brief Sets the shadow properties.
96  *
97  * @param[in] controller The text's controller.
98  * @param[in] value The values of the shadow's style.
99  * @param[in] type Whether the property is for the default shadow's style or the input shadow's style.
100  *
101  * @return Whether the shadow properties have been updated.
102  */
103 bool SetShadowProperties( ControllerPtr controller, const Property::Value& value, EffectStyle::Type type );
104
105 /**
106  * @brief Retrieves the shadow's properties.
107  *
108  * @param[in] controller The text's controller.
109  * @param[out] value The value of the shadow's properties.
110  * @param[in] type Whether the property is for the default shadow or the input shadow.
111  */
112 void GetShadowProperties( ControllerPtr controller, Property::Value& value, EffectStyle::Type type );
113
114 /**
115  * @brief Sets the emboss properties.
116  *
117  * @param[in] controller The text's controller.
118  * @param[in] value The values of the emboss's properties.
119  * @param[in] type Whether the property is for the default emboss or the input emboss.
120  *
121  * @return Whether the emboss properties have been updated.
122  */
123 bool SetEmbossProperties( ControllerPtr controller, const Property::Value& value, EffectStyle::Type type );
124
125 /**
126  * @brief Retrieves the emboss's properties.
127  *
128  * @param[in] controller The text's controller.
129  * @param[out] value The value of the emboss's properties.
130  * @param[in] type Whether the property is for the default emboss or the input emboss.
131  */
132 void GetEmbossProperties( ControllerPtr controller, Property::Value& value, EffectStyle::Type type );
133
134 /**
135  * @brief Sets the outline properties.
136  *
137  * @param[in] controller The text's controller.
138  * @param[in] value The values of the outline's properties.
139  * @param[in] type Whether the property is for the default outline or the input outline.
140  *
141  * @return Whether the outline properties have been updated.
142  */
143 bool SetOutlineProperties( ControllerPtr controller, const Property::Value& value, EffectStyle::Type type );
144
145 /**
146  * @brief Retrieves the outline's properties.
147  *
148  * @param[in] controller The text's controller.
149  * @param[out] value The value of the outline's properties.
150  * @param[in] type Whether the property is for the default outline or the input outline.
151  */
152 void GetOutlineProperties( ControllerPtr controller, Property::Value& value, EffectStyle::Type type );
153
154 } // namespace Text
155
156 } // namespace Toolkit
157
158 } // namespace Dali
159
160 #endif // __DALI_TOOLKIT_INTERNAL_TEXT_EFFECTS_STYLE_H__