YSTest: YSLib::Drawing::TextState类 参考

YSTest PreAlpha_b700_20160611 The YSLib Test Project

- 首页
- 相关页面
- 模块
- 命名空间
- 类
- 文件

- 类列表
- 类索引
- 类继承关系
- 类成员

Public 成员函数 | Public 属性 | 所有成员列表
YSLib::Drawing::TextState类 参考

文本状态。 更多...

`#include <TextBase.h>`

类 YSLib::Drawing::TextState 继承关系图:
[图例]
YSLib::Drawing::TextState 的协作图:
[图例]

## Public 成员函数

| TextState (const Drawing::Font &={}, const Padding &=DefaultMargin)
| 构造：使用指定字体和边距。 更多...
| TextState (FontCache &, const Padding &=DefaultMargin)
| 构造：使用指定字体缓存和边距。 更多...
void | ResetPen (const Point &, const Padding &={})
| 按指定显示区域左上角位置和附加边距重新设置笔位置。 更多...

## Public 属性

Padding | Margin
| 边距：文本区域到显示区域的距离。 更多...
Point | Pen {}
| 笔坐标。 更多...
std::uint8_t | LineGap = 0
| 行距。 更多...
PDefHOp(TextState &,=, const PenStyle &ps) ImplRet(PenStyle void | ResetPen ()
| 赋值：笔样式。 更多...

## 相关函数

(请注意: 这些不是成员函数.)
| GetTextLineHeightExOf
const TextState &ts | GetCurrentTextLineNOf
const TextState &ts const TextState &ts | GetTextLineBaseOf
const TextState &ts const TextState &ts const TextState &ts | SetPenOf
const TextState &ts const TextState &ts const TextState &ts TextState & | ts
const TextState &ts const TextState &ts const TextState &ts TextState SPos | x
#define | PDefH(_t, _n, ...)
| 取当前指定文本状态的字体设置对应的行高。 更多...
#define | ImplRet(...)
| 取笔所在的当前行数。 更多...
#define | ImplRet(...)
| 取第一行的基线位置（纵坐标）。 更多...
#define | ImplRet(...)
| 设置笔位置。 更多...
#define | ImplExpr(...)
| 设置笔的行位置。 更多...
#define | PDefH(_t, _n, ...)
| 按指定显示区域和文本区域的宽重新设置右边距。 更多...

## 额外继承的成员函数

Protected 成员函数 继承自 YSLib::Drawing::PenStyle
| PenStyle (const Drawing::Font &fnt={}, Drawing::Color c=Drawing::ColorSpace::White)
| 构造：使用指定字体家族、字体大小和颜色。 更多...
Protected 属性 继承自 YSLib::Drawing::PenStyle
Drawing::Font | Font
| 字体。 更多...
Drawing::Color | Color
| 笔颜色。 更多...

## 详细描述

文本状态。

包含笔样式、显示区域边界、字体缓存和行距。 文本区域指文本状态描述的平面区域。 文本区域位置坐标是文本区域左上角为原点的屏幕坐标系。 笔位置以文本区域位置坐标表示。 显示区域为文本区域内部实际显示文本光栅化结果的区域。 边距描述显示区域和文本区域的位置关系。 文本状态不包含文本区域和显示区域的大小，应由外部图形接口上下文或缓冲区状态确定。

自从
  build 145

在文件 TextBase.h 第 86 行定义.

## 构造及析构函数说明

YSLib::Drawing::TextState::TextState | ( | const Drawing::Font & | font = `{}`,
|  | const Padding & | m = `DefaultMargin`
| ) |  |

explicit

构造：使用指定字体和边距。

自从
  build 515

在文件 TextBase.cpp 第 43 行定义.

YSLib::Drawing::TextState::TextState | ( | FontCache & | fc,
|  | const Padding & | m = `DefaultMargin`
| ) |  |

explicit

构造：使用指定字体缓存和边距。

自从
  build 515

在文件 TextBase.cpp 第 47 行定义.

## 成员函数说明

void YSLib::Drawing::TextState::ResetPen | ( | const Point & | ,
|  | const Padding & | = `{}`
| ) |  |

按指定显示区域左上角位置和附加边距重新设置笔位置。

自从
  build 372

通过已有的区域左上角坐标和附加边距的左和上分量约束新和笔位置。

## 友元及相关函数文档

const TextState& ts GetCurrentTextLineNOf

related

在文件 TextBase.h 第 176 行定义.

const TextState& ts const TextState& ts GetTextLineBaseOf

related

在文件 TextBase.h 第 183 行定义.

YSLib::Drawing::TextState::GetTextLineHeightExOf

related

在文件 TextBase.h 第 169 行定义.

参考自 YSLib::Drawing::TextRegion::ClearTextLine().

#define ImplExpr | ( |  | ts.Pen = `Point(x, y)` | ) |

related

值:
{ \
(__VA_ARGS__), void(); \
}

设置笔的行位置。

自从
  build 231

#define ImplRet | ( |  | SDst(ts.Font.GetHeight()+ts.LineGap) | ) |

related

值:
{ \
return __VA_ARGS__; \
}

取笔所在的当前行数。

自从
  build 587

#define ImplRet | ( |  | (ts.Pen.Y-ts.Margin.Top)/SPos(GetTextLineHeightExOf(ts)) | ) |

related

值:
{ \
return __VA_ARGS__; \
}

取第一行的基线位置（纵坐标）。

自从
  build 372

#define ImplRet | ( |  | ts.Margin.Top+SPosts.Font.GetAscender() | ) |

related

值:
{ \
return __VA_ARGS__; \
}

设置笔位置。

自从
  build 231

#define PDefH | ( |  | SDst,
|  |  | GetTextLineHeightOf,
|  |  | const TextState &ts
| ) |  |

related

值:
_t \
_n(__VA_ARGS__)

取当前指定文本状态的字体设置对应的行高。

自从
  build 231

取当前指定文本状态的字体设置对应的行高与行距之和。

自从
  build 231

#define PDefH | ( |  | _t,
|  |  | _n,
|  |  | ...
| ) |  |

related

值:
_t \
_n(__VA_ARGS__)

按指定显示区域和文本区域的宽重新设置右边距。

注解
  右边距参与行的结尾位置计算。
  单独使用时，需要设置笔的起始位置（横坐标），否则只适用于单行显示。

参见
  Drawing::PutChar

自从
  build 372

const TextState& ts const TextState& ts const TextState& ts SetPenOf

related

在文件 TextBase.h 第 190 行定义.

const TextState& ts const TextState& ts const TextState& ts TextState& ts

related

在文件 TextBase.h 第 190 行定义.

参考自 YSLib::Drawing::TextRegion::ClearTextLine().

const TextState& ts const TextState& ts const TextState& ts TextState SPos x

related

在文件 TextBase.h 第 190 行定义.

## 类成员变量说明

std::uint8_t YSLib::Drawing::TextState::LineGap = 0

行距。

在文件 TextBase.h 第 99 行定义.

参考自 YSLib::DS::UI::DualScreenReader::Execute(), YSLib::Drawing::FetchResizedBottomMargin(), YSLib::Drawing::FetchResizedLineN(), YSLib::UI::HexViewArea::Refresh() , 以及 YSLib::DS::UI::DualScreenReader::SetLineGap().

Padding YSLib::Drawing::TextState::Margin

边距：文本区域到显示区域的距离。

在文件 TextBase.h 第 93 行定义.

参考自 YSLib::DS::UI::DualScreenReader::AdjustMargins(), YSLib::Drawing::DrawClippedText(), YSLib::Drawing::FetchResizedBottomMargin(), YSLib::Drawing::FetchResizedLineN(), YSLib::UI::HexViewArea::Refresh() , 以及 YSLib::Drawing::TextRegion::Scroll().

Point YSLib::Drawing::TextState::Pen {}

笔坐标。

自从
  build 371

在文件 TextBase.h 第 98 行定义.

参考自 YSLib::Drawing::FetchStringWidth(), YSLib::Drawing::MovePen(), YSLib::Drawing::PutCharBase(), YSLib::UI::HexViewArea::Refresh(), YSLib::DS::UI::DualScreenReader::ScrollByPixel() , 以及 YSLib::Drawing::SetCurrentTextLineNOf().

void YSLib::Drawing::TextState::ResetPen

赋值：笔样式。

赋值：边距。

取当前状态下继续在行内打印指定字符占据的边界。

注解
  不考虑换行。

自从
  build 641

打印换行。

复位笔：按字体大小设置笔位置为默认位置。

注解
  默认笔位置在由边距约束的显示区域左上角。

在文件 TextBase.h 第 145 行定义.

参考自 YSLib::Drawing::DrawClippedText(), YSLib::Drawing::TextRegion::InitializeFont(), YSLib::UI::HexViewArea::Refresh() , 以及 YSLib::DS::UI::DualScreenReader::Reset().

该类的文档由以下文件生成:

- TextBase.h
- TextBase.cpp