2018-09-18 14:48:40 +08:00
|
|
|
#ifndef FTXUI_CORE_SCREEN
|
|
|
|
#define FTXUI_CORE_SCREEN
|
|
|
|
|
|
|
|
#include <string>
|
|
|
|
#include <vector>
|
2018-09-20 03:52:25 +08:00
|
|
|
#include <memory>
|
2018-09-18 14:48:40 +08:00
|
|
|
|
|
|
|
namespace ftxui {
|
2018-09-20 03:52:25 +08:00
|
|
|
namespace dom {
|
|
|
|
class Node;
|
|
|
|
}
|
2018-09-18 14:48:40 +08:00
|
|
|
|
|
|
|
class Screen {
|
|
|
|
public:
|
|
|
|
Screen(size_t dimx, size_t dimy);
|
|
|
|
wchar_t& at(size_t x, size_t y);
|
|
|
|
std::string ToString();
|
|
|
|
|
|
|
|
size_t dimx() { return dimx_;}
|
|
|
|
size_t dimy() { return dimy_;}
|
|
|
|
|
|
|
|
static Screen WholeTerminal();
|
2018-09-20 03:52:25 +08:00
|
|
|
static Screen TerminalOutput(std::unique_ptr<dom::Node>& element);
|
2018-09-18 14:48:40 +08:00
|
|
|
|
|
|
|
private:
|
|
|
|
size_t dimx_;
|
|
|
|
size_t dimy_;
|
|
|
|
std::vector<std::wstring> lines_;
|
|
|
|
};
|
|
|
|
|
|
|
|
}; // namespace ftxui
|
|
|
|
|
|
|
|
#endif /* end of include guard: FTXUI_CORE_SCREEN */
|