32 explicit Impl(std::function<
Element()> render)
33 : render_(std::move(render)) {}
34 Element OnRender()
override {
return render_(); }
35 std::function<
Element()> render_;
87 explicit Impl(std::function<
Element(
bool)> render)
88 : render_(std::move(render)) {}
91 Element OnRender()
override {
return render_(Focused()) | reflect(box_); }
92 bool Focusable()
const override {
return true; }
93 bool OnEvent(
Event event)
override {
95 if (!CaptureMouse(event)) {
106 std::function<
Element(
bool)> render_;
126 return [decorator](
Component component) {
127 return Renderer(component, [component, decorator] {
128 return component->Render() | decorator;
它将自身实现为 ftxui::Element。它通过响应 ftxui::Event 来实现键盘导航。
Component Renderer(Component child, std::function< Element()>)
返回一个新组件,类似于 |child|,但使用 |render| 作为 Component::Render() 事件。
代表一个事件。它可以是按键事件、终端大小调整等等...
#include "ftxui/component/component_base.hpp" // 用于 ComponentBase
std::shared_ptr< T > Make(Args &&... args)
std::shared_ptr< Node > Element
std::function< Element(Element)> ElementDecorator
std::function< Component(Component)> ComponentDecorator
std::shared_ptr< ComponentBase > Component