1 #ifndef CHESSBOARD_BORDERS_HPP
2 #define CHESSBOARD_BORDERS_HPP
3 #include <cppurses/widget/layouts/horizontal.hpp>
4 #include <cppurses/widget/layouts/vertical.hpp>
5 #include <cppurses/widget/widgets/text_display.hpp>
6 
7 #include "chessboard_widget.hpp"
8 
9 class Row_listing : public cppurses::Text_display {
10    public:
11     Row_listing();
12 };
13 
14 class Column_listing : public cppurses::Text_display {
15    public:
16     Column_listing();
17 };
18 
19 struct Chessboard_with_borders : public cppurses::layout::Vertical {
20     Chessboard_with_borders();
21 
22     Column_listing& top_column{this->make_child<Column_listing>()};
23     cppurses::layout::Horizontal& middle_layout{
24         this->make_child<cppurses::layout::Horizontal>()};
25     Row_listing& left_row{middle_layout.make_child<Row_listing>()};
26     Chessboard_widget& chessboard{
27         middle_layout.make_child<Chessboard_widget>()};
28     Row_listing& right_row{middle_layout.make_child<Row_listing>()};
29     Column_listing& bottom_column{this->make_child<Column_listing>()};
30 };
31 #endif  // CHESSBOARD_BORDERS_HPP
32