#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++;
return vbox({
text("Ceci démontre l'utilisation d'une ftxui::Loop personnalisée. Elle "),
text("s'exécute à 100 itérations par seconde. Les événements FTXUI "),
text("sont tous traités une fois par itération et une nouvelle image "),
text("est rendue si nécessaire"),
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 est une classe qui gère la boucle d'événements pour un composant.
Représente un événement. Il peut s'agir d'un événement de touche, d'un redimensionnement de terminal,...
L'espace de noms FTXUI ftxui::