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/math-utils.h>
23 #include <dali/public-api/math/vector4.h>
32 * @brief Properties of strikethrough style.
34 struct StrikethroughStyleProperties
39 * Default constructor to set the default values of bitfields
41 StrikethroughStyleProperties()
42 : color{Color::BLACK},
49 StrikethroughStyleProperties(Vector4 color,
55 colorDefined{colorDefined},
56 heightDefined{heightDefined}
61 // Overloading operators
63 bool operator==(const StrikethroughStyleProperties& other) const
65 //The property is similar when both are not defined or when both are defined and have the same value.
66 return ((!colorDefined && !other.colorDefined) || ((colorDefined && other.colorDefined) && (color == other.color))) &&
67 ((!heightDefined && !other.heightDefined) || ((heightDefined && other.heightDefined) && (Dali::Equals(height, other.height))));
70 bool operator!=(const StrikethroughStyleProperties& other) const
72 return !(*this == other);
75 bool IsHeightEqualTo(const StrikethroughStyleProperties& other) const
77 return ((!heightDefined && !other.heightDefined) || ((heightDefined && other.heightDefined) && (Dali::Equals(height, other.height))));
80 StrikethroughStyleProperties& CopyIfNotDefined(const StrikethroughStyleProperties& other)
82 //Copy only the defined properties in other and not defined in this from other to this
84 if(!heightDefined && other.heightDefined)
86 height = other.height;
90 if(!colorDefined && other.colorDefined)
96 // to chain this method
100 StrikethroughStyleProperties& OverrideByDefinedProperties(const StrikethroughStyleProperties& other)
102 //Copy only the defined properties in other from other to this
104 if(other.heightDefined)
106 height = other.height;
107 heightDefined = true;
110 if(other.colorDefined)
116 // to chain this method
121 Vector4 color; ///< The color of strikethrough.
122 float height; ///< The height of strikethrough.
124 bool colorDefined : 1; ///< Whether the color is defined.
125 bool heightDefined : 1; ///< Whether the height is defined.
130 } // namespace Toolkit
134 #endif // DALI_TOOLKIT_TEXT_STRIKETHROUGH_STYLE_PROPERTIES_H