1a3e0fd82Sopenharmony_ci/* 2a3e0fd82Sopenharmony_ci * Copyright (c) 2020-2021 Huawei Device Co., Ltd. 3a3e0fd82Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4a3e0fd82Sopenharmony_ci * you may not use this file except in compliance with the License. 5a3e0fd82Sopenharmony_ci * You may obtain a copy of the License at 6a3e0fd82Sopenharmony_ci * 7a3e0fd82Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8a3e0fd82Sopenharmony_ci * 9a3e0fd82Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10a3e0fd82Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11a3e0fd82Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12a3e0fd82Sopenharmony_ci * See the License for the specific language governing permissions and 13a3e0fd82Sopenharmony_ci * limitations under the License. 14a3e0fd82Sopenharmony_ci */ 15a3e0fd82Sopenharmony_ci 16a3e0fd82Sopenharmony_ci#ifndef GRAPHIC_LITE_GRID_LAYOUT_H 17a3e0fd82Sopenharmony_ci#define GRAPHIC_LITE_GRID_LAYOUT_H 18a3e0fd82Sopenharmony_ci 19a3e0fd82Sopenharmony_ci/** 20a3e0fd82Sopenharmony_ci * @addtogroup UI_Layout 21a3e0fd82Sopenharmony_ci * @{ 22a3e0fd82Sopenharmony_ci * 23a3e0fd82Sopenharmony_ci * @brief Defines UI layouts such as <b>FlexLayout</b> and <b>GridLayout</b>. 24a3e0fd82Sopenharmony_ci * 25a3e0fd82Sopenharmony_ci * @since 1.0 26a3e0fd82Sopenharmony_ci * @version 1.0 27a3e0fd82Sopenharmony_ci */ 28a3e0fd82Sopenharmony_ci 29a3e0fd82Sopenharmony_ci/** 30a3e0fd82Sopenharmony_ci * @file grid_layout.h 31a3e0fd82Sopenharmony_ci * 32a3e0fd82Sopenharmony_ci * @brief Declares a grid layout container. You can perform simple grid layout on child views that the container holds. 33a3e0fd82Sopenharmony_ci * 34a3e0fd82Sopenharmony_ci * @since 1.0 35a3e0fd82Sopenharmony_ci * @version 1.0 36a3e0fd82Sopenharmony_ci */ 37a3e0fd82Sopenharmony_ci 38a3e0fd82Sopenharmony_ci#include "layout.h" 39a3e0fd82Sopenharmony_ci 40a3e0fd82Sopenharmony_cinamespace OHOS { 41a3e0fd82Sopenharmony_ci/** 42a3e0fd82Sopenharmony_ci * @brief Defines a grid layout container. You can perform simple grid layout on child views that the container holds. 43a3e0fd82Sopenharmony_ci * 44a3e0fd82Sopenharmony_ci * @since 1.0 45a3e0fd82Sopenharmony_ci * @version 1.0 46a3e0fd82Sopenharmony_ci */ 47a3e0fd82Sopenharmony_ciclass GridLayout : public Layout { 48a3e0fd82Sopenharmony_cipublic: 49a3e0fd82Sopenharmony_ci /** 50a3e0fd82Sopenharmony_ci * @brief A default constructor used to create a <b>GridLayout</b> instance. 51a3e0fd82Sopenharmony_ci * @since 1.0 52a3e0fd82Sopenharmony_ci * @version 1.0 53a3e0fd82Sopenharmony_ci */ 54a3e0fd82Sopenharmony_ci GridLayout() : rows_(0), cols_(0) {} 55a3e0fd82Sopenharmony_ci 56a3e0fd82Sopenharmony_ci /** 57a3e0fd82Sopenharmony_ci * @brief A destructor used to delete the <b>GridLayout</b> instance. 58a3e0fd82Sopenharmony_ci * @since 1.0 59a3e0fd82Sopenharmony_ci * @version 1.0 60a3e0fd82Sopenharmony_ci */ 61a3e0fd82Sopenharmony_ci virtual ~GridLayout() {} 62a3e0fd82Sopenharmony_ci 63a3e0fd82Sopenharmony_ci /** 64a3e0fd82Sopenharmony_ci * @brief Sets the number of rows in a grid. 65a3e0fd82Sopenharmony_ci * @param rows Indicates the number of rows to set. 66a3e0fd82Sopenharmony_ci * @since 1.0 67a3e0fd82Sopenharmony_ci * @version 1.0 68a3e0fd82Sopenharmony_ci */ 69a3e0fd82Sopenharmony_ci void SetRows(const uint16_t& rows) 70a3e0fd82Sopenharmony_ci { 71a3e0fd82Sopenharmony_ci rows_ = rows; 72a3e0fd82Sopenharmony_ci } 73a3e0fd82Sopenharmony_ci 74a3e0fd82Sopenharmony_ci /** 75a3e0fd82Sopenharmony_ci * @brief Sets the number of columns in a grid. 76a3e0fd82Sopenharmony_ci * @param cols Indicates the number of columns to set. 77a3e0fd82Sopenharmony_ci * @since 1.0 78a3e0fd82Sopenharmony_ci * @version 1.0 79a3e0fd82Sopenharmony_ci */ 80a3e0fd82Sopenharmony_ci void SetCols(const uint16_t& cols) 81a3e0fd82Sopenharmony_ci { 82a3e0fd82Sopenharmony_ci cols_ = cols; 83a3e0fd82Sopenharmony_ci } 84a3e0fd82Sopenharmony_ci 85a3e0fd82Sopenharmony_ci /** 86a3e0fd82Sopenharmony_ci * @brief Lays out all child views according to the preset arrangement mode. 87a3e0fd82Sopenharmony_ci * @param needInvalidate Specifies whether to refresh the invalidated area after the layout is complete. 88a3e0fd82Sopenharmony_ci * Value <b>true</b> means to refresh the invalidated area after the layout is complete, 89a3e0fd82Sopenharmony_ci * and <b>false</b> means the opposite. 90a3e0fd82Sopenharmony_ci * @since 1.0 91a3e0fd82Sopenharmony_ci * @version 1.0 92a3e0fd82Sopenharmony_ci */ 93a3e0fd82Sopenharmony_ci void LayoutChildren(bool needInvalidate = false) override; 94a3e0fd82Sopenharmony_ci 95a3e0fd82Sopenharmony_ciprivate: 96a3e0fd82Sopenharmony_ci void LayoutHorizontal(); 97a3e0fd82Sopenharmony_ci void LayoutVertical(); 98a3e0fd82Sopenharmony_ci 99a3e0fd82Sopenharmony_ci uint16_t rows_; 100a3e0fd82Sopenharmony_ci uint16_t cols_; 101a3e0fd82Sopenharmony_ci}; 102a3e0fd82Sopenharmony_ci} // namespace OHOS 103a3e0fd82Sopenharmony_ci#endif // GRAPHIC_LITE_GRID_LAYOUT_H 104