#include <stdlib.h>
#include <chrono>
#include <memory>
#include <string>
#include <thread>
auto screen = ScreenInteractive::FitComponent();
int custom_loop_count = 0;
int frame_count = 0;
int event_count = 0;
auto component = Renderer([&] {
frame_count++;
text("Esto demuestra el uso de un ftxui::Loop personalizado. Se "),
text("ejecuta a 100 iteraciones por segundo. Los eventos de FTXUI "),
text("se procesan una vez por iteración y se renderiza un nuevo frame "),
text("según sea necesario"),
separator(),
text("ftxui event count: " + std::to_string(event_count)),
text("ftxui frame count: " + std::to_string(frame_count)),
text("Custom loop count: " + std::to_string(custom_loop_count)),
}) |
border;
});
component |= CatchEvent([&](
Event) ->
bool {
event_count++;
return false;
});
while (!loop.HasQuitted()) {
custom_loop_count++;
loop.RunOnce();
std::this_thread::sleep_for(std::chrono::milliseconds(10));
}
return EXIT_SUCCESS;
}
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,...
Element vbox(Elements children)
Un contenedor que muestra elementos verticalmente uno por uno.
El espacio de nombres ftxui:: de FTXUI.