1 #include "color_control.hpp"
2 
3 #include <cppurses/system/system.hpp>
4 #include <cppurses/widget/border.hpp>
5 
6 #include "palette_helpers.hpp"
7 
8 namespace {
9 using namespace cppurses;
10 
11 /// Enable only the east wall of given a border, \p b. Also enables the border.
enable_east_wall(Border & b)12 void enable_east_wall(Border& b) {
13     b.enable();
14     b.segments.disable_all();
15     b.segments.east.enable();
16 }
17 }  // namespace
18 
19 namespace palette {
20 
Color_control()21 Color_control::Color_control() {
22     enable_east_wall(slider_red_.border);
23     slider_red_.width_policy.hint(6);
24 
25     enable_east_wall(slider_green_.border);
26     slider_green_.width_policy.hint(6);
27 }
28 
set_sliders(cppurses::Color color)29 void Color_control::set_sliders(cppurses::Color color) {
30     auto palette = cppurses::System::terminal.current_palette();
31     const auto& definition = detail::extract_definition(palette, color);
32     this->set_red_slider(definition.values.red);
33     this->set_green_slider(definition.values.green);
34     this->set_blue_slider(definition.values.blue);
35 }
36 
37 }  // namespace palette
38