32 explicit Impl(std::function<
Element()> render)
33 : render_(std::move(render)) {}
34 Element OnRender()
override {
return render_(); }
35 std::function<
Element()> render_;
62 renderer->
Add(std::move(child));
85 explicit Impl(std::function<
Element(
bool)> render)
86 : render_(std::move(render)) {}
89 Element OnRender()
override {
return render_(Focused()) | reflect(box_); }
90 bool Focusable()
const override {
return true; }
91 bool OnEvent(
Event event)
override {
93 if (!CaptureMouse(event)) {
104 std::function<
Element(
bool)> render_;
123ComponentDecorator
Renderer(ElementDecorator decorator) {
124 return [decorator](
Component component) {
125 return Renderer(component, [component, decorator] {
126 return component->Render() | decorator;
void Add(Component children)
子を追加します。 @param child 添付する子。
ftxui::Elementとして自身のレンダリングを実装します。ftxui::Eventに応答してキーボードナビゲーションを実装します。
Component Renderer(Component child, std::function< Element()>)
|child|に似ていますが、|render|をComponentRender()イベントとして使用する新しいコンポーネントを返します。
イベントを表します。キープレスイベント、ターミナルのリサイズなど、さまざまなイベントがあります。
Boxは、2D空間における矩形領域を表す構造体です。
std::shared_ptr< T > Make(Args &&... args)
std::shared_ptr< Node > Element
std::shared_ptr< ComponentBase > Component