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/save_button/save_button_common.h" 22 #include "core/components_ng/pattern/security_component/security_component_common.h" 23 #include "core/components_ng/property/property.h" 24 #include "core/components/common/properties/text_style.h" 25 #include "core/event/mouse_event.h" 26 #include "core/image/image_source_info.h" 27 28 namespace OHOS::Ace::NG { 29 class ACE_EXPORT SecurityComponentLayoutProperty : public LayoutProperty { 30 DECLARE_ACE_TYPE(SecurityComponentLayoutProperty, LayoutProperty); 31 32 public: 33 SecurityComponentLayoutProperty() = default; 34 35 ~SecurityComponentLayoutProperty() override = default; 36 Clone()37 RefPtr<LayoutProperty> Clone() const override 38 { 39 auto value = MakeRefPtr<SecurityComponentLayoutProperty>(); 40 value->LayoutProperty::UpdateLayoutProperty(DynamicCast<LayoutProperty>(this)); 41 value->propBackgroundLeftPadding_ = CloneBackgroundLeftPadding(); 42 value->propBackgroundRightPadding_ = CloneBackgroundRightPadding(); 43 value->propBackgroundTopPadding_ = CloneBackgroundTopPadding(); 44 value->propBackgroundBottomPadding_ = CloneBackgroundBottomPadding(); 45 value->propTextIconSpace_ = CloneTextIconSpace(); 46 value->propSecurityComponentDescription_ = CloneSecurityComponentDescription(); 47 value->propIconStyle_ = CloneIconStyle(); 48 value->propSymbolIconStyle_ = CloneSymbolIconStyle(); 49 value->propIconSize_ = CloneIconSize(); 50 value->propIconCalcSize_ = CloneIconCalcSize(); 51 value->propIconBorderRadius_ = CloneIconBorderRadius(); 52 value->propTextContent_ = CloneTextContent(); 53 value->propImageSourceInfo_ = CloneImageSourceInfo(); 54 value->propFontSize_ = CloneFontSize(); 55 value->propSymbolIconSize_ = CloneSymbolIconSize(); 56 value->propStateEffect_ = CloneStateEffect(); 57 value->propTipPosition_ = CloneTipPosition(); 58 value->propHoverEffect_ = CloneHoverEffect(); 59 value->propFontStyle_ = CloneFontStyle(); 60 value->propFontWeight_ = CloneFontWeight(); 61 value->propFontFamily_ = CloneFontFamily(); 62 value->propBackgroundBorderWidth_ = CloneBackgroundBorderWidth(); 63 value->propBackgroundBorderRadius_ = CloneBackgroundBorderRadius(); 64 value->propBackgroundType_ = CloneBackgroundType(); 65 value->propTextStyle_ = CloneTextStyle(); 66 value->propAlignment_ = CloneAlignment(); 67 value->propIsArkuiComponent_ = CloneIsArkuiComponent(); 68 value->propIsFontColorSet_ = CloneIsFontColorSet(); 69 value->propIsTextLimitExceeded_ = CloneIsTextLimitExceeded(); 70 value->propTextIconLayoutDirection_ = CloneTextIconLayoutDirection(); 71 value->propMaxFontScale_ = CloneMaxFontScale(); 72 value->propMinFontScale_ = CloneMinFontScale(); 73 value->propMaxLines_ = CloneMaxLines(); 74 value->propAdaptMaxFontSize_ = CloneAdaptMaxFontSize(); 75 value->propAdaptMinFontSize_ = CloneAdaptMinFontSize(); 76 value->propHeightAdaptivePolicy_ = CloneHeightAdaptivePolicy(); 77 value->propIsMaxLineLimitExceeded_ = CloneIsMaxLineLimitExceeded(); 78 value->propIsIconExceeded_ = CloneIsIconExceeded(); 79 value->propHasCustomPermissionForSecComp_ = CloneHasCustomPermissionForSecComp(); 80 return value; 81 } 82 Reset()83 void Reset() override 84 { 85 LayoutProperty::Reset(); 86 ResetBackgroundLeftPadding(); 87 ResetBackgroundRightPadding(); 88 ResetBackgroundTopPadding(); 89 ResetBackgroundBottomPadding(); 90 ResetTextIconSpace(); 91 ResetSecurityComponentDescription(); 92 ResetIconStyle(); 93 ResetSymbolIconStyle(); 94 ResetIconSize(); 95 ResetIconCalcSize(); 96 ResetIconBorderRadius(); 97 ResetTextContent(); 98 ResetImageSourceInfo(); 99 ResetSymbolIconSize(); 100 ResetFontSize(); 101 ResetStateEffect(); 102 ResetTipPosition(); 103 ResetHoverEffect(); 104 ResetFontStyle(); 105 ResetFontWeight(); 106 ResetFontFamily(); 107 ResetBackgroundBorderWidth(); 108 ResetBackgroundBorderRadius(); 109 ResetBackgroundType(); 110 ResetTextStyle(); 111 ResetAlignment(); 112 ResetIsArkuiComponent(); 113 ResetIsFontColorSet(); 114 ResetIsTextLimitExceeded(); 115 ResetTextIconLayoutDirection(); 116 ResetMaxFontScale(); 117 ResetMinFontScale(); 118 ResetMaxLines(); 119 ResetAdaptMaxFontSize(); 120 ResetAdaptMinFontSize(); 121 ResetHeightAdaptivePolicy(); 122 ResetIsMaxLineLimitExceeded(); 123 ResetIsIconExceeded(); 124 ResetHasCustomPermissionForSecComp(); 125 } 126 127 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(BackgroundLeftPadding, Dimension, PROPERTY_UPDATE_MEASURE); 128 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(BackgroundRightPadding, Dimension, PROPERTY_UPDATE_MEASURE); 129 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(BackgroundTopPadding, Dimension, PROPERTY_UPDATE_MEASURE); 130 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(BackgroundBottomPadding, Dimension, PROPERTY_UPDATE_MEASURE); 131 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(TextIconSpace, Dimension, PROPERTY_UPDATE_MEASURE); 132 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(LeftSpace, Dimension, PROPERTY_UPDATE_MEASURE_SELF); 133 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(SecurityComponentDescription, int32_t, PROPERTY_UPDATE_NORMAL); 134 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(IconStyle, int32_t, PROPERTY_UPDATE_NORMAL); 135 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(SymbolIconStyle, uint32_t, PROPERTY_UPDATE_MEASURE); 136 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(IconSize, Dimension, PROPERTY_UPDATE_MEASURE); 137 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(IconCalcSize, NG::CalcSize, PROPERTY_UPDATE_MEASURE); 138 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(IconBorderRadius, NG::BorderRadiusProperty, PROPERTY_UPDATE_MEASURE); 139 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(TextContent, std::string, PROPERTY_UPDATE_MEASURE); 140 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(ImageSourceInfo, ImageSourceInfo, PROPERTY_UPDATE_NORMAL); 141 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(SymbolIconSize, Dimension, PROPERTY_UPDATE_MEASURE); 142 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(FontSize, Dimension, PROPERTY_UPDATE_MEASURE); 143 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(StateEffect, bool, PROPERTY_UPDATE_NORMAL); 144 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(TipPosition, TipPosition, PROPERTY_UPDATE_NORMAL); 145 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(HoverEffect, HoverEffectType, PROPERTY_UPDATE_NORMAL); 146 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(FontStyle, Ace::FontStyle, PROPERTY_UPDATE_MEASURE); 147 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(FontWeight, FontWeight, PROPERTY_UPDATE_MEASURE); 148 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(FontFamily, std::vector<std::string>, PROPERTY_UPDATE_MEASURE); 149 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(BackgroundBorderWidth, Dimension, PROPERTY_UPDATE_MEASURE); 150 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(BackgroundBorderRadius, NG::BorderRadiusProperty, PROPERTY_UPDATE_MEASURE); 151 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(BackgroundType, int32_t, PROPERTY_UPDATE_NORMAL); 152 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(TextStyle, int32_t, PROPERTY_UPDATE_NORMAL); 153 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(Alignment, Alignment, PROPERTY_UPDATE_NORMAL); 154 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(IsArkuiComponent, bool, PROPERTY_UPDATE_NORMAL); 155 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(IsFontColorSet, bool, PROPERTY_UPDATE_NORMAL); 156 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(IsTextLimitExceeded, bool, PROPERTY_UPDATE_NORMAL); 157 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(TextIconLayoutDirection, 158 SecurityComponentLayoutDirection, PROPERTY_UPDATE_MEASURE); 159 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(MaxFontScale, float, PROPERTY_UPDATE_MEASURE); 160 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(MinFontScale, float, PROPERTY_UPDATE_MEASURE); 161 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(MaxLines, int32_t, PROPERTY_UPDATE_MEASURE); 162 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(AdaptMaxFontSize, Dimension, PROPERTY_UPDATE_MEASURE); 163 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(AdaptMinFontSize, Dimension, PROPERTY_UPDATE_MEASURE); 164 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(HeightAdaptivePolicy, TextHeightAdaptivePolicy, PROPERTY_UPDATE_MEASURE); 165 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(IsMaxLineLimitExceeded, bool, PROPERTY_UPDATE_NORMAL); 166 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(IsIconExceeded, bool, PROPERTY_UPDATE_NORMAL); 167 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(HasCustomPermissionForSecComp, bool, PROPERTY_UPDATE_NORMAL); 168 ACE_DISALLOW_COPY_AND_MOVE(SecurityComponentLayoutProperty); 169 }; 170 } // namespace OHOS::Ace::NG 171 172 #endif // FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_NG_PATTERN_MYCIRCLE_SECURITY_COMPONENT_LAYOUT_PROPERTY_H 173