23 for (
auto& it : event.
input()) {
24 codes +=
" " + std::to_string((
unsigned int)it);
32 std::vector<Event> keys;
39 for (
size_t i = std::max(0, (
int)keys.size() - 20); i < keys.size(); ++i) {
40 children.push_back(
text(
Code(keys[i])));
42 return vbox(children);
50 for (
size_t i = std::max(0, (
int)keys.size() - 20); i < keys.size(); ++i) {
51 children.push_back(
text(keys[i].DebugString()));
53 return vbox(children);
61 keys.push_back(event);
65 screen.Loop(component);
static ScreenInteractive TerminalOutput()
const std::string & input() const
Component Renderer(Component child, std::function< Element()>)
返回一个新组件,类似于 |child|,但使用 |render| 作为 Component::Render() 事件。
Component ResizableSplitLeft(Component main, Component back, int *main_size)
两个组件之间的水平分割,可通过鼠标配置。
代表一个事件。它可以是按键事件、终端大小调整等等...
Element text(std::wstring text)
显示一段Unicode文本。
Element separator()
在两个其他元素之间绘制垂直或水平分隔线。
Element vbox(Elements)
垂直一个接一个显示元素的容器。
#include "ftxui/component/component_base.hpp" // 用于 ComponentBase
std::vector< Element > Elements
Component CatchEvent(Component child, std::function< bool(Event)>)
std::string Code(Event event)