mirror of
https://github.com/ArthurSonzogni/FTXUI.git
synced 2024-12-02 00:12:28 +08:00
0acfd8f255
It can be used to give developers a better control on the loop. Users can use it not to take full control of the thread, and poll FTXUI from time to time as part of an external loop. This resolves: https://github.com/ArthurSonzogni/FTXUI/issues/474
40 lines
862 B
C++
40 lines
862 B
C++
#ifndef FTXUI_COMPONENT_LOOP_HPP
|
|
#define FTXUI_COMPONENT_LOOP_HPP
|
|
|
|
#include <memory> // for shared_ptr
|
|
|
|
#include "ftxui/component/component_base.hpp" // for ComponentBase
|
|
|
|
namespace ftxui {
|
|
class ComponentBase;
|
|
|
|
using Component = std::shared_ptr<ComponentBase>;
|
|
class ScreenInteractive;
|
|
|
|
class Loop {
|
|
public:
|
|
Loop(ScreenInteractive* screen, Component component);
|
|
~Loop();
|
|
|
|
bool HasQuitted();
|
|
void RunOnce();
|
|
void RunOnceBlocking();
|
|
void Run();
|
|
|
|
private:
|
|
// This class is non copyable.
|
|
Loop(const ScreenInteractive&) = delete;
|
|
Loop& operator=(const Loop&) = delete;
|
|
|
|
ScreenInteractive* screen_;
|
|
Component component_;
|
|
};
|
|
|
|
} // namespace ftxui
|
|
|
|
#endif // FTXUI_COMPONENT_LOOP_HPP
|
|
|
|
// Copyright 2022 Arthur Sonzogni. All rights reserved.
|
|
// Use of this source code is governed by the MIT license that can be found in
|
|
// the LICENSE file.
|