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({
77 auto renderer =
Renderer(container, [&] {
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()
Opciones estándar para un menú horizontal con un separador. Esto puede ser útil para implementar una ...
static MenuOption Horizontal()
Opciones estándar para un menú horizontal. Esto puede ser útil para implementar una barra de pestañas...
static MenuOption VerticalAnimated()
Opciones estándar para un menú vertical animado. Esto puede ser útil para implementar una lista de el...
static MenuOption Vertical()
Opciones estándar para un menú vertical. Esto puede ser útil para implementar una lista de elementos ...
static MenuOption HorizontalAnimated()
Opciones estándar para un menú horizontal animado. Esto puede ser útil para implementar una barra de ...
Component Menu(MenuOption options)
Una lista de texto. El elemento enfocado es seleccionado.
Component Renderer(Component child, std::function< Element()>)
Retorna un nuevo Componente, similar a |child|, pero usando |render| como el evento Component::Render...
virtual void Render(Screen &screen)
Muestra un elemento en un ftxui::Screen.
Decorator bgcolor(Color)
Decora usando un color de fondo.
Element borderDouble(Element)
Draw a double border around the element.
Element flex(Element)
Hace que un elemento hijo se expanda proporcionalmente al espacio restante en un contenedor.
Element bold(Element)
Utiliza una fuente en negrita, para elementos con más énfasis.
Element text(std::wstring text)
Muestra un fragmento de texto Unicode.
Element separator()
Dibuja una separación vertical u horizontal entre otros dos elementos.
Element filler()
Un elemento que se expandirá proporcionalmente al espacio restante en un contenedor.
Element dim(Element)
Usa una fuente clara para elementos con menos énfasis.
Element border(Element)
Draw a border around the element.
Decorator color(Color)
Decora usando un color de primer plano.
El espacio de nombres ftxui:: de FTXUI.
std::shared_ptr< Node > Element
Element hbox(Elements)
Un contenedor que muestra elementos horizontalmente uno por uno.
std::shared_ptr< ComponentBase > Component
Argumentos para la transformación de |ButtonOption|, |CheckboxOption|, |RadioboxOption|,...