1#ifndef FTXUI_COMPONENT_SCREEN_INTERACTIVE_HPP
2#define FTXUI_COMPONENT_SCREEN_INTERACTIVE_HPP
19using Component = std::shared_ptr<ComponentBase>;
51 enum class Dimension {
57 Dimension dimension_ = Dimension::Fixed;
58 bool use_alternative_screen_ =
false;
62 bool use_alternative_screen);
67 std::string set_cursor_position;
68 std::string reset_cursor_position;
70 std::atomic<bool> quit_ =
false;
71 std::thread event_listener_;
76 bool mouse_captured =
false;
77 bool previous_frame_resized_ =
false;
static ScreenInteractive TerminalOutput()
Callback ExitLoopClosure()
static ScreenInteractive FixedSize(int dimx, int dimy)
void PostEvent(Event event)
static ScreenInteractive FitComponent()
static ScreenInteractive Fullscreen()
std::function< void()> Callback
CapturedMouse CaptureMouse()
Callback WithRestoredIO(Callback)
Decorate a function. It executes the same way, but with the currently active screen terminal hooks te...
A rectangular grid of Pixel.
std::unique_ptr< CapturedMouseInterface > CapturedMouse
std::unique_ptr< ReceiverImpl< T > > Receiver
std::unique_ptr< SenderImpl< T > > Sender
std::shared_ptr< ComponentBase > Component
Represent an event. It can be key press event, a terminal resize, or more ...