1 #include <cppurses/widget/widgets/titlebar.hpp>
2 
3 #include <utility>
4 
5 #include <signals/signal.hpp>
6 
7 #include <cppurses/painter/color.hpp>
8 #include <cppurses/painter/glyph.hpp>
9 #include <cppurses/painter/glyph_string.hpp>
10 #include <cppurses/system/system.hpp>
11 #include <cppurses/widget/size_policy.hpp>
12 #include <cppurses/widget/widgets/label.hpp>
13 #include <cppurses/widget/widgets/push_button.hpp>
14 
15 namespace cppurses {
16 
Titlebar(Glyph_string title_)17 Titlebar::Titlebar(Glyph_string title_)
18     : title{this->make_child<Label>(std::move(title_))},
19       exit_button{this->make_child<Push_button>(L"│✕ ")} {
20     this->set_name("Titlebar");
21     this->height_policy.fixed(1);
22 
23     title.width_policy.type(Size_policy::Expanding);
24     title.brush.set_background(Color::White);
25     title.brush.set_foreground(Color::Black);
26     title.set_alignment(Alignment::Center);
27 
28     exit_button.clicked.connect(System::quit);
29     exit_button.brush.set_background(Color::White);
30     exit_button.brush.set_foreground(Color::Black);
31     exit_button.width_policy.fixed(3);
32 }
33 }  // namespace cppurses
34