18 const std::string lorem =
19 "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed "
20 "do eiusmod tempor incididunt ut labore et dolore magna "
21 "aliqua. Ut enim ad minim veniam, quis nostrud exercitation "
22 "ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis "
23 "aute irure dolor in reprehenderit in voluptate velit esse "
24 "cillum dolore eu fugiat nulla pariatur. Excepteur sint "
25 "occaecat cupidatat non proident, sunt in culpa qui officia "
26 "deserunt mollit anim id est laborum.";
28 text(lorem.substr(0, -1)),
text(lorem.substr(5, -1)),
text(
""),
29 text(lorem.substr(10, -1)),
text(lorem.substr(15, -1)),
text(
""),
30 text(lorem.substr(20, -1)),
text(lorem.substr(25, -1)),
text(
""),
31 text(lorem.substr(30, -1)),
text(lorem.substr(35, -1)),
text(
""),
32 text(lorem.substr(40, -1)),
text(lorem.substr(45, -1)),
text(
""),
33 text(lorem.substr(50, -1)),
text(lorem.substr(55, -1)),
text(
""),
34 text(lorem.substr(60, -1)),
text(lorem.substr(65, -1)),
text(
""),
35 text(lorem.substr(70, -1)),
text(lorem.substr(75, -1)),
text(
""),
36 text(lorem.substr(80, -1)),
text(lorem.substr(85, -1)),
text(
""),
37 text(lorem.substr(90, -1)),
text(lorem.substr(95, -1)),
text(
""),
38 text(lorem.substr(100, -1)),
text(lorem.substr(105, -1)),
text(
""),
39 text(lorem.substr(110, -1)),
text(lorem.substr(115, -1)),
text(
""),
40 text(lorem.substr(120, -1)),
text(lorem.substr(125, -1)),
text(
""),
41 text(lorem.substr(130, -1)),
text(lorem.substr(135, -1)),
text(
""),
42 text(lorem.substr(140, -1)),
46 auto scrollable_content =
Renderer(content, [&, content] {
52 option_x.
value = &scroll_x;
55 option_x.increment = 0.1f;
59 auto scrollbar_x =
Slider(option_x);
62 option_y.
value = &scroll_y;
69 auto scrollbar_y =
Slider(option_y);
71 Add(Container::Vertical({
76 Container::Horizontal({
89 .title =
"First window",
103 auto window_container = Container::Stacked({
109 screen.Loop(window_container);
void Add(Component children)
添加一个子项。 @param child 要附加的子项。
static ScreenInteractive Fullscreen()
它将自身实现为 ftxui::Element。它通过响应 ftxui::Event 来实现键盘导航。
Component Horizontal(Components children)
一个组件列表,水平逐个绘制,并使用左/右箭头键或“h”/“l”键水平导航。
Component Renderer(Component child, std::function< Element()>)
返回一个新组件,类似于 |child|,但使用 |render| 作为 Component::Render() 事件。
Component Window(WindowOptions option)
一个可拖动/可调整大小的窗口。要使用多个窗口,它们必须 使用 Container::Stacked({...}) 组件进行堆叠;
Decorator focusPositionRelative(float x, float y)
在 frame 内部使用,这会强制视图滚动到给定位置。位置以请求大小的比例表示。
Element flex(Element)
使子元素按比例扩展以填充容器中剩余的空间。
Element text(std::wstring text)
显示一段Unicode文本。
Element vbox(Elements)
垂直一个接一个显示元素的容器。
#include "ftxui/component/component_base.hpp" // 用于 ComponentBase
std::shared_ptr< T > Make(Args &&... args)
Component Slider(SliderOption< T > options)
任意方向的滑块。
std::shared_ptr< ComponentBase > Component