FTXUI 6.1.9
C++ functional terminal UI.
Loading...
Searching...
No Matches
loop.cpp
Go to the documentation of this file.
1// Copyright 2022 Arthur Sonzogni. Todos los derechos reservados.
2// El uso de este código fuente se rige por la licencia MIT que se puede encontrar en
3// el archivo LICENSE.
5
6#include <utility> // for move
7
8#include "ftxui/component/screen_interactive.hpp" // for ScreenInteractive, Component
9
10namespace ftxui {
11
12/// @brief Un Loop es un envoltorio alrededor de un Component y un ScreenInteractive.
13/// Se utiliza para ejecutar un Component en un terminal.
14/// @see Component, ScreenInteractive.
15/// @see ScreenInteractive::Loop().
16/// @see ScreenInteractive::ExitLoop().
17/// @param[in] screen La pantalla a utilizar.
18/// @param[in] component El componente a ejecutar.
19// NOLINTNEXTLINE
21 : screen_(screen), component_(std::move(component)) {
22 screen_->PreMain();
23}
24
26 screen_->PostMain();
27}
28
29/// @brief Indica si el bucle ha terminado.
31 return screen_->HasQuitted();
32}
33
34/// @brief Ejecuta el bucle una vez. Hace que el `component` procese todas las tareas/eventos
35/// pendientes. Un nuevo fotograma podría dibujarse si el anterior fue invalidado.
36/// Devuelve true hasta que el bucle no haya terminado.
38 screen_->RunOnce(component_);
39}
40
41/// @brief Espera a que se maneje al menos un evento y ejecuta
42/// `Loop::RunOnce()`.
44 screen_->RunOnceBlocking(component_);
45}
46
47/// Ejecuta el bucle, bloqueando el hilo actual, hasta que el bucle haya
48/// terminado.
49void Loop::Run() {
50 while (!HasQuitted()) {
52 }
53}
54
55} // namespace ftxui
auto screen
bool HasQuitted()
Indica si el bucle ha terminado.
Definition loop.cpp:30
void Run()
Definition loop.cpp:49
Loop(ScreenInteractive *screen, Component component)
Un Loop es un envoltorio alrededor de un Component y un ScreenInteractive. Se utiliza para ejecutar u...
Definition loop.cpp:20
void RunOnce()
Ejecuta el bucle una vez. Hace que el component procese todas las tareas/eventos pendientes....
Definition loop.cpp:37
void RunOnceBlocking()
Espera a que se maneje al menos un evento y ejecuta Loop::RunOnce().
Definition loop.cpp:43
ScreenInteractive es una Screen que puede manejar eventos, ejecutar un bucle principal y administrar ...
El espacio de nombres ftxui:: de FTXUI.
Definition animation.hpp:10
std::shared_ptr< ComponentBase > Component