39 std::vector<std::string> entries{
40 "Monkey",
"Dog",
"Cat",
"Bird",
"Elephant",
"Cat",
42 std::array<int, 12> selected = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
44 auto vmenu_1_ =
VMenu1(&entries, &selected[0]);
45 auto vmenu_2_ =
VMenu2(&entries, &selected[1]);
46 auto vmenu_3_ =
VMenu3(&entries, &selected[2]);
47 auto vmenu_4_ =
VMenu4(&entries, &selected[3]);
48 auto vmenu_5_ =
VMenu5(&entries, &selected[4]);
49 auto vmenu_6_ =
VMenu6(&entries, &selected[5]);
50 auto vmenu_7_ =
VMenu7(&entries, &selected[6]);
51 auto vmenu_8_ =
VMenu8(&entries, &selected[7]);
53 auto hmenu_1_ =
HMenu1(&entries, &selected[8]);
54 auto hmenu_2_ =
HMenu2(&entries, &selected[9]);
55 auto hmenu_3_ =
HMenu3(&entries, &selected[10]);
56 auto hmenu_4_ =
HMenu4(&entries, &selected[11]);
57 auto hmenu_5_ =
HMenu5(&entries, &selected[12]);
59 auto container = Container::Vertical({
60 Container::Horizontal({
116 option.entries_option.transform = [](
EntryState state) {
117 state.label = (state.active ?
"> " :
" ") + state.label;
127 return Menu(entries, selected, option);
132 option.entries_option.transform = [](
EntryState state) {
133 state.label += (state.active ?
" <" :
" ");
143 return Menu(entries, selected, option);
148 option.entries_option.transform = [](
EntryState state) {
149 Element e = state.active ?
text(
"[" + state.label +
"]")
150 :
text(
" " + state.label +
" ");
163 return Menu(entries, selected, option);
168 option.entries_option.transform = [](
EntryState state) {
169 if (state.active && state.focused) {
183 return Menu(entries, selected, option);
188 option.entries_option.transform = [](
EntryState state) {
189 auto element =
text(state.label);
190 if (state.active && state.focused) {
197 return element |
bold;
201 return Menu(entries, selected, option);
208 option.underline.SetAnimationFunction(animation::easing::Linear);
209 return Menu(entries, selected, option);
214 option.entries_option.animated_colors.foreground.enabled =
true;
215 option.entries_option.animated_colors.background.enabled =
true;
216 option.entries_option.animated_colors.background.active =
Color::Red;
217 option.entries_option.animated_colors.background.inactive =
Color::Black;
218 option.entries_option.animated_colors.foreground.active =
Color::White;
219 option.entries_option.animated_colors.foreground.inactive =
Color::Red;
220 return Menu(entries, selected, option);
225 option.entries_option.animated_colors.foreground.Set(
227 return Menu(entries, selected, option);
240 option.elements_infix = [] {
return text(
" 🮣🮠 "); };
242 return Menu(entries, selected, option);
251 option.underline.SetAnimation(std::chrono::milliseconds(1500),
252 animation::easing::ElasticOut);
253 option.entries_option.transform = [](
EntryState state) {
255 if (state.active && state.focused) {
258 if (!state.focused && !state.active) {
265 return Menu(entries, selected, option);
static ScreenInteractive TerminalOutput()
static MenuOption Toggle()
带有分隔符的水平菜单的标准选项。 这对于实现选项卡栏非常有用。
static MenuOption Horizontal()
水平菜单的标准选项。 这对于实现选项卡栏非常有用。
static MenuOption VerticalAnimated()
动画垂直菜单的标准选项。 这对于实现可选择项目列表非常有用。
static MenuOption Vertical()
垂直菜单的标准选项。 这对于实现可选择项目列表非常有用。
static MenuOption HorizontalAnimated()
动画水平菜单的标准选项。 这对于实现选项卡栏非常有用。
Component Menu(MenuOption options)
文本列表。選定的元素是焦點。
Component Renderer(Component child, std::function< Element()>)
返回一个新组件,类似于 |child|,但使用 |render| 作为 Component::Render() 事件。
virtual void Render(Screen &screen)
在 ftxui::Screen 上显示元素。
Decorator bgcolor(Color)
使用背景色进行装饰。
Element flex(Element)
使子元素按比例扩展以填充容器中剩余的空间。
Element bold(Element)
使用粗体字体,用于强调元素。
Element text(std::wstring text)
显示一段Unicode文本。
Element separator()
在两个其他元素之间绘制垂直或水平分隔线。
Element filler()
一个元素,它将按比例扩展以填充容器中剩余的空间。
Element dim(Element)
使用浅色字体,用于不那么重要的元素。
Decorator color(Color)
使用前景色进行装饰。
Element vbox(Elements)
垂直一个接一个显示元素的容器。
#include "ftxui/component/component_base.hpp" // 用于 ComponentBase
std::shared_ptr< Node > Element
Element hbox(Elements)
一个按水平顺序逐一显示元素的容器。
Element borderDouble(Element)
std::shared_ptr< ComponentBase > Component
来自 |ButtonOption|、|CheckboxOption|、 |RadioboxOption|、|MenuEntryOption|、|MenuOption| 的转换参数。