Support SIGTSTP and task posting. (#331)

- Add support for SIGTSTP:
https://github.com/ArthurSonzogni/FTXUI/issues/330
This

- Add support for task posting.
This allows folks to defer function execution, and execute it directly
below the main loop. The task are executed in a FIFO order.
This commit is contained in:
Arthur Sonzogni
2022-02-13 11:11:34 +01:00
committed by GitHub
parent 62747a49b6
commit 9c4218c2a8
14 changed files with 165 additions and 94 deletions

View File

@@ -8,6 +8,7 @@
#include "ftxui/component/event.hpp" // for Event (ptr only)
#include "ftxui/component/mouse.hpp" // for Mouse
#include "ftxui/component/receiver.hpp" // for Sender
#include "ftxui/component/task.hpp" // for Task
namespace ftxui {
struct Event;
@@ -15,7 +16,7 @@ struct Event;
// Parse a sequence of |char| accross |time|. Produces |Event|.
class TerminalInputParser {
public:
TerminalInputParser(Sender<Event> out);
TerminalInputParser(Sender<Task> out);
void Timeout(int time);
void Add(char c);
@@ -57,7 +58,7 @@ class TerminalInputParser {
Output ParseMouse(bool altered, bool pressed, std::vector<int> arguments);
Output ParseCursorReporting(std::vector<int> arguments);
Sender<Event> out_;
Sender<Task> out_;
int position_ = -1;
int timeout_ = 0;
std::string pending_;