3#ifndef FTXUI_DOM_CANVAS_HPP
4#define FTXUI_DOM_CANVAS_HPP
9#include <unordered_map>
41 int width()
const {
return width_; }
42 int height()
const {
return height_; }
105 void DrawText(
int x,
int y,
const std::string& value,
const Color& color);
106 void DrawText(
int x,
int y,
const std::string& value,
const Stylizer& style);
118 bool IsIn(
int x,
int y)
const {
119 return x >= 0 && x < width_ && y >= 0 && y < height_;
129 CellType type = kCell;
136 bool operator==(
const XY& other)
const {
137 return x == other.x && y == other.y;
142 size_t operator()(
const XY& xy)
const {
143 constexpr size_t shift = 1024;
144 return size_t(xy.x) * shift + size_t(xy.y);
150 std::unordered_map<XY, Cell, XYHash> storage_;
void DrawImage(int x, int y, const Image &)
繪製一個預定義的圖像,左上角位於給定座標。 您可以提供負座標來隨意對齊圖像 - 只會繪製「可見」部分。
void DrawBlockEllipse(int x1, int y1, int r1, int r2, const Color &color)
void DrawBlock(int x, int y, bool value, const Stylizer &s)
void DrawBlockLine(int x1, int y1, int x2, int y2)
繪製一條由區塊字元組成的線條。
void DrawPointEllipseFilled(int x, int y, int r1, int r2, const Stylizer &s)
void DrawPointEllipseFilled(int x, int y, int r1, int r2)
void DrawBlockLine(int x1, int y1, int x2, int y2, const Stylizer &s)
void DrawPointLine(int x1, int y1, int x2, int y2)
繪製一條由盲文點組成的線條。
void DrawText(int x, int y, const std::string &value, const Color &color)
繪製一段文字。
void DrawPointEllipseFilled(int x, int y, int r1, int r2, const Color &color)
std::function< void(Pixel &)> Stylizer
void DrawPointCircleFilled(int x, int y, int radius)
void DrawPointOn(int x, int y)
繪製一個盲文點。
void DrawBlockCircleFilled(int x1, int y1, int radius, const Stylizer &s)
void DrawBlockEllipseFilled(int x1, int y1, int r1, int r2, const Color &color)
void DrawPointOff(int x, int y)
擦除一個盲文點。
Pixel GetPixel(int x, int y) const
取得單元格的內容。
void DrawBlockCircle(int x1, int y1, int radius, const Stylizer &s)
void DrawBlockCircleFilled(int x1, int y1, int radius, const Color &color)
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 DrawBlockCircle(int x1, int y1, int radius, const Color &color)
void DrawBlockToggle(int x, int y)
切換一個區塊。如果它已填滿,將被擦除;如果為空,將被填滿。
void DrawBlockCircle(int x1, int y1, int radius)
void DrawPointEllipse(int x, int y, int r1, int r2, const Stylizer &s)
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 DrawPointCircleFilled(int x, int y, int radius, const Stylizer &s)
void DrawPointToggle(int x, int y)
切換一個盲文點。如果它已填滿,將被擦除;如果為空,則繪製它。
Color 是一個在終端使用者介面中表示顏色的類別。