chromium/ui/views/layout/table_layout_view.h

// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef UI_VIEWS_LAYOUT_TABLE_LAYOUT_VIEW_H_
#define UI_VIEWS_LAYOUT_TABLE_LAYOUT_VIEW_H_

#include <memory>
#include <vector>

#include "base/memory/raw_ptr.h"
#include "ui/base/metadata/metadata_header_macros.h"
#include "ui/views/layout/layout_types.h"
#include "ui/views/layout/table_layout.h"
#include "ui/views/metadata/view_factory.h"
#include "ui/views/view.h"

namespace views {

class VIEWS_EXPORT TableLayoutView : public View {};

BEGIN_VIEW_BUILDER(VIEWS_EXPORT, TableLayoutView, View)
VIEW_BUILDER_METHOD(AddColumn,
                    views::LayoutAlignment,
                    views::LayoutAlignment,
                    float,
                    views::TableLayout::ColumnSize,
                    int,
                    int)
VIEW_BUILDER_METHOD(AddPaddingColumn, float, int)
VIEW_BUILDER_METHOD(AddRows, size_t, float, int)
VIEW_BUILDER_METHOD(AddPaddingRow, float, int)
VIEW_BUILDER_METHOD(LinkColumnSizes, std::vector<size_t>)
VIEW_BUILDER_PROPERTY(int, LinkedColumnSizeLimit)
VIEW_BUILDER_PROPERTY(gfx::Size, MinimumSize)
END_VIEW_BUILDER

}  // namespace views

DEFINE_VIEW_BUILDER()

#endif  // UI_VIEWS_LAYOUT_TABLE_LAYOUT_VIEW_H_