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);
std::shared_ptr< Node > Element
Decorator selectionForegroundColor(Color foreground)
要素が選択されたときの描画色を設定します。 スタイルは既存のスタイルに重ねて適用されることに注意してください。
Decorator selectionBackgroundColor(Color foreground)
要素が選択されたときの背景色を設定します。 スタイルは既存のスタイルに重ねて適用されることに注意してください。
std::function< Element(Element)> Decorator
Decorator selectionColor(Color foreground)
要素が選択されたときの色を設定します。
Element selectionStyleReset(Element child)
要素の選択スタイルをリセットします。
void Render(Screen &screen, Node *node, Selection &selection)
Decorator selectionStyle(std::function< void(Cell &)> style)
要素が選択されたときのスタイルを設定します。
std::function< void(Cell &)> style_