3#ifndef FTXUI_COMPONENT_BASE_HPP
4#define FTXUI_COMPONENT_BASE_HPP
96 bool in_render =
false;
virtual bool Focusable() const
当组件包含可聚焦元素时返回 true。 使用键盘导航时,不可聚焦的组件将被跳过。
bool Focused() const
返回元素是否被用户聚焦。 当 ComponentBase 被用户聚焦时返回 true。当一个元素及其所有祖先都是其父级的 ActiveChild() 并且它是 Focusable() 时,该元素被聚焦。
CapturedMouse CaptureMouse(const Event &event)
如果可用,则捕获 CapturedMouse。只有一个组件可以捕获它。 它表示一个优先于其他组件的组件。
void Add(Component children)
添加一个子项。 @param child 要附加的子项。
Element Render()
绘制组件。 构建一个 ftxui::Element,用于在表示此 ftxui::ComponentBase 的 ftxui::Screen 上绘制。 请覆盖 OnRender() 以修改渲染。
void TakeFocus()
配置所有祖先以将焦点赋予此组件。
bool Active() const
返回该元素是否是其父级的当前活动子项。
virtual Component ActiveChild()
返回当前活动的子项。
void DetachAllChildren()
移除所有子项。
virtual void SetActiveChild(ComponentBase *child)
使 |child| 成为“活动”子项。
int Index() const
返回组件在其父级中的索引。如果没有父级,则返回 -1。
size_t ChildCount() const
返回子项的数量。
ComponentBase(ComponentBase &&)=delete
ComponentBase & operator=(ComponentBase &&)=delete
ComponentBase * Parent() const
返回父 ComponentBase,如果没有则返回 null。
virtual Element OnRender()
绘制组件。 构建一个 ftxui::Element,用于在表示此 ftxui::ComponentBase 的 ftxui::Screen 上绘制。 此函数旨在被覆盖。
virtual bool OnEvent(Event)
响应事件时调用。
ComponentBase(const ComponentBase &)=delete
ComponentBase & operator=(const ComponentBase &)=delete
Component & ChildAt(size_t i)
访问索引 i 处的子项。
ComponentBase(Components children)
virtual void OnAnimation(animation::Params ¶ms)
响应动画事件时调用。
它将自身实现为 ftxui::Element。它通过响应 ftxui::Event 来实现键盘导航。
代表一个事件。它可以是按键事件、终端大小调整等等...
FTXUI ftxui::animation:: 命名空间
#include "ftxui/component/component_base.hpp" // 用于 ComponentBase
std::unique_ptr< CapturedMouseInterface > CapturedMouse
std::shared_ptr< Node > Element
std::vector< Component > Components
std::shared_ptr< ComponentBase > Component