30 lines
933 B
C++
30 lines
933 B
C++
// MplexRenderer: composes one client's whole screen (tai.py:13535).
|
|
#pragma once
|
|
#include <memory>
|
|
#include <set>
|
|
#include <utility>
|
|
|
|
#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<MplexPane>& pane, MplexClientConn& client);
|
|
MplexCanvas frame(MplexClientConn& client);
|
|
void borders(MplexCanvas& canvas, const std::shared_ptr<MplexWindow>& window, int area_y);
|
|
void status(MplexCanvas& canvas, MplexClientConn& client, const std::shared_ptr<MplexSession>& session,
|
|
const std::shared_ptr<MplexWindow>& window, int row);
|
|
static Row fit_list(const Row& cells, int avail, int current_at, const Style& base);
|
|
};
|
|
|
|
} // namespace detz::mplex
|