18class SelectionStyleReset :
public NodeDecorator {
20 explicit SelectionStyleReset(
Element child)
21 : NodeDecorator(std::move(child)) {}
23 void Render(Screen& screen)
final {
24 auto old_style = screen.GetSelectionStyle();
25 screen.SetSelectionStyle([](Cell&) {});
26 NodeDecorator::Render(screen);
27 screen.SetSelectionStyle(old_style);
31class SelectionStyle :
public NodeDecorator {
33 SelectionStyle(
Element child,
const std::function<
void(Cell&)>& style)
34 : NodeDecorator(std::move(child)),
style_(style) {}
36 void Render(Screen& screen)
final {
37 auto old_style = screen.GetSelectionStyle();
38 auto new_style = [&, old_style](Cell& pixel) {
42 screen.SetSelectionStyle(new_style);
43 NodeDecorator::Render(screen);
44 screen.SetSelectionStyle(old_style);
56 return std::make_shared<SelectionStyleReset>(std::move(child));
63 pixel.background_color = foreground;
71 pixel.foreground_color = foreground;
88 return std::make_shared<SelectionStyle>(std::move(child), style);
The FTXUI ftxui:: namespace.
std::shared_ptr< Node > Element
Decorator selectionForegroundColor(Color foreground)
Set the foreground color of an element when selected. Note that the style is applied on top of the ex...
Decorator selectionBackgroundColor(Color foreground)
Set the background color of an element when selected. Note that the style is applied on top of the ex...
std::function< Element(Element)> Decorator
Decorator selectionColor(Color foreground)
Set the color of an element when selected.
Element selectionStyleReset(Element child)
Reset the selection style of an element.
void Render(Screen &screen, Node *node, Selection &selection)
Decorator selectionStyle(std::function< void(Cell &)> style)
Set the style of an element when selected.
std::function< void(Cell &)> style_