#include <memory>
auto screen = ScreenInteractive::FitComponent();
auto renderer_focusable = Renderer([](bool focused) {
if (focused) {
return text(
"FOCUSABLE RENDERER()") | center | bold |
border;
} else {
return text(
" Focusable renderer() ") | center |
border;
}
});
auto renderer_non_focusable = Renderer([&] {
return text("~~~~~ Non Focusable renderer() ~~~~~");
});
auto button = Button("Wrapped quit button", screen.ExitLoopClosure());
auto renderer_wrap = Renderer(button, [&] {
if (button->Focused()) {
return button->Render() | bold |
color(Color::Red);
} else {
return button->Render();
}
});
screen.Loop(Container::Vertical({
renderer_focusable,
renderer_non_focusable,
renderer_wrap,
}));
}
Element color(const LinearGradient &gradient, Element child)
使用线性渐变效果设置元素的前景色。
Element border(Element child)
在元素周围绘制边框。
#include "ftxui/component/component_base.hpp" // 用于 ComponentBase