sandbox
Loading...
Searching...
No Matches
grid_layout.hpp
1// SPDX-License-Identifier: MIT
2#ifndef LIBSBX_UI_GRID_LAYOUT_HPP_
3#define LIBSBX_UI_GRID_LAYOUT_HPP_
4
5#include <algorithm>
6
7#include <libsbx/ui/layout.hpp>
8#include <libsbx/ui/element.hpp>
9
10namespace sbx::ui {
11
12class grid_layout : public layout {
13
14public:
15
16 std::uint32_t columns{2};
17 std::uint32_t rows{2};
18 std::float_t horizontal_spacing{0.0f};
19 std::float_t vertical_spacing{0.0f};
20
21 grid_layout() = default;
22
23 grid_layout(std::uint32_t columns, std::uint32_t rows, std::float_t spacing = 0.0f);
24
25 grid_layout(std::uint32_t columns, std::uint32_t rows, std::float_t horizontal_spacing, std::float_t vertical_spacing);
26
27 ~grid_layout() override = default;
28
29 auto arrange(const rectangle& bounds, std::vector<std::unique_ptr<element>>& children) -> void override;
30
31}; // class grid_layout
32
33} // namespace sbx::ui
34
35#endif // LIBSBX_UI_GRID_LAYOUT_HPP_
Definition: grid_layout.hpp:12
Definition: layout.hpp:39
Definition: layout.hpp:15