1 /* 2 * Copyright (c) 2023 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #ifndef FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_NG_PATTERN_MYCIRCLE_SECURITY_COMPONENT_LAYOUT_PROPERTY_H 17 #define FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_NG_PATTERN_MYCIRCLE_SECURITY_COMPONENT_LAYOUT_PROPERTY_H 18 19 #include "base/geometry/dimension.h" 20 #include "core/components_ng/layout/layout_property.h" 21 #include "core/components_ng/pattern/security_component/security_component_common.h" 22 #include "core/components_ng/property/property.h" 23 #include "core/components/common/properties/text_style.h" 24 25 namespace OHOS::Ace::NG { 26 class ACE_EXPORT SecurityComponentLayoutProperty : public LayoutProperty { 27 DECLARE_ACE_TYPE(SecurityComponentLayoutProperty, LayoutProperty); 28 29 public: 30 SecurityComponentLayoutProperty() = default; 31 32 ~SecurityComponentLayoutProperty() override = default; 33 Clone()34 RefPtr<LayoutProperty> Clone() const override 35 { 36 auto value = MakeRefPtr<SecurityComponentLayoutProperty>(); 37 value->LayoutProperty::UpdateLayoutProperty(DynamicCast<LayoutProperty>(this)); 38 value->propBackgroundLeftPadding_ = CloneBackgroundLeftPadding(); 39 value->propBackgroundRightPadding_ = CloneBackgroundRightPadding(); 40 value->propBackgroundTopPadding_ = CloneBackgroundTopPadding(); 41 value->propBackgroundBottomPadding_ = CloneBackgroundBottomPadding(); 42 value->propTextIconSpace_ = CloneTextIconSpace(); 43 value->propSecurityComponentDescription_ = CloneSecurityComponentDescription(); 44 value->propIconStyle_ = CloneIconStyle(); 45 value->propIconSize_ = CloneIconSize(); 46 value->propFontSize_ = CloneFontSize(); 47 value->propFontStyle_ = CloneFontStyle(); 48 value->propFontWeight_ = CloneFontWeight(); 49 value->propFontFamily_ = CloneFontFamily(); 50 value->propBackgroundBorderWidth_ = CloneBackgroundBorderWidth(); 51 value->propBackgroundBorderRadius_ = CloneBackgroundBorderRadius(); 52 value->propBackgroundType_ = CloneBackgroundType(); 53 value->propIsArkuiComponent_ = CloneIsArkuiComponent(); 54 value->propIsFontColorSet_ = CloneIsFontColorSet(); 55 value->propIsTextLimitExceeded_ = CloneIsTextLimitExceeded(); 56 value->propTextIconLayoutDirection_ = CloneTextIconLayoutDirection(); 57 return value; 58 } 59 Reset()60 void Reset() override 61 { 62 LayoutProperty::Reset(); 63 ResetBackgroundLeftPadding(); 64 ResetBackgroundRightPadding(); 65 ResetBackgroundTopPadding(); 66 ResetBackgroundBottomPadding(); 67 ResetTextIconSpace(); 68 ResetSecurityComponentDescription(); 69 ResetIconStyle(); 70 ResetIconSize(); 71 ResetFontSize(); 72 ResetFontStyle(); 73 ResetFontWeight(); 74 ResetFontFamily(); 75 ResetBackgroundBorderWidth(); 76 ResetBackgroundBorderRadius(); 77 ResetBackgroundType(); 78 ResetIsArkuiComponent(); 79 ResetIsFontColorSet(); 80 ResetIsTextLimitExceeded(); 81 ResetTextIconLayoutDirection(); 82 } 83 84 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(BackgroundLeftPadding, Dimension, PROPERTY_UPDATE_MEASURE); 85 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(BackgroundRightPadding, Dimension, PROPERTY_UPDATE_MEASURE); 86 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(BackgroundTopPadding, Dimension, PROPERTY_UPDATE_MEASURE); 87 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(BackgroundBottomPadding, Dimension, PROPERTY_UPDATE_MEASURE); 88 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(TextIconSpace, Dimension, PROPERTY_UPDATE_MEASURE); 89 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(LeftSpace, Dimension, PROPERTY_UPDATE_MEASURE_SELF); 90 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(SecurityComponentDescription, int32_t, PROPERTY_UPDATE_NORMAL); 91 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(IconStyle, int32_t, PROPERTY_UPDATE_NORMAL); 92 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(IconSize, Dimension, PROPERTY_UPDATE_MEASURE); 93 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(FontSize, Dimension, PROPERTY_UPDATE_MEASURE); 94 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(FontStyle, Ace::FontStyle, PROPERTY_UPDATE_MEASURE); 95 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(FontWeight, FontWeight, PROPERTY_UPDATE_MEASURE); 96 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(FontFamily, std::vector<std::string>, PROPERTY_UPDATE_MEASURE); 97 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(BackgroundBorderWidth, Dimension, PROPERTY_UPDATE_MEASURE); 98 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(BackgroundBorderRadius, Dimension, PROPERTY_UPDATE_MEASURE); 99 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(BackgroundType, int32_t, PROPERTY_UPDATE_NORMAL); 100 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(IsArkuiComponent, bool, PROPERTY_UPDATE_NORMAL); 101 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(IsFontColorSet, bool, PROPERTY_UPDATE_NORMAL); 102 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(IsTextLimitExceeded, bool, PROPERTY_UPDATE_NORMAL); 103 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(TextIconLayoutDirection, 104 SecurityComponentLayoutDirection, PROPERTY_UPDATE_MEASURE); 105 ACE_DISALLOW_COPY_AND_MOVE(SecurityComponentLayoutProperty); 106 }; 107 } // namespace OHOS::Ace::NG 108 109 #endif // FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_NG_PATTERN_MYCIRCLE_SECURITY_COMPONENT_LAYOUT_PROPERTY_H 110