// MplexRenderer: composes one client's whole screen (tai.py:13535). #pragma once #include #include #include #include "mplex_canvas.h" #include "mplex_clientconn.h" #include "mplex_common.h" #include "mplex_mode.h" namespace detz::mplex { class MplexServer; class MplexRenderer { public: explicit MplexRenderer(MplexServer* server_in) : server(server_in) {} MplexServer* server; ModeBlock block_of(const std::shared_ptr& pane, MplexClientConn& client); MplexCanvas frame(MplexClientConn& client); void borders(MplexCanvas& canvas, const std::shared_ptr& window, int area_y); void status(MplexCanvas& canvas, MplexClientConn& client, const std::shared_ptr& session, const std::shared_ptr& window, int row); static Row fit_list(const Row& cells, int avail, int current_at, const Style& base); }; } // namespace detz::mplex