1 /* 2 * Copyright (c) 2022 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_V2_GRID_LAYOUT_GRIDCOL_H 17 #define FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_V2_GRID_LAYOUT_GRIDCOL_H 18 19 #include "base/memory/ace_type.h" 20 #include "base/memory/referenced.h" 21 #include "core/components_v2/grid_layout/grid_col_element.h" 22 #include "core/components_v2/grid_layout/grid_container_util_class.h" 23 #include "core/components_v2/grid_layout/render_grid_col.h" 24 #include "core/pipeline/base/sole_child_component.h" 25 26 namespace OHOS::Ace::V2 { 27 28 class ACE_EXPORT GridColComponent : public SoleChildComponent { 29 DECLARE_ACE_TYPE(GridColComponent, SoleChildComponent); 30 31 public: SetSpan(const GridContainerSize & span)32 void SetSpan(const GridContainerSize& span) 33 { 34 span_ = span; 35 } 36 SetOffset(const GridContainerSize & offset)37 void SetOffset(const GridContainerSize& offset) 38 { 39 offset_ = offset; 40 } 41 SetOrder(const GridContainerSize & order)42 void SetOrder(const GridContainerSize& order) 43 { 44 order_ = order; 45 } 46 GetSpan()47 GridContainerSize GetSpan() const 48 { 49 return span_; 50 } 51 GetSpan(GridSizeType sizeType)52 int32_t GetSpan(GridSizeType sizeType) const 53 { 54 switch (sizeType) { 55 case GridSizeType::XS: 56 return span_.xs; 57 break; 58 case GridSizeType::SM: 59 return span_.sm; 60 break; 61 case GridSizeType::MD: 62 return span_.md; 63 break; 64 case GridSizeType::LG: 65 return span_.lg; 66 break; 67 case GridSizeType::XL: 68 return span_.xl; 69 break; 70 case GridSizeType::XXL: 71 return span_.xxl; 72 break; 73 default: 74 return span_.xs; 75 } 76 } 77 GetOffset()78 GridContainerSize GetOffset() const 79 { 80 return offset_; 81 } 82 GetOffset(GridSizeType sizeType)83 int32_t GetOffset(GridSizeType sizeType) const 84 { 85 switch (sizeType) { 86 case GridSizeType::XS: 87 return offset_.xs; 88 break; 89 case GridSizeType::SM: 90 return offset_.sm; 91 break; 92 case GridSizeType::MD: 93 return offset_.md; 94 break; 95 case GridSizeType::LG: 96 return offset_.lg; 97 break; 98 case GridSizeType::XL: 99 return offset_.xl; 100 break; 101 case GridSizeType::XXL: 102 return offset_.xxl; 103 break; 104 default: 105 return offset_.xs; 106 } 107 } 108 GetOrder()109 GridContainerSize GetOrder() const 110 { 111 return order_; 112 } 113 GetOrder(GridSizeType sizeType)114 int32_t GetOrder(GridSizeType sizeType) const 115 { 116 switch (sizeType) { 117 case GridSizeType::XS: 118 return order_.xs; 119 break; 120 case GridSizeType::SM: 121 return order_.sm; 122 break; 123 case GridSizeType::MD: 124 return order_.md; 125 break; 126 case GridSizeType::LG: 127 return order_.lg; 128 break; 129 case GridSizeType::XL: 130 return order_.xl; 131 break; 132 case GridSizeType::XXL: 133 return order_.xxl; 134 break; 135 default: 136 return order_.xs; 137 } 138 } 139 140 RefPtr<Element> CreateElement() override; 141 142 RefPtr<RenderNode> CreateRenderNode() override; 143 144 private: 145 GridContainerSize span_ = GridContainerSize(1); 146 GridContainerSize offset_ = GridContainerSize(0); 147 GridContainerSize order_ = GridContainerSize(0); 148 }; 149 150 } // namespace OHOS::Ace::V2 151 #endif