FTXUI 7.0.3
C++ functional terminal UI.
Loading...
Searching...
No Matches
ftxui/component

Detailed Description

Consulte el tutorial del módulo ftxui/component.

Functions

 FTXUI_EXPORT (COMPONENT) void RequestAnimationFrame()
 RequestAnimationFrame es una función que solicita que se dibuje un nuevo fotograma en el siguiente ciclo de animación.
 
class FTXUI_EXPORT (COMPONENT) ComponentBase = {})
 Implementa el renderizado de sí mismo como ftxui::Element. Implementa la navegación por teclado respondiendo a ftxui::Event.
 
Component Button (ButtonOption option)
 Dibuja un botón. Ejecuta una función cuando se hace clic.
 
Component Button (ConstStringRef label, std::function< void()> on_click, ButtonOption option)
 Dibuja un botón. Ejecuta una función cuando se hace clic.
 
Component CatchEvent (Component child, std::function< bool(Event event)> on_event)
 Devuelve un componente, usando |on_event| para capturar eventos. Esta función debe devolver true cuando el evento ha sido manejado, false en caso contrario.
 
ComponentDecorator CatchEvent (std::function< bool(Event)> on_event)
 Decora un componente, usando |on_event| para capturar eventos. Esta función debe devolver true cuando el evento ha sido manejado, false en caso contrario.
 
Component Checkbox (CheckboxOption option)
 Dibuja un elemento marcable.
 
Component Checkbox (ConstStringRef label, bool *checked, CheckboxOption option)
 Dibuja un elemento marcable.
 
Component Vertical (Components children)
 Una lista de componentes, dibujados uno a uno verticalmente y navegados verticalmente usando las teclas de flecha arriba/abajo o las teclas 'j'/'k'.
 
Component Vertical (Components children, int *selector)
 Una lista de componentes, dibujados uno por uno verticalmente y navegados verticalmente usando las teclas de flecha arriba/abajo o las teclas 'j'/'k'. Esto es útil para implementar un Menú, por ejemplo.
 
Component Horizontal (Components children)
 Una lista de componentes, dibujados uno por uno horizontalmente y navegados horizontalmente usando las teclas de flecha izquierda/derecha o las teclas 'h'/'l'.
 
Component Horizontal (Components children, int *selector)
 Una lista de componentes, dibujados uno a uno horizontalmente y navegados horizontalmente usando las teclas de flecha izquierda/derecha o las teclas 'h'/'l'.
 
Component Tab (Components children, int *selector)
 Una lista de componentes, donde solo uno se dibuja e interactúa a la vez. El |selector| da el índice del componente seleccionado. Esto es útil para implementar pestañas.
 
Component Stacked (Components children)
 Una lista de componentes que se apilan uno encima del otro. Los eventos se propagan al primer componente, luego al segundo si no se manejan, etc. Los componentes se dibujan en el orden inverso en que se dan. Cuando un componente toma el foco, se coloca al frente, sin cambiar el orden relativo de los otros elementos.
 
Component Dropdown (ConstStringListRef entries, int *selected)
 Un menú desplegable.
 
Component Dropdown (DropdownOption option)
 Un menú desplegable.
 
Component Hoverable (Component component, bool *hover)
 Envuelve un componente. Permite saber si el ratón lo está "hovering".
 
Component Hoverable (Component component, std::function< void()> on_enter, std::function< void()> on_leave)
 Envuelve un componente. Utiliza callbacks.
 
ComponentDecorator Hoverable (bool *hover)
 Envuelve un componente. Permite saber si el ratón lo está "hovering".
 
ComponentDecorator Hoverable (std::function< void()> on_enter, std::function< void()> on_leave)
 Envuelve un componente. Permite saber si el ratón lo está "hovering".
 
Component Hoverable (Component component, std::function< void(bool)> on_change)
 Envuelve un componente. Permite saber si el ratón lo está "hovering".
 
ComponentDecorator Hoverable (std::function< void(bool)> on_change)
 Envuelve un componente. Permite saber si el ratón lo está "hovering".
 
Component Input (InputOption option)
 Una caja de entrada para editar texto.
 
Component Input (StringRef content, InputOption option)
 Una caja de entrada para editar texto.
 
Component Input (StringRef content, StringRef placeholder, InputOption option)
 Una caja de entrada para editar texto.
 
Component Maybe (Component child, std::function< bool()> show)
 Decora un componente |child|. Se muestra solo cuando |show| devuelve verdadero.
 
ComponentDecorator Maybe (std::function< bool()> show)
 Decora un componente. Se muestra solo cuando la función |show| devuelve verdadero.
 
Component Maybe (Component child, const bool *show)
 Decora un componente |child|. Se muestra solo cuando |show| es verdadero.
 
ComponentDecorator Maybe (const bool *show)
 Decora un componente. Se muestra solo cuando |show| es verdadero.
 
Component Menu (MenuOption option)
 Una lista de texto. El elemento enfocado está seleccionado.
 
Component Menu (ConstStringListRef entries, int *selected, MenuOption option)
 Una lista de texto. El elemento enfocado está seleccionado.
 
Component Toggle (ConstStringListRef entries, int *selected)
 Una lista horizontal de elementos. El usuario puede navegar a través de ellos.
 
Component MenuEntry (ConstStringRef label, MenuEntryOption option)
 Una entrada de menú específica. Se pueden colocar en un Container::Vertical para formar un menú.
 
Component MenuEntry (MenuEntryOption option)
 Una entrada de menú específica. Se pueden colocar en un Container::Vertical para formar un menú.
 
FTXUI_EXPORT(COMPONENT) ComponentDecorator Maybe(std Component Modal (Component main, Component modal, const bool *show_modal)
 
ComponentDecorator Modal (Component modal, const bool *show_modal)
 
Component Radiobox (RadioboxOption option)
 Una lista de elementos, donde solo uno puede ser seleccionado.
 
Component Radiobox (ConstStringListRef entries, int *selected, RadioboxOption option)
 Una lista de elementos, donde solo uno puede ser seleccionado.
 
Component Renderer (std::function< Element()> render)
 Devuelve un componente, usando |render| para renderizar su interfaz.
 
Component Renderer (Component child, std::function< Element()> render)
 Devuelve un nuevo Component, similar a |child|, pero usando |render| como el evento Component::Render().
 
FTXUI_EXPORT(COMPONENT) Component Renderer(std Component Renderer (std::function< Element(bool)> render)
 Devuelve un componente enfocable, usando |render| para renderizar su interfaz.
 
ComponentDecorator Renderer (ElementDecorator decorator)
 Decora un componente, decorando lo que renderiza.
 
Component ResizableSplitLeft (Component main, Component back, int *main_size)
 Una división horizontal entre dos componentes, configurable usando el ratón.
 
Component ResizableSplitRight (Component main, Component back, int *main_size)
 Una división horizontal entre dos componentes, configurable usando el ratón.
 
Component ResizableSplitTop (Component main, Component back, int *main_size)
 Una división vertical entre dos componentes, configurable usando el ratón.
 
Component ResizableSplitBottom (Component main, Component back, int *main_size)
 Una división vertical entre dos componentes, configurable usando el ratón.
 
Component Slider (ConstStringRef label, Ref< int > value, ConstRef< int > min, ConstRef< int > max, ConstRef< int > increment)
 Un control deslizante horizontal.
 
Component Window (WindowOptions option)
 Una ventana arrastrable y redimensionable. Para usar varias, deben apilarse usando el componente Container::Stacked({...});.
 

Function Documentation

◆ FTXUI_EXPORT() [1/2]

class FTXUI_EXPORT ( COMPONENT )

RequestAnimationFrame es una función que solicita que se dibuje un nuevo fotograma en el siguiente ciclo de animación.

Note
Esta función es típicamente llamada por componentes que necesitan actualizar su estado o apariencia con el tiempo, como animaciones o transiciones. Esto es útil cuando el cambio no depende de los eventos vistos por la terminal, sino del paso del tiempo.

Los componentes que no han completado su animación pueden llamar a esta función para solicitar que se dibuje un nuevo fotograma más tarde.

Cuando no hay nuevos eventos y no hay animaciones que completar, no se dibuja ningún nuevo fotograma.

La duración que representa este paso de animación.

La duración que representa este paso de animación.

Definition at line 26 of file animation.hpp.

◆ FTXUI_EXPORT() [2/2]

template FTXUI_EXPORT ( COMPONENT ) = {})

Implementa el renderizado de sí mismo como ftxui::Element. Implementa la navegación por teclado respondiendo a ftxui::Event.

Un evento del ratón. Contiene las coordenadas del ratón, el botón presionado y el modificador (shift, ctrl, meta).

Loop es una clase que gestiona el bucle de eventos de un componente.

Representa un evento. Puede ser un evento de pulsación de tecla, un redimensionamiento de terminal, o más...

Opción para el componente Dropdown.

Un menú desplegable es un checkbox que abre/cierra un radiobox.

Estado pasado a la función de renderizado del componente Window.

Opción para el componente Radiobox.

Opción para el componente Input.

Usado para definir el estilo del componente Input.

Opción para el componente Checkbox.

Opción para el componente AnimatedButton.

Opción para el componente Menu.

Opción para el componente MenuEntry.

Opción sobre un color potencialmente animado.

Opción para el efecto de subrayado.

Argumentos para la transformación de |ButtonOption|, |CheckboxOption|, |RadioboxOption|, |MenuEntryOption|, |MenuOption|.

Por ejemplo:

  • Los caracteres imprimibles se pueden crear usando Event::Character('a').
  • Algunos especiales están predefinidos, como Event::ArrowLeft.
  • Se puede encontrar un código arbitrario para eventos especiales usando: ./example/util/print_key_press Por ejemplo, CTRL+A se mapea a Event::Special({1});

Documentación útil sobre la especificación de xterm: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html

Es responsable de ejecutar el componente, manejar eventos, y actualizar la pantalla.

La clase Loop está diseñada para usarse con un objeto App, que representa la pantalla de la terminal.

Ejemplo

int main() {
auto screen = ftxui::App::TerminalOutput();
auto component = ftxui::Button("Click me", [] { ... });
ftxui::Loop loop(screen.get(), component);
// O bien
loop.Run(); // Bloqueante hasta que el componente termina.
// O bien
loop.RunOnce(); // No bloqueante, retorna inmediatamente.
// O bien
loop.RunOnceBlocking(); // Bloqueante hasta manejar un evento.
// O en un bucle:
while (!loop.HasQuitted()) {
loop.RunOnce();
// Hacer algo más como ejecutar una función de bucle de otra biblioteca.
}
}
Component Button(ConstStringRef label, std::function< void()> on_click, ButtonOption options=ButtonOption::Simple())
Dibuja un botón. Ejecuta una función cuando se hace clic.

< La etiqueta a mostrar.

< El estado del botón/checkbox/radiobox

< Si la entrada es la activa.

< Si la entrada está enfocada por el usuario.

< Índice de la entrada cuando sea aplicable o -1.

‍La lista de entradas.

‍El índice de la entrada seleccionada.

‍Llamado cuando la entrada seleccionada cambia.

‍Llamado cuando el usuario presiona enter.

Llamado cuando el usuario cambia el estado.

< Si el input está siendo "hovered" por el ratón.

< Si el input está enfocado por el usuario.

< Si el input está vacío y mostrando el marcador de posición.

Crea el estilo de entrada predeterminado:

Un estilo blanco sobre negro con márgenes altos:

El contenido del input.

El contenido del input cuando está vacío.

< Oscurece el contenido del input usando '*'.

< Si el input puede ser multilínea.

< Modo de inserción o sobrescritura de caracteres.

Llamado cuando el contenido cambia.

Llamado cuando el usuario presiona enter.

Llamado cuando la entrada seleccionada cambia.

< El elemento envuelto dentro de esta ventana.

< El título de la ventana.

< Si la ventana es la activa.

< Si la ventana está siendo arrastrada.

< Si la ventana está siendo redimensionada.

< Si el lado izquierdo redimensionable está siendo "hovered".

< Si el lado derecho redimensionable está siendo "hovered".

< Si el lado superior redimensionable está siendo "hovered".

< Si el lado inferior redimensionable está siendo "hovered".

< El componente envuelto por esta ventana.

< El título mostrado por esta ventana.

< La posición del lado izquierdo de la ventana.

< La posición del lado superior de la ventana.

< El ancho de la ventana.

< La altura de la ventana.

< ¿Se puede redimensionar el lado izquierdo?

< ¿Se puede redimensionar el lado derecho?

< ¿Se puede redimensionar el lado superior?

< ¿Se puede redimensionar el lado inferior?

Una función opcional para personalizar la apariencia de la ventana:

Si el desplegable está abierto o cerrado:

Solo terminales compatibles.

Solo terminales compatibles.

< La etiqueta a mostrar.

< El estado del botón/checkbox/radiobox

< Si la entrada es la activa.

< Si la entrada está enfocada por el usuario.

< Índice de la entrada cuando sea aplicable o -1.

‍La lista de entradas.

‍El índice de la entrada seleccionada.

‍Llamado cuando la entrada seleccionada cambia.

‍Llamado cuando el usuario presiona enter.

Llamado cuando el usuario cambia el estado.

< Si el input está siendo "hovered" por el ratón.

< Si el input está enfocado por el usuario.

< Si el input está vacío y mostrando el marcador de posición.

Crea el estilo de entrada predeterminado:

Un estilo blanco sobre negro con márgenes altos:

El contenido del input.

El contenido del input cuando está vacío.

< Oscurece el contenido del input usando '*'.

< Si el input puede ser multilínea.

< Modo de inserción o sobrescritura de caracteres.

Llamado cuando el contenido cambia.

Llamado cuando el usuario presiona enter.

Llamado cuando la entrada seleccionada cambia.

< El elemento envuelto dentro de esta ventana.

< El título de la ventana.

< Si la ventana es la activa.

< Si la ventana está siendo arrastrada.

< Si la ventana está siendo redimensionada.

< Si el lado izquierdo redimensionable está siendo "hovered".

< Si el lado derecho redimensionable está siendo "hovered".

< Si el lado superior redimensionable está siendo "hovered".

< Si el lado inferior redimensionable está siendo "hovered".

< El componente envuelto por esta ventana.

< El título mostrado por esta ventana.

< La posición del lado izquierdo de la ventana.

< La posición del lado superior de la ventana.

< El ancho de la ventana.

< La altura de la ventana.

< ¿Se puede redimensionar el lado izquierdo?

< ¿Se puede redimensionar el lado derecho?

< ¿Se puede redimensionar el lado superior?

< ¿Se puede redimensionar el lado inferior?

Una función opcional para personalizar la apariencia de la ventana:

Si el desplegable está abierto o cerrado:

Solo terminales compatibles.

Solo terminales compatibles.

Definition at line 1 of file captured_mouse.hpp.

◆ Button() [1/2]

Component Button ( ButtonOption option)

Dibuja un botón. Ejecuta una función cuando se hace clic.

Parameters
optionParámetros opcionales adicionales.
See also
ButtonBase

Ejemplo

auto screen = App::FitComponent();
Component button = Button({
.label = "Click to quit",
.on_click = screen.ExitLoopClosure(),
});
screen.Loop(button)
std::shared_ptr< ComponentBase > Component
Definition app.hpp:23

Salida

┌─────────────┐
│Click to quit│
└─────────────┘

Definition at line 174 of file src/ftxui/component/button.cpp.

◆ Button() [2/2]

Component Button ( ConstStringRef label,
std::function< void()> on_click,
ButtonOption option )

Dibuja un botón. Ejecuta una función cuando se hace clic.

Parameters
labelLa etiqueta del botón.
on_clickLa acción a ejecutar cuando se hace clic.
optionParámetros opcionales adicionales.
See also
ButtonBase

Ejemplo

auto screen = App::FitComponent();
std::string label = "Click to quit";
Component button = Button(&label, screen.ExitLoopClosure());
screen.Loop(button)

Salida

┌─────────────┐
│Click to quit│
└─────────────┘

Definition at line 202 of file src/ftxui/component/button.cpp.

◆ CatchEvent() [1/2]

Component CatchEvent ( Component child,
std::function< bool(Event event)> on_event )

Devuelve un componente, usando |on_event| para capturar eventos. Esta función debe devolver true cuando el evento ha sido manejado, false en caso contrario.

Parameters
childEl componente envuelto.
on_eventLa función que dibuja la interfaz.

Ejemplo

auto screen = App::TerminalOutput();
auto renderer = Renderer([] {
return text("My interface");
});
auto component = CatchEvent(renderer, [&](Event event) {
if (event == Event::Character('q')) {
screen.ExitLoopClosure()();
return true;
}
return false;
});
screen.Loop(component);
Component Renderer(Component child, std::function< Element()>)
Devuelve un nuevo Component, similar a |child|, pero usando |render| como el evento Component::Render...
Element text(std::string_view text)
Muestra un fragmento de texto Unicode codificado en UTF8.
Component CatchEvent(Component child, std::function< bool(Event)>)

Definition at line 58 of file catch_event.cpp.

◆ CatchEvent() [2/2]

ComponentDecorator CatchEvent ( std::function< bool(Event)> on_event)

Decora un componente, usando |on_event| para capturar eventos. Esta función debe devolver true cuando el evento ha sido manejado, false en caso contrario.

Parameters
on_eventLa función que dibuja la interfaz.

Ejemplo

auto screen = App::TerminalOutput();
auto renderer = Renderer([] { return text("Hello world"); });
renderer |= CatchEvent([&](Event event) {
if (event == Event::Character('q')) {
screen.ExitLoopClosure()();
return true;
}
return false;
});
screen.Loop(renderer);

Definition at line 84 of file catch_event.cpp.

◆ Checkbox() [1/2]

Component Checkbox ( CheckboxOption option)

Dibuja un elemento marcable.

Parameters
optionParámetros opcionales adicionales.
See also
CheckboxBase

Ejemplo

auto screen = App::FitComponent();
CheckboxOption option;
option.label = "Make a sandwidth";
option.checked = false;
Component checkbox = Checkbox(option);
screen.Loop(checkbox)
Component Checkbox(ConstStringRef label, bool *checked, CheckboxOption options=CheckboxOption::Simple())
Dibuja un elemento marcable.

Salida

☐ Make a sandwich

Definition at line 111 of file src/ftxui/component/checkbox.cpp.

◆ Checkbox() [2/2]

Component Checkbox ( ConstStringRef label,
bool * checked,
CheckboxOption option )

Dibuja un elemento marcable.

Parameters
labelLa etiqueta de la casilla de verificación.
checkedSi la casilla está marcada o no.
optionParámetros opcionales adicionales.
See also
CheckboxBase

Ejemplo

auto screen = App::FitComponent();
std::string label = "Make a sandwidth";
bool checked = false;
Component checkbox = Checkbox(&label, &checked);
screen.Loop(checkbox)

Salida

☐ Make a sandwich

Definition at line 138 of file src/ftxui/component/checkbox.cpp.

◆ Vertical() [1/2]

Component Vertical ( Components children)

Una lista de componentes, dibujados uno a uno verticalmente y navegados verticalmente usando las teclas de flecha arriba/abajo o las teclas 'j'/'k'.

Parameters
childrenla lista de componentes.
See also
ContainerBase

Ejemplo

auto container = Container::Vertical({
children_1,
children_2,
children_3,
children_4,
});
Component Vertical(Components children)
Una lista de componentes, dibujados uno a uno verticalmente y navegados verticalmente usando las tecl...

Definition at line 331 of file container.cpp.

◆ Vertical() [2/2]

Component Vertical ( Components children,
int * selector )

Una lista de componentes, dibujados uno por uno verticalmente y navegados verticalmente usando las teclas de flecha arriba/abajo o las teclas 'j'/'k'. Esto es útil para implementar un Menú, por ejemplo.

Parameters
childrenla lista de componentes.
selectorUna referencia al índice del hijo seleccionado.
See also
ContainerBase

Ejemplo

int selected_children = 2;
auto container = Container::Vertical({
children_1,
children_2,
children_3,
children_4,
}, &selected_children);

Definition at line 354 of file container.cpp.

◆ Horizontal() [1/2]

Component Horizontal ( Components children)

Una lista de componentes, dibujados uno por uno horizontalmente y navegados horizontalmente usando las teclas de flecha izquierda/derecha o las teclas 'h'/'l'.

Parameters
childrenla lista de componentes.
See also
ContainerBase

Ejemplo

auto container = Container::Horizontal({
children_1,
children_2,
children_3,
children_4,
});
Component Horizontal(Components children, int *selector)
Una lista de componentes, dibujados uno a uno horizontalmente y navegados horizontalmente usando las ...

Definition at line 374 of file container.cpp.

◆ Horizontal() [2/2]

Component Horizontal ( Components children,
int * selector )

Una lista de componentes, dibujados uno a uno horizontalmente y navegados horizontalmente usando las teclas de flecha izquierda/derecha o las teclas 'h'/'l'.

Parameters
childrenla lista de componentes.
selectorUna referencia al índice del hijo seleccionado.
See also
ContainerBase

Ejemplo

int selected_children = 2;
auto container = Container::Horizontal({
children_1,
children_2,
children_3,
children_4,
}, selected_children);

Definition at line 396 of file container.cpp.

◆ Tab()

Component Tab ( Components children,
int * selector )

Una lista de componentes, donde solo uno se dibuja e interactúa a la vez. El |selector| da el índice del componente seleccionado. Esto es útil para implementar pestañas.

Parameters
childrenLa lista de componentes.
selectorEl índice de los hijos dibujados.
See also
ContainerBase

Ejemplo

int tab_drawn = 0;
auto container = Container::Tab({
children_1,
children_2,
children_3,
children_4,
}, &tab_drawn);
Component Tab(Components children, int *selector)
Una lista de componentes, donde solo uno se dibuja e interactúa a la vez. El |selector| da el índice ...

Definition at line 419 of file container.cpp.

◆ Stacked()

Component Stacked ( Components children)

Una lista de componentes que se apilan uno encima del otro. Los eventos se propagan al primer componente, luego al segundo si no se manejan, etc. Los componentes se dibujan en el orden inverso en que se dan. Cuando un componente toma el foco, se coloca al frente, sin cambiar el orden relativo de los otros elementos.

Esto debe usarse con el componente Window.

Parameters
childrenLa lista de componentes.
See also
Window

Ejemplo

auto container = Container::Stacked({
children_1,
children_2,
children_3,
children_4,
});
Component Stacked(Components children)
Una lista de componentes que se apilan uno encima del otro. Los eventos se propagan al primer compone...

Definition at line 446 of file container.cpp.

◆ Dropdown() [1/2]

Component Dropdown ( ConstStringListRef entries,
int * selected )

Un menú desplegable.

Parameters
entriesLa lista de entradas a mostrar.
selectedEl índice de la entrada seleccionada.

Definition at line 22 of file src/ftxui/component/dropdown.cpp.

◆ Dropdown() [2/2]

Component Dropdown ( DropdownOption option)

Un menú desplegable.

Parameters
optionLas opciones para el menú desplegable.

Definition at line 33 of file src/ftxui/component/dropdown.cpp.

◆ Hoverable() [1/6]

Component Hoverable ( Component component,
bool * hover )

Envuelve un componente. Permite saber si el ratón lo está "hovering".

Parameters
componentEl componente envuelto.
hoverEl valor que refleja si el componente está siendo "hovering" o no.

Ejemplo

auto button = Button("exit", screen.ExitLoopClosure());
bool hover = false;
auto button_hover = Hoverable(button, &hover);
Component Hoverable(Component component, bool *hover)
Envuelve un componente. Permite saber si el ratón lo está "hovering".
Definition hoverable.cpp:32

Definition at line 32 of file hoverable.cpp.

◆ Hoverable() [2/6]

Component Hoverable ( Component component,
std::function< void()> on_enter,
std::function< void()> on_leave )

Envuelve un componente. Utiliza callbacks.

Parameters
componentEl componente envuelto.
on_enterCallback OnEnter (al entrar el ratón)
on_leaveCallback OnLeave (al salir el ratón)

Ejemplo

auto button = Button("exit", screen.ExitLoopClosure());
bool hover = false;
auto button_hover = Hoverable(button, &hover);

Definition at line 75 of file hoverable.cpp.

◆ Hoverable() [3/6]

ComponentDecorator Hoverable ( bool * hover)

Envuelve un componente. Permite saber si el ratón lo está "hovering".

Parameters
hoverEl valor que refleja si el componente está siendo "hovering" o no.

Ejemplo

bool hover = false;
auto button = Button("exit", screen.ExitLoopClosure());
button |= Hoverable(&hover);

Definition at line 129 of file hoverable.cpp.

◆ Hoverable() [4/6]

ComponentDecorator Hoverable ( std::function< void()> on_enter,
std::function< void()> on_leave )

Envuelve un componente. Permite saber si el ratón lo está "hovering".

Parameters
on_enterse llama cuando el ratón entra en el componente.
on_leavese llama cuando el ratón sale del componente.

Ejemplo

auto button = Button("exit", screen.ExitLoopClosure());
int on_enter_cnt = 0;
int on_leave_cnt = 0;
button |= Hoverable(
[&]{ on_enter_cnt++; },
[&]{ on_leave_cnt++; }
);

Definition at line 152 of file hoverable.cpp.

◆ Hoverable() [5/6]

Component Hoverable ( Component component,
std::function< void(bool)> on_change )

Envuelve un componente. Permite saber si el ratón lo está "hovering".

Parameters
componentel componente envuelto.
on_changese llama cuando el ratón entra o sale del componente.

Ejemplo

auto button = Button("exit", screen.ExitLoopClosure());
bool hovered = false;
auto button_hoverable = Hoverable(button,
[&](bool hover) { hovered = hover;});

Definition at line 174 of file hoverable.cpp.

◆ Hoverable() [6/6]

ComponentDecorator Hoverable ( std::function< void(bool)> on_change)

Envuelve un componente. Permite saber si el ratón lo está "hovering".

Parameters
on_changese llama cuando el ratón entra o sale del componente.

Ejemplo

auto button = Button("exit", screen.ExitLoopClosure());
bool hovered = false;
button |= Hoverable([&](bool hover) { hovered = hover;});

Definition at line 194 of file hoverable.cpp.

◆ Input() [1/3]

Component Input ( InputOption option)

Una caja de entrada para editar texto.

Parameters
optionParámetros opcionales adicionales.
See also
InputBase

Ejemplo

auto screen = App::FitComponent();
std::string content= "";
std::string placeholder = "placeholder";
Component input = Input({
.content = &content,
.placeholder = &placeholder,
})
screen.Loop(input);
Component Input(StringRef content, InputOption options={})
Una caja de entrada para editar texto.

Salida

placeholder

Definition at line 590 of file src/ftxui/component/input.cpp.

◆ Input() [2/3]

Component Input ( StringRef content,
InputOption option )

Una caja de entrada para editar texto.

Parameters
contentEl contenido editable.
optionParámetros opcionales adicionales.
See also
InputBase

Ejemplo

auto screen = App::FitComponent();
std::string content= "";
std::string placeholder = "placeholder";
Component input = Input(content, {
.placeholder = &placeholder,
.password = true,
})
screen.Loop(input);

Salida

placeholder

Definition at line 618 of file src/ftxui/component/input.cpp.

◆ Input() [3/3]

Component Input ( StringRef content,
StringRef placeholder,
InputOption option )

Una caja de entrada para editar texto.

Parameters
contentEl contenido editable.
placeholderEl texto de marcador de posición.
optionParámetros opcionales adicionales.
See also
InputBase

Ejemplo

auto screen = App::FitComponent();
std::string content= "";
std::string placeholder = "placeholder";
Component input = Input(content, placeholder);
screen.Loop(input);

Salida

placeholder

Definition at line 645 of file src/ftxui/component/input.cpp.

◆ Maybe() [1/4]

Component Maybe ( Component child,
std::function< bool()> show )

Decora un componente |child|. Se muestra solo cuando |show| devuelve verdadero.

Parameters
childel componente a decorar.
showuna función que devuelve si |child| debe mostrarse.

Definition at line 21 of file src/ftxui/component/maybe.cpp.

◆ Maybe() [2/4]

ComponentDecorator Maybe ( std::function< bool()> show)

Decora un componente. Se muestra solo cuando la función |show| devuelve verdadero.

Parameters
showuna función que devuelve si el componente decorado debe mostrarse.

Ejemplo

auto component = Renderer([]{ return text("Hello World!"); });
auto maybe_component = component | Maybe([&]{ return counter == 42; });
Component Maybe(Component child, std::function< bool()> show)
Decora un componente |child|. Se muestra solo cuando |show| devuelve verdadero.

Definition at line 57 of file src/ftxui/component/maybe.cpp.

◆ Maybe() [3/4]

Component Maybe ( Component child,
const bool * show )

Decora un componente |child|. Se muestra solo cuando |show| es verdadero.

Parameters
childel componente a decorar.
showun booleano. |child| se muestra cuando |show| es verdadero.

Ejemplo

auto component = Renderer([]{ return text("Hello World!"); });
auto maybe_component = Maybe(component, &show);
const bool * show

Definition at line 74 of file src/ftxui/component/maybe.cpp.

◆ Maybe() [4/4]

ComponentDecorator Maybe ( const bool * show)

Decora un componente. Se muestra solo cuando |show| es verdadero.

Parameters
showun booleano. |child| se muestra cuando |show| es verdadero.

Ejemplo

auto component = Renderer([]{ return text("Hello World!"); });
auto maybe_component = component | Maybe(&show);

Definition at line 88 of file src/ftxui/component/maybe.cpp.

◆ Menu() [1/2]

Component Menu ( MenuOption option)

Una lista de texto. El elemento enfocado está seleccionado.

Parameters
optionuna estructura que contiene todos los parámetros.

Ejemplo

auto screen = App::TerminalOutput();
std::vector<std::string> entries = {
"entry 1",
"entry 2",
"entry 3",
};
int selected = 0;
auto menu = Menu({
.entries = &entries,
.selected = &selected,
});
screen.Loop(menu);
Component Menu(ConstStringListRef entries, int *selected_, MenuOption options=MenuOption::Vertical())
Una lista de texto. El elemento enfocado está seleccionado.

Salida

> entry 1
entry 2
entry 3

Definition at line 505 of file src/ftxui/component/menu.cpp.

◆ Menu() [2/2]

Component Menu ( ConstStringListRef entries,
int * selected,
MenuOption option )

Una lista de texto. El elemento enfocado está seleccionado.

Parameters
entriesLa lista de entradas en el menú.
selectedEl índice del elemento actualmente seleccionado.
optionParámetros opcionales adicionales.

Ejemplo

auto screen = App::TerminalOutput();
std::vector<std::string> entries = {
"entry 1",
"entry 2",
"entry 3",
};
int selected = 0;
auto menu = Menu(&entries, &selected);
screen.Loop(menu);

Salida

> entry 1
entry 2
entry 3

Definition at line 536 of file src/ftxui/component/menu.cpp.

◆ Toggle()

Component Toggle ( ConstStringListRef entries,
int * selected )

Una lista horizontal de elementos. El usuario puede navegar a través de ellos.

Parameters
entriesLa lista de entradas seleccionables a mostrar.
selectedReferencia la entrada seleccionada. Ver también |Menu|.

Definition at line 547 of file src/ftxui/component/menu.cpp.

◆ MenuEntry() [1/2]

Component MenuEntry ( ConstStringRef label,
MenuEntryOption option )

Una entrada de menú específica. Se pueden colocar en un Container::Vertical para formar un menú.

Parameters
labelEl texto dibujado que representa este elemento.
optionParámetros opcionales adicionales.

Ejemplo

auto screen = App::TerminalOutput();
int selected = 0;
auto menu = Container::Vertical({
MenuEntry("entry 1"),
MenuEntry("entry 2"),
MenuEntry("entry 3"),
}, &selected);
screen.Loop(menu);
Component MenuEntry(ConstStringRef label, MenuEntryOption options={})
Una entrada de menú específica. Se pueden colocar en un Container::Vertical para formar un menú.

Salida

> entry 1
entry 2
entry 3

Definition at line 577 of file src/ftxui/component/menu.cpp.

◆ MenuEntry() [2/2]

Component MenuEntry ( MenuEntryOption option)

Una entrada de menú específica. Se pueden colocar en un Container::Vertical para formar un menú.

Parameters
optionLos parámetros.

Ejemplo

auto screen = App::TerminalOutput();
int selected = 0;
auto menu = Container::Vertical({
MenuEntry({.label = "entry 1"}),
MenuEntry({.label = "entry 2"}),
MenuEntry({.label = "entry 3"}),
}, &selected);
screen.Loop(menu);

Salida

> entry 1
entry 2
entry 3

Definition at line 607 of file src/ftxui/component/menu.cpp.

◆ Modal() [1/2]

Component Modal ( Component main,
Component modal,
const bool * show_modal )

Definition at line 18 of file modal.cpp.

◆ Modal() [2/2]

ComponentDecorator Modal ( Component modal,
const bool * show_modal )

Definition at line 58 of file modal.cpp.

◆ Radiobox() [1/2]

Component Radiobox ( RadioboxOption option)

Una lista de elementos, donde solo uno puede ser seleccionado.

Parameters
optionLos parámetros
See also
RadioboxBase

Ejemplo

auto screen = App::TerminalOutput();
std::vector<std::string> entries = {
"entry 1",
"entry 2",
"entry 3",
};
int selected = 0;
auto menu = Radiobox({
.entries = entries,
.selected = &selected,
});
screen.Loop(menu);
Component Radiobox(ConstStringListRef entries, int *selected_, RadioboxOption options={})
Una lista de elementos, donde solo uno puede ser seleccionado.

Salida

◉ entry 1
○ entry 2
○ entry 3

NOLINTNEXTLINE

Definition at line 205 of file src/ftxui/component/radiobox.cpp.

◆ Radiobox() [2/2]

Component Radiobox ( ConstStringListRef entries,
int * selected,
RadioboxOption option )

Una lista de elementos, donde solo uno puede ser seleccionado.

Parameters
entriesLa lista de entradas en la lista.
selectedEl índice del elemento actualmente seleccionado.
optionParámetros opcionales adicionales.
See also
RadioboxBase

Ejemplo

auto screen = App::TerminalOutput();
std::vector<std::string> entries = {
"entry 1",
"entry 2",
"entry 3",
};
int selected = 0;
auto menu = Radiobox(&entries, &selected);
screen.Loop(menu);

Salida

◉ entry 1
○ entry 2
○ entry 3

Definition at line 237 of file src/ftxui/component/radiobox.cpp.

◆ Renderer() [1/4]

Component Renderer ( std::function< Element()> render)

Devuelve un componente, usando |render| para renderizar su interfaz.

Parameters
renderLa función que dibuja la interfaz.

Ejemplo

auto screen = App::TerminalOutput();
auto renderer = Renderer([] {
return text("My interface");
});
screen.Loop(renderer);

Definition at line 29 of file src/ftxui/component/renderer.cpp.

◆ Renderer() [2/4]

Component Renderer ( Component child,
std::function< Element()> render )

Devuelve un nuevo Component, similar a |child|, pero usando |render| como el evento Component::Render().

Parameters
childEl componente al que reenviar eventos.
renderLa función que dibuja la interfaz.

Ejemplo

auto screen = App::TerminalOutput();
std::string label = "Click to quit";
auto button = Button(&label, screen.ExitLoopClosure());
auto renderer = Renderer(button, [&] {
return hbox({
text("A button:"),
button->Render(),
});
});
screen.Loop(renderer);
Element hbox(Elements children)
Un contenedor que muestra elementos horizontalmente uno por uno.
Definition hbox.cpp:94

Definition at line 61 of file src/ftxui/component/renderer.cpp.

◆ Renderer() [3/4]

Component Renderer ( std::function< Element(bool)> render)

Devuelve un componente enfocable, usando |render| para renderizar su interfaz.

Parameters
renderLa función que dibuja la interfaz, tomando un booleano que indica si el componente está enfocado o no.

Ejemplo

auto screen = App::TerminalOutput();
auto renderer = Renderer([] (bool focused) {
if (focused)
return text("My interface") | inverted;
else
return text("My interface");
});
screen.Loop(renderer);
Element inverted(Element child)
Agrega un filtro que invertirá los colores de primer plano y de fondo. colores.
Definition inverted.cpp:34

Definition at line 84 of file src/ftxui/component/renderer.cpp.

◆ Renderer() [4/4]

ComponentDecorator Renderer ( ElementDecorator decorator)

Decora un componente, decorando lo que renderiza.

Parameters
decoratorla función que modifica el elemento que renderiza.

Ejemplo

auto screen = App::TerminalOutput();
auto renderer =
Renderer([] { return text("Hello"); })
| Renderer(bold)
| Renderer(inverted);
screen.Loop(renderer);

Definition at line 125 of file src/ftxui/component/renderer.cpp.

◆ ResizableSplitLeft()

Component ResizableSplitLeft ( Component main,
Component back,
int * main_size )

Una división horizontal entre dos componentes, configurable usando el ratón.

Parameters
mainEl componente principal de tamaño |main_size|, a la izquierda.
backEl componente trasero que ocupa el tamaño restante, a la derecha.
main_sizeEl tamaño del componente |main|.

Ejemplo

auto screen = App::Fullscreen();
int left_size = 10;
auto left = Renderer([] { return text("Left") | center;});
auto right = Renderer([] { return text("right") | center;});
auto split = ResizableSplitLeft(left, right, &left_size);
screen.Loop(split);
Component ResizableSplitLeft(Component main, Component back, int *main_size)
Una división horizontal entre dos componentes, configurable usando el ratón.
Element center(Element child)
Centra un elemento horizontal y verticalmente.
std::uint8_t left
Definition screen.cpp:147
std::uint8_t right
Definition screen.cpp:149

Salida

│
left │ right
│

Definition at line 199 of file src/ftxui/component/resizable_split.cpp.

◆ ResizableSplitRight()

Component ResizableSplitRight ( Component main,
Component back,
int * main_size )

Una división horizontal entre dos componentes, configurable usando el ratón.

Parameters
mainEl componente principal de tamaño |main_size|, a la derecha.
backEl componente de fondo que ocupa el tamaño restante, a la izquierda.
main_sizeEl tamaño del componente |main|.

Ejemplo

auto screen = App::Fullscreen();
int right_size = 10;
auto left = Renderer([] { return text("Left") | center;});
auto right = Renderer([] { return text("right") | center;});
auto split = ResizableSplitRight(right, left, &right_size)
screen.Loop(split);
Component ResizableSplitRight(Component main, Component back, int *main_size)
Una división horizontal entre dos componentes, configurable usando el ratón.

Salida

│
left │ right
│

Definition at line 233 of file src/ftxui/component/resizable_split.cpp.

◆ ResizableSplitTop()

Component ResizableSplitTop ( Component main,
Component back,
int * main_size )

Una división vertical entre dos componentes, configurable usando el ratón.

Parameters
mainEl componente principal de tamaño |main_size|, arriba.
backEl componente de fondo que ocupa el tamaño restante, abajo.
main_sizeEl tamaño del componente |main|.

Ejemplo

auto screen = App::Fullscreen();
int top_size = 1;
auto top = Renderer([] { return text("Top") | center;});
auto bottom = Renderer([] { return text("Bottom") | center;});
auto split = ResizableSplitTop(top, bottom, &top_size)
screen.Loop(split);
Component ResizableSplitTop(Component main, Component back, int *main_size)
Una división vertical entre dos componentes, configurable usando el ratón.
std::uint8_t top
Definition screen.cpp:148

Salida

top
────────────
bottom

Definition at line 267 of file src/ftxui/component/resizable_split.cpp.

◆ ResizableSplitBottom()

Component ResizableSplitBottom ( Component main,
Component back,
int * main_size )

Una división vertical entre dos componentes, configurable usando el ratón.

Parameters
mainEl componente principal de tamaño |main_size|, abajo.
backEl componente de fondo que ocupa el tamaño restante, arriba.
main_sizeEl tamaño del componente |main|.

Ejemplo

auto screen = App::Fullscreen();
int bottom_size = 1;
auto top = Renderer([] { return text("Top") | center;});
auto bottom = Renderer([] { return text("Bottom") | center;});
auto split = ResizableSplit::Bottom(bottom, top, &bottom_size)
screen.Loop(split);

Salida

top
────────────
bottom

Definition at line 301 of file src/ftxui/component/resizable_split.cpp.

◆ Slider()

Component Slider ( ConstStringRef label,
Ref< int > value,
ConstRef< int > min,
ConstRef< int > max,
ConstRef< int > increment )

Un control deslizante horizontal.

Parameters
labelEl nombre del control deslizante.
valueEl valor actual del control deslizante.
minEl valor mínimo.
maxEl valor máximo.
incrementEl incremento al usar el cursor.

Ejemplo

auto screen = App::TerminalOutput();
int value = 50;
auto slider = Slider("Value:", &value, 0, 100, 1);
screen.Loop(slider);
Component Slider(SliderOption< T > options)
Un control deslizante en cualquier dirección.
int value
Definition elements.hpp:195

Salida

Value:[██████████████████████████ ]

Definition at line 258 of file src/ftxui/component/slider.cpp.

◆ Window()

Component Window ( WindowOptions option)

Una ventana arrastrable y redimensionable. Para usar varias, deben apilarse usando el componente Container::Stacked({...});.

Parameters
optionUna estructura que contiene todos los parámetros.
See also
Window

Ejemplo

auto window_1= Window({
.inner = DummyWindowContent(),
.title = "First window",
});
auto window_2= Window({
.inner = DummyWindowContent(),
.title = "Second window",
});
auto container = Container::Stacked({
window_1,
window_2,
});
Component Window(WindowOptions option)
Una ventana arrastrable y redimensionable. Para usar varias, deben apilarse usando el componente Cont...
Component DummyWindowContent()
Definition scrollbar.cpp:10

Definition at line 312 of file src/ftxui/component/window.cpp.