1 #ifndef CPPURSES_DEMOS_PALETTE_COLOR_DISPLAY_HPP 2 #define CPPURSES_DEMOS_PALETTE_COLOR_DISPLAY_HPP 3 #include <cppurses/painter/color.hpp> 4 #include <cppurses/widget/layouts/horizontal.hpp> 5 #include <cppurses/widget/layouts/vertical.hpp> 6 #include <cppurses/widget/widget.hpp> 7 #include <cppurses/widget/widgets/text_display.hpp> 8 9 namespace palette { 10 11 /// Square visual display of a given Color. 12 struct Color_patch : cppurses::Widget { 13 explicit Color_patch(cppurses::Color value); 14 void set_color(cppurses::Color value); 15 }; 16 17 /// Title and name display of a given Color. 18 struct Color_name : cppurses::layout::Vertical { 19 cppurses::Text_display& title{ 20 this->make_child<cppurses::Text_display>("Color:")}; 21 cppurses::Text_display& name{ 22 this->make_child<cppurses::Text_display>("White")}; 23 }; 24 25 /// Displays a text name and a square visual of a given Color. 26 struct Color_display : cppurses::layout::Horizontal { 27 explicit Color_display(cppurses::Color color); 28 29 /// Change the currently displayed color. 30 void set_color(cppurses::Color color); 31 32 Color_name& text{this->make_child<Color_name>()}; 33 Color_patch& square{this->make_child<Color_patch>(cppurses::Color::White)}; 34 }; 35 } // namespace palette 36 #endif // CPPURSES_DEMOS_PALETTE_COLOR_DISPLAY_HPP 37