Iros
 
Loading...
Searching...
No Matches
pane.h
Go to the documentation of this file.
1#pragma once
2
6#include "di/sync/atomic.h"
10#include "dius/sync_file.h"
11#include "dius/thread.h"
12#include "dius/tty.h"
13#include "renderer.h"
14#include "ttx/key_event.h"
15#include "ttx/mouse.h"
16#include "ttx/paste_event.h"
17#include "ttx/terminal.h"
18
19namespace ttx {
20class Pane {
21public:
24
25 explicit Pane(dius::SyncFile pty_controller)
26 : m_pty_controller(di::move(pty_controller)), m_terminal(m_pty_controller) {}
27 ~Pane();
28
29 auto draw(Renderer& renderer) -> RenderedCursor;
30
31 auto event(KeyEvent const& event) -> bool;
32 auto event(MouseEvent const& event) -> bool;
33 auto event(FocusEvent const& event) -> bool;
34 auto event(PasteEvent const& event) -> bool;
35
37
38 // Application controlled callback when the internal process exits.
40
41private:
42 di::Atomic<bool> m_done { false };
43 di::Optional<MousePosition> m_last_mouse_position;
44 dius::SyncFile m_pty_controller;
46 dius::Thread m_process_thread;
47 dius::Thread m_reader_thread;
48};
49}
Definition vector_forward_declaration.h:8
Definition function.h:365
Definition atomic.h:15
Definition synchronized.h:17
Definition optional_forward_declaration.h:5
Definition sync_file.h:40
Class representing a single thread of execution.
Definition thread.h:25
Definition focus_event.h:7
Definition key_event.h:24
Definition mouse_event.h:23
static auto create(di::Vector< di::TransparentStringView > command, dius::tty::WindowSize size) -> di::Result< di::Box< Pane > >
Definition pane.cpp:34
di::Function< void()> did_exit
Definition pane.h:39
void resize(dius::tty::WindowSize const &size)
Definition pane.cpp:180
~Pane()
Definition pane.cpp:81
auto draw(Renderer &renderer) -> RenderedCursor
Definition pane.cpp:86
Pane(dius::SyncFile pty_controller)
Definition pane.h:25
auto event(KeyEvent const &event) -> bool
Definition pane.cpp:106
Definition paste_event.h:8
Definition renderer.h:18
constexpr usize size
Definition gfx_test.cpp:24
Expected< T, Error > Result
Definition result.h:8
Definition zstring_parser.h:9
Definition escape_sequence_parser.cpp:18
Definition tty.h:6
Definition renderer.h:11