FTXUI 6.1.9
C++ functional terminal UI.
Chargement...
Recherche...
Aucune correspondance
custom_loop.cpp
Aller à la documentation de ce fichier.
1// Copyright 2020 Arthur Sonzogni. Tous droits réservés.
2// L'utilisation de ce code source est régie par la licence MIT que l'on peut trouver dans
3// le fichier LICENSE.
4#include <stdlib.h> // for EXIT_SUCCESS
5#include <chrono> // for milliseconds
6#include <ftxui/component/event.hpp> // for Event
7#include <ftxui/component/mouse.hpp> // for ftxui
8#include <ftxui/dom/elements.hpp> // for text, separator, Element, operator|, vbox, border
9#include <memory> // for allocator, shared_ptr
10#include <string> // for operator+, to_string
11#include <thread> // for sleep_for
12
13#include "ftxui/component/component.hpp" // for CatchEvent, Renderer, operator|=
14#include "ftxui/component/loop.hpp" // for Loop
15#include "ftxui/component/screen_interactive.hpp" // for ScreenInteractive
16
17int main() {
18 using namespace ftxui;
19 auto screen = ScreenInteractive::FitComponent();
20
21 // Crée un composant comptant le nombre de frames dessinées et d'événements gérés.
22 int custom_loop_count = 0;
23 int frame_count = 0;
24 int event_count = 0;
25 auto component = Renderer([&] {
26 frame_count++;
27 return vbox({
28 text("Ceci démontre l'utilisation d'une ftxui::Loop personnalisée. Elle "),
29 text("s'exécute à 100 itérations par seconde. Les événements FTXUI "),
30 text("sont tous traités une fois par itération et une nouvelle image "),
31 text("est rendue si nécessaire"),
32 separator(),
33 text("ftxui event count: " + std::to_string(event_count)),
34 text("ftxui frame count: " + std::to_string(frame_count)),
35 text("Custom loop count: " + std::to_string(custom_loop_count)),
36 }) |
37 border;
38 });
39
40 component |= CatchEvent([&](Event) -> bool {
41 event_count++;
42 return false;
43 });
44
45 Loop loop(&screen, component);
46
47 while (!loop.HasQuitted()) {
48 custom_loop_count++;
49 loop.RunOnce();
50 std::this_thread::sleep_for(std::chrono::milliseconds(10));
51 }
52
53 return EXIT_SUCCESS;
54}
auto screen
int main()
Loop est une classe qui gère la boucle d'événements pour un composant.
Definition loop.hpp:56
Représente un événement. Il peut s'agir d'un événement de touche, d'un redimensionnement de terminal,...
Definition event.hpp:28
L'espace de noms FTXUI ftxui::
Definition animation.hpp:10