1 #ifndef DALI_TOOLKIT_TEXT_STRIKETHROUGH_STYLE_PROPERTIES_H
2 #define DALI_TOOLKIT_TEXT_STRIKETHROUGH_STYLE_PROPERTIES_H
5 * Copyright (c) 2022 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/public-api/math/vector4.h>
31 * @brief Properties of strikethrough style.
33 struct StrikethroughStyleProperties
38 * Default constructor to set the default values of bitfields
40 StrikethroughStyleProperties()
41 : color{Color::BLACK},
48 StrikethroughStyleProperties(Vector4 color,
54 colorDefined{colorDefined},
55 heightDefined{heightDefined}
60 // Overloading operators
62 bool operator==(const StrikethroughStyleProperties& other) const
64 //The property is similar when both are not defined or when both are defined and have the same value.
65 return ((!colorDefined && !other.colorDefined) || ((colorDefined && other.colorDefined) && (color == other.color))) &&
66 ((!heightDefined && !other.heightDefined) || ((heightDefined && other.heightDefined) && (height == other.height)));
69 bool operator!=(const StrikethroughStyleProperties& other) const
71 return !(*this == other);
74 bool IsHeightEqualTo(const StrikethroughStyleProperties& other) const
76 return ((!heightDefined && !other.heightDefined) || ((heightDefined && other.heightDefined) && (height == other.height)));
79 StrikethroughStyleProperties& CopyIfNotDefined(const StrikethroughStyleProperties& other)
81 //Copy only the defined properties in other and not defined in this from other to this
83 if(!heightDefined && other.heightDefined)
85 height = other.height;
89 if(!colorDefined && other.colorDefined)
95 // to chain this method
99 StrikethroughStyleProperties& OverrideByDefinedProperties(const StrikethroughStyleProperties& other)
101 //Copy only the defined properties in other from other to this
103 if(other.heightDefined)
105 height = other.height;
106 heightDefined = true;
109 if(other.colorDefined)
115 // to chain this method
120 Vector4 color; ///< The color of strikethrough.
121 float height; ///< The height of strikethrough.
123 bool colorDefined : 1; ///< Whether the color is defined.
124 bool heightDefined : 1; ///< Whether the height is defined.
129 } // namespace Toolkit
133 #endif // DALI_TOOLKIT_TEXT_STRIKETHROUGH_STYLE_PROPERTIES_H