1 /* 2 * Copyright (c) 2021 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_PADDING_PADDING_COMPONENT_H 17 #define FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_PADDING_PADDING_COMPONENT_H 18 19 #include "base/utils/macros.h" 20 #include "core/components/common/properties/edge.h" 21 #include "core/pipeline/base/component.h" 22 #include "core/pipeline/base/sole_child_component.h" 23 24 namespace OHOS::Ace { 25 26 // A padding component. 27 class ACE_EXPORT PaddingComponent : public SoleChildComponent { 28 DECLARE_ACE_TYPE(PaddingComponent, SoleChildComponent); 29 30 public: 31 PaddingComponent() = default; 32 ~PaddingComponent() override = default; 33 34 RefPtr<Element> CreateElement() override; 35 36 RefPtr<RenderNode> CreateRenderNode() override; 37 GetPadding()38 const Edge& GetPadding() const 39 { 40 return padding_; 41 } 42 SetPadding(const Edge & padding)43 void SetPadding(const Edge& padding) 44 { 45 padding_ = padding; 46 } 47 SetPaddingLeft(const Dimension & value)48 void SetPaddingLeft(const Dimension& value) 49 { 50 padding_.SetLeft(value); 51 } 52 SetPaddingTop(const Dimension & value)53 void SetPaddingTop(const Dimension& value) 54 { 55 padding_.SetTop(value); 56 } 57 SetPaddingRight(const Dimension & value)58 void SetPaddingRight(const Dimension& value) 59 { 60 padding_.SetRight(value); 61 } 62 SetPaddingBottom(const Dimension & value)63 void SetPaddingBottom(const Dimension& value) 64 { 65 padding_.SetBottom(value); 66 } 67 68 private: 69 Edge padding_; 70 }; 71 72 } // namespace OHOS::Ace 73 74 #endif // FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_PADDING_PADDING_COMPONENT_H 75