3#ifndef FTXUI_DOM_CANVAS_HPP
4#define FTXUI_DOM_CANVAS_HPP
9#include <unordered_map>
42 int width()
const {
return width_; }
43 int height()
const {
return height_; }
106 void DrawText(
int x,
int y,
const std::string& value,
const Color& color);
107 void DrawText(
int x,
int y,
const std::string& value,
const Stylizer& style);
119 bool IsIn(
int x,
int y)
const {
120 return x >= 0 && x < width_ && y >= 0 && y < height_;
130 CellType type = kCell;
137 bool operator==(
const XY& other)
const {
138 return x == other.x && y == other.y;
143 size_t operator()(
const XY& xy)
const {
144 constexpr size_t shift = 1024;
145 return size_t(xy.x) * shift + size_t(xy.y);
151 std::unordered_map<XY, Cell, XYHash> storage_;
void DrawImage(int x, int y, const Image &)
定義済み画像を、指定された座標を左上隅として描画します 負の座標を指定して画像を自由に配置できます。 表示される部分のみが描画されます。
void DrawBlockLine(int x1, int y1, int x2, int y2)
ブロック文字で線を描画します。
void DrawPointEllipseFilled(int x, int y, int r1, int r2)
点字ドットで塗りつぶされた楕円を描画します。
void DrawPointLine(int x1, int y1, int x2, int y2)
点字ドットで線を描画します。
void DrawText(int x, int y, const std::string &value, const Color &color)
テキストを描画します。
std::function< void(Pixel &)> Stylizer
void DrawPointCircleFilled(int x, int y, int radius)
点字ドットで塗りつぶされた円を描画します。
void DrawPointOn(int x, int y)
点字ドットを描画します。
void DrawPointOff(int x, int y)
点字ドットを消去します。
Pixel GetPixel(int x, int y) const
セルの内容を取得します。
void DrawBlockEllipseFilled(int x1, int y1, int r1, int r2)
ブロック文字で塗りつぶされた楕円を描画します。
void DrawPointEllipse(int x, int y, int r1, int r2)
点字ドットで楕円を描画します。
void DrawPoint(int x, int y, bool value)
点字ドットを描画します。
void DrawBlockEllipse(int x1, int y1, int r1, int r2)
ブロック文字で楕円を描画します。
void DrawBlockToggle(int x, int y)
ブロックを切り替えます。塗りつぶされている場合は消去され、空の場合は塗りつぶされます。
void DrawBlockCircle(int x1, int y1, int radius)
ブロック文字で円を描画します。
void DrawBlockCircleFilled(int x1, int y1, int radius)
ブロック文字で塗りつぶされた円を描画します。
void DrawPointCircle(int x, int y, int radius)
点字ドットで円を描画します。
void DrawBlockOff(int x, int y)
ブロックを消去します。
void DrawBlock(int x, int y, bool value)
ブロックを描画します。
void DrawPointToggle(int x, int y)
点字ドットを切り替えます。塗りつぶされたものは消去され、それ以外は描画されます。
Canvasは、描画操作に関連付けられた描画可能なバッファです。
Colorは、ターミナルユーザーインターフェースにおける色を表すクラスです。
Unicode文字とそれに関連付けられたスタイル。