1 /* 2 * Copyright (c) 2024 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_PATTERNS_MENU_MENU_ITEM_MENU_ITEM_PAINT_PROPERTY_H 17 #define FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_NG_PATTERNS_MENU_MENU_ITEM_MENU_ITEM_PAINT_PROPERTY_H 18 19 #include "core/components/common/properties/text_style.h" 20 #include "core/components_ng/render/paint_property.h" 21 22 namespace OHOS::Ace::NG { 23 class ACE_EXPORT MenuItemPaintProperty : public PaintProperty { 24 DECLARE_ACE_TYPE(MenuItemPaintProperty, PaintProperty) 25 26 public: 27 MenuItemPaintProperty() = default; 28 ~MenuItemPaintProperty() override = default; 29 Clone()30 RefPtr<PaintProperty> Clone() const override 31 { 32 auto paintProperty = MakeRefPtr<MenuItemPaintProperty>(); 33 paintProperty->propStrokeWidth_ = CloneStrokeWidth(); 34 paintProperty->propDividerColor_ = CloneDividerColor(); 35 paintProperty->propStartMargin_ = CloneStartMargin(); 36 paintProperty->propEndMargin_ = CloneEndMargin(); 37 paintProperty->propNeedDivider_ = CloneNeedDivider(); 38 paintProperty->propHover_ = CloneHover(); 39 paintProperty->propPress_ = ClonePress(); 40 return paintProperty; 41 } 42 Reset()43 void Reset() override 44 { 45 PaintProperty::Reset(); 46 ResetStrokeWidth(); 47 ResetDividerColor(); 48 ResetStartMargin(); 49 ResetEndMargin(); 50 ResetNeedDivider(); 51 ResetHover(); 52 ResetPress(); 53 } 54 55 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(StrokeWidth, Dimension, PROPERTY_UPDATE_MEASURE); 56 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(DividerColor, Color, PROPERTY_UPDATE_MEASURE); 57 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(StartMargin, Dimension, PROPERTY_UPDATE_MEASURE); 58 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(EndMargin, Dimension, PROPERTY_UPDATE_MEASURE); 59 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(NeedDivider, bool, PROPERTY_UPDATE_MEASURE); 60 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(Hover, bool, PROPERTY_UPDATE_MEASURE); 61 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(Press, bool, PROPERTY_UPDATE_MEASURE); 62 63 ACE_DISALLOW_COPY_AND_MOVE(MenuItemPaintProperty); 64 }; 65 } // namespace OHOS::Ace::NG 66 67 #endif // FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_NG_PATTERNS_MENU_MENU_ITEM_MENU_ITEM_PAINT_PROPERTY_H 68