3#include "di/container/queue/queue.h"
4#include "dius/condition_variable.h"
29using RenderEvent = di::Variant<dius::tty::WindowSize, PaneExited, InputStatus, WriteString, DoRender, Exit>;
33 explicit RenderThread(di::Synchronized<LayoutState>& layout_state, di::Function<
void()> did_exit);
36 static auto create(di::Synchronized<LayoutState>& layout_state, di::Function<
void()> did_exit)
37 -> di::Result<di::Box<RenderThread>>;
48 di::Synchronized<di::Queue<RenderEvent>> m_events;
49 dius::ConditionVariable m_condition;
50 di::Synchronized<LayoutState>& m_layout_state;
51 di::Function<void()> m_did_exit;
52 dius::Thread m_thread;
void push_event(RenderEvent event)
Definition render.cpp:23
static auto create(di::Synchronized< LayoutState > &layout_state, di::Function< void()> did_exit) -> di::Result< di::Box< RenderThread > >
Definition render.cpp:7
RenderThread(di::Synchronized< LayoutState > &layout_state, di::Function< void()> did_exit)
Definition render.cpp:16
~RenderThread()
Definition render.cpp:19
void request_render()
Definition render.h:40
void request_exit()
Definition render.h:41
Definition cursor_style.h:5
InputMode
Definition input_mode.h:6
@ Insert
Definition input_mode.h:7
di::Variant< dius::tty::WindowSize, PaneExited, InputStatus, WriteString, DoRender, Exit > RenderEvent
Definition render.h:29
Tab * tab
Definition render.h:13
Pane * pane
Definition render.h:14
di::String string
Definition render.h:26