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_)17Titlebar::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