#include <memory>
#include <string>
#include <vector>
auto screen = ScreenInteractive::TerminalOutput();
int depth = 0;
std::string rating = "3/5 estrellas";
auto button_rate_ftxui = Button("Calificar FTXUI", [&] { depth = 1; });
auto button_quit = Button(
"Salir",
screen.ExitLoopClosure());
auto depth_0_container = Container::Horizontal({
button_rate_ftxui,
button_quit,
});
auto depth_0_renderer = Renderer(depth_0_container, [&] {
text("Ejemplo de diálogo modal"),
separator(),
text("☆☆☆ FTXUI:" + rating + " ☆☆☆") | bold,
filler(),
button_rate_ftxui->Render(),
filler(),
button_quit->Render(),
}),
}) |
border |
size(HEIGHT, GREATER_THAN, 18) | center;
});
std::vector<std::string> rating_labels = {
"1/5 estrellas", "2/5 estrellas", "3/5 estrellas", "4/5 estrellas", "5/5 estrellas",
};
auto on_rating = [&](std::string new_rating) {
rating = new_rating;
depth = 0;
};
auto depth_1_container = Container::Horizontal({
Button(&rating_labels[0], [&] { on_rating(rating_labels[0]); }),
Button(&rating_labels[1], [&] { on_rating(rating_labels[1]); }),
Button(&rating_labels[2], [&] { on_rating(rating_labels[2]); }),
Button(&rating_labels[3], [&] { on_rating(rating_labels[3]); }),
Button(&rating_labels[4], [&] { on_rating(rating_labels[4]); }),
});
auto depth_1_renderer = Renderer(depth_1_container, [&] {
text("¿Te gusta FTXUI?"),
separator(),
hbox(depth_1_container->Render()),
}) |
border;
});
{
depth_0_renderer,
depth_1_renderer,
},
&depth);
Element document = depth_0_renderer->Render();
if (depth == 1) {
document = dbox({
document,
depth_1_renderer->Render() | clear_under | center,
});
}
return document;
});
return 0;
}
Element vbox(Elements children)
Un contenedor que muestra elementos verticalmente uno por uno.
return dimx size(HEIGHT, EQUAL, dimy)
return hbox({ text(std::to_string(int(progress *100))+"% ")|size(WIDTH, EQUAL, 5), gauge(progress), })
El espacio de nombres ftxui:: de FTXUI.
std::shared_ptr< Node > Element