FTXUI 6.1.9
C++ functional terminal UI.
Chargement...
Recherche...
Aucune correspondance
loop.cpp
Aller à la documentation de ce fichier.
1// Copyright 2022 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.
5
6#include <utility> // for move
7
8#include "ftxui/component/screen_interactive.hpp" // for ScreenInteractive, Component
9
10namespace ftxui {
11
12/// @brief Une boucle est un wrapper autour d'un Component et d'un ScreenInteractive.
13/// Elle est utilisée pour exécuter un Component dans un terminal.
14/// @see Component, ScreenInteractive.
15/// @see ScreenInteractive::Loop().
16/// @see ScreenInteractive::ExitLoop().
17/// @param[in] screen The screen to use.
18/// @param[in] component The component to run.
19// NOLINTNEXTLINE
21 : screen_(screen), component_(std::move(component)) {
22 screen_->PreMain();
23}
24
26 screen_->PostMain();
27}
28
29/// @brief Indique si la boucle a été quittée.
31 return screen_->HasQuitted();
32}
33
34/// @brief Exécute la boucle une seule fois. Fait en sorte que le `component` traite toutes les tâches/événements en attente.
35/// Une nouvelle trame peut être dessinée si la précédente a été invalidée.
36/// Retourne vrai tant que la boucle n'est pas terminée.
38 screen_->RunOnce(component_);
39}
40
41/// @brief Attend qu'au moins un événement soit géré et exécute
42/// `Loop::RunOnce()`.
44 screen_->RunOnceBlocking(component_);
45}
46
47/// Exécute la boucle, bloquant le thread actuel, jusqu'à ce que la boucle soit
48/// quittée.
49void Loop::Run() {
50 while (!HasQuitted()) {
52 }
53}
54
55} // namespace ftxui
auto screen
bool HasQuitted()
Indique si la boucle a été quittée.
Definition loop.cpp:30
void Run()
Definition loop.cpp:49
Loop(ScreenInteractive *screen, Component component)
Une boucle est un wrapper autour d'un Component et d'un ScreenInteractive. Elle est utilisée pour exé...
Definition loop.cpp:20
void RunOnce()
Exécute la boucle une seule fois. Fait en sorte que le component traite toutes les tâches/événements ...
Definition loop.cpp:37
void RunOnceBlocking()
Attend qu'au moins un événement soit géré et exécute Loop::RunOnce().
Definition loop.cpp:43
ScreenInteractive est un Screen qui peut gérer les événements, exécuter une boucle principale et gére...
L'espace de noms FTXUI ftxui::
Definition animation.hpp:10
std::shared_ptr< ComponentBase > Component