1 #ifndef DEMOS_GLYPH_PAINT_SIDE_PANE_HPP
2 #define DEMOS_GLYPH_PAINT_SIDE_PANE_HPP
3 #include "attribute_box.hpp"
4 #include "options_box.hpp"
5 #include "populated_glyph_stack.hpp"
6 
7 #include <cppurses/painter/attribute.hpp>
8 #include <cppurses/widget/layouts/vertical.hpp>
9 #include <cppurses/widget/widgets/color_select.hpp>
10 #include <cppurses/widget/widgets/cycle_stack.hpp>
11 #include <cppurses/widget/widgets/fixed_height.hpp>
12 #include <cppurses/widget/widgets/status_bar.hpp>
13 
14 namespace demos {
15 namespace glyph_paint {
16 
17 struct Side_pane : cppurses::layout::Vertical {
18     Side_pane();
19 
20     Populated_glyph_stack& glyph_select{
21         this->make_child<Populated_glyph_stack>()};
22     cppurses::Fixed_height& space1{this->make_child<cppurses::Fixed_height>(1)};
23 
24     cppurses::Cycle_stack& color_select_stack{
25         this->make_child<cppurses::Cycle_stack>()};
26     cppurses::Color_select& color_select_foreground{
27         color_select_stack.make_page<cppurses::Color_select>(
28             cppurses::Glyph_string{"Foreground", cppurses::Attribute::Bold})};
29     cppurses::Color_select& color_select_background{
30         color_select_stack.make_page<cppurses::Color_select>(
31             cppurses::Glyph_string{"Background", cppurses::Attribute::Bold})};
32 
33     Attribute_box& attribute_box{this->make_child<Attribute_box>()};
34 
35     cppurses::Status_bar& show_glyph{
36         this->make_child<cppurses::Status_bar>("x")};
37 
38     cppurses::Fixed_height& space2{this->make_child<cppurses::Fixed_height>(1)};
39     Options_stack& options_box{this->make_child<Options_stack>()};
40 };
41 
42 }  // namespace glyph_paint
43 }  // namespace demos
44 #endif  // DEMOS_GLYPH_PAINT_SIDE_PANE_HPP
45