19 return Renderer(component, [name, component] {
34 const std::vector<std::string> menu_entries = {
40 int menu_selected = 0;
41 auto menu =
Menu(&menu_entries, &menu_selected);
42 menu =
Wrap(
"Menu", menu);
45 int toggle_selected = 0;
46 std::vector<std::string> toggle_entries = {
50 auto toggle =
Toggle(&toggle_entries, &toggle_selected);
51 toggle =
Wrap(
"Toggle", toggle);
54 bool checkbox_1_selected =
false;
55 bool checkbox_2_selected =
false;
56 bool checkbox_3_selected =
false;
57 bool checkbox_4_selected =
false;
59 auto checkboxes = Container::Vertical({
60 Checkbox(
"checkbox1", &checkbox_1_selected),
61 Checkbox(
"checkbox2", &checkbox_2_selected),
62 Checkbox(
"checkbox3", &checkbox_3_selected),
63 Checkbox(
"checkbox4", &checkbox_4_selected),
65 checkboxes =
Wrap(
"Checkbox", checkboxes);
68 int radiobox_selected = 0;
69 std::vector<std::string> radiobox_entries = {
75 auto radiobox =
Radiobox(&radiobox_entries, &radiobox_selected);
76 radiobox =
Wrap(
"Radiobox", radiobox);
79 std::string input_label;
80 auto input =
Input(&input_label,
"placeholder");
81 input =
Wrap(
"Input", input);
84 std::string button_label =
"Quit";
85 std::function<void()> on_button_clicked_;
86 auto button =
Button(&button_label,
screen.ExitLoopClosure());
87 button =
Wrap(
"Button", button);
90 int slider_value_1 = 12;
91 int slider_value_2 = 56;
92 int slider_value_3 = 128;
93 auto sliders = Container::Vertical({
94 Slider(
"R:", &slider_value_1, 0, 256, 1),
95 Slider(
"G:", &slider_value_2, 0, 256, 1),
96 Slider(
"B:", &slider_value_3, 0, 256, 1),
98 sliders =
Wrap(
"Slider", sliders);
103 text(
"Lorem ipsum dolor sit amet, consectetur adipiscing elit. "),
104 text(
"Sed do eiusmod tempor incididunt ut labore et dolore magna "
106 text(
"Ut enim ad minim veniam, quis nostrud exercitation ullamco "
107 "laboris nisi ut aliquip ex ea commodo consequat. "),
108 text(
"Duis aute irure dolor in reprehenderit in voluptate velit esse "
109 "cillum dolore eu fugiat nulla pariatur. "),
110 text(
"Excepteur sint occaecat cupidatat non proident, sunt in culpa "
111 "qui officia deserunt mollit anim id est laborum. "),
115 lorel_ipsum =
Wrap(
"Lorel Ipsum", lorel_ipsum);
119 auto layout = Container::Vertical({
130 auto component =
Renderer(layout, [&] {
136 checkboxes->Render(),
146 lorel_ipsum->Render(),
Component Wrap(std::string name, Component component)
Element Render()
Dibuja el componente. Construye un ftxui::Element para ser dibujado en la ftxui::Screen representando...
static ScreenInteractive FitComponent()
Component Menu(MenuOption options)
Una lista de texto. El elemento enfocado es seleccionado.
Component Toggle(ConstStringListRef entries, int *selected)
Una lista horizontal de elementos. El usuario puede navegar a través de ellos.
Component Radiobox(RadioboxOption options)
Una lista de elementos, donde solo uno puede ser seleccionado.
Component Button(ButtonOption options)
Dibuja un botón. Ejecuta una función al hacer clic.
Component Renderer(Component child, std::function< Element()>)
Retorna un nuevo Componente, similar a |child|, pero usando |render| como el evento Component::Render...
Component Input(InputOption options={})
Un cuadro de entrada para editar texto.
Component Checkbox(CheckboxOption options)
Dibuja un elemento seleccionable.
virtual void Render(Screen &screen)
Muestra un elemento en un ftxui::Screen.
Element xflex(Element)
Expandir/Minimizar si es posible/necesario en el eje X.
Decorator size(WidthOrHeight, Constraint, int value)
Aplica una restricción al tamaño de un elemento.
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 border(Element)
Draw a border around the element.
El espacio de nombres ftxui:: de FTXUI.
Element hbox(Elements)
Un contenedor que muestra elementos horizontalmente uno por uno.
Component Slider(SliderOption< T > options)
Un deslizador en cualquier dirección.
std::shared_ptr< ComponentBase > Component