1 #ifndef CPPURSES_WIDGET_LAYOUTS_HORIZONTAL_HPP
2 #define CPPURSES_WIDGET_LAYOUTS_HORIZONTAL_HPP
3 #include <cstddef>
4 #include <vector>
5 
6 #include <cppurses/widget/layout.hpp>
7 
8 namespace cppurses {
9 class Widget;
10 namespace layout {
11 
12 class Horizontal : public Layout {
13    protected:
14     void update_geometry() override;
15 
16    private:
17     std::vector<Dimensions> calculate_widget_sizes();
18     void move_and_resize_children(const std::vector<Dimensions>& dimensions);
19 
20     void distribute_space(std::vector<Dimensions_reference> widgets,
21                           int width_left);
22 
23     void collect_space(std::vector<Dimensions_reference> widgets,
24                        int width_left);
25     // void collect_space(std::vector<Dimensions>& widgets, int width_left);
26 };
27 
28 }  // namespace layout
29 }  // namespace cppurses
30 #endif  // CPPURSES_WIDGET_LAYOUTS_HORIZONTAL_HPP
31