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

YSTest PreAlpha_b500_20140530 The YSLib Test Project

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

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

全部 类 命名空间 文件 函数 变量 类型定义 枚举 枚举值 友元 宏定义 组 页
Public 成员函数 | Public 属性 | 所有成员列表
YSLib::Drawing::TextState类 参考

文本状态。 更多...

`#include <TextBase.h>`

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

## Public 成员函数

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

## Public 属性

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

## 相关函数

(请注意: 这些不是成员函数.)
SDst | GetTextLineHeightOf (const TextState &ts)
| 取当前指定文本状态的字体设置对应的行高。 更多...
SDst | GetTextLineHeightExOf (const TextState &ts)
| 取当前指定文本状态的字体设置对应的行高与行距之和。 更多...
u16 | GetCurrentTextLineNOf (const TextState &ts)
| 取笔所在的当前行数。 更多...
SPos | GetTextLineBaseOf (const TextState &ts)
| 取第一行的基线位置（纵坐标）。 更多...
void | SetPenOf (TextState &ts, SPos x, SPos y)
| 设置笔位置。 更多...
YF_API void | SetCurrentTextLineNOf (TextState &, u16)
| 设置笔的行位置。 更多...
void | AdjustEndOfLine (TextState &ts, const Rect &r, SDst w)
| 按指定显示区域和文本区域的宽重新设置右边距。 更多...
void | CarriageReturn (TextState &ts)
| 回车。 更多...
YF_API void | MovePen (TextState &, ucs4_t)
| 按字符跨距移动笔。 更多...

## 额外继承的成员函数

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

## 详细描述

文本状态。

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

自从
  build 145

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

## 构造及析构函数说明

YSLib::Drawing::TextState::TextState | ( | const Drawing::Font & | font = `{}` | ) |

explicit

构造：使用指定字体。

自从
  build 337

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

YSLib::Drawing::TextState::TextState | ( | FontCache & | fc | ) |

explicit

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

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

## 成员函数说明

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

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

自从
  build 372

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

## 友元及相关函数文档

void AdjustEndOfLine | ( | TextState & | ts,
|  | const Rect & | r,
|  | SDst | w
| ) |  |

related

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

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

参见
  PutChar

自从
  build 372

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

参考 Margin, YSLib::Drawing::Padding::Right, YSLib::Drawing::Size::Width , 以及 YSLib::Drawing::GBinaryGroup< _type >::X.

void CarriageReturn | ( | TextState & | ts | ) |

related

回车。

指定文本状态的笔的水平位置移至左端，竖直位置不变。

自从
  build 270

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

参考 YSLib::Drawing::Padding::Left, Margin, Pen , 以及 YSLib::Drawing::GBinaryGroup< _type >::X.

u16 GetCurrentTextLineNOf | ( | const TextState & | ts | ) |

related

取笔所在的当前行数。

自从
  build 231

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

参考 Margin, Pen, YSLib::Drawing::Padding::Top , 以及 YSLib::Drawing::GBinaryGroup< _type >::Y.

SPos GetTextLineBaseOf | ( | const TextState & | ts | ) |

related

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

自从
  build 372

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

参考 YSLib::Drawing::PenStyle::Font, YSLib::Drawing::Font::GetAscender(), Margin , 以及 YSLib::Drawing::Padding::Top.

函数调用图:

SDst GetTextLineHeightExOf | ( | const TextState & | ts | ) |

related

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

自从
  build 231

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

参考 YSLib::Drawing::PenStyle::Font, YSLib::Drawing::Font::GetHeight() , 以及 LineGap.

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

函数调用图:

这是这个函数的调用关系图:

SDst GetTextLineHeightOf | ( | const TextState & | ts | ) |

related

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

自从
  build 231

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

参考 YSLib::Drawing::PenStyle::Font , 以及 YSLib::Drawing::Font::GetHeight().

函数调用图:

YF_API void MovePen | ( | TextState & | ,
|  | ucs4_t |
| ) |  |

related

按字符跨距移动笔。

自从
  build 196

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

YF_API void SetCurrentTextLineNOf | ( | TextState & | ,
|  | u16 |
| ) |  |

related

设置笔的行位置。

自从
  build 231

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

void SetPenOf | ( | TextState & | ts,
|  | SPos | x,
|  | SPos | y
| ) |  |

related

设置笔位置。

自从
  build 231

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

参考 Pen.

## 类成员变量说明

u8 YSLib::Drawing::TextState::LineGap

行距。

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

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

Padding YSLib::Drawing::TextState::Margin

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

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

参考自 YSLib::Drawing::AdjustBottomMarginOf(), AdjustEndOfLine(), YSLib::DS::UI::DualScreenReader::AdjustMargins(), CarriageReturn(), YSLib::Drawing::DrawClippedText(), YSLib::Drawing::FetchLastLineBasePosition(), YSLib::Drawing::FetchResizedBottomMargin(), YSLib::Drawing::FetchResizedLineN(), GetCurrentTextLineNOf(), GetTextLineBaseOf(), YSLib::UI::HexViewArea::Refresh() , 以及 YSLib::Drawing::TextRegion::Scroll().

Point YSLib::Drawing::TextState::Pen

笔坐标。

自从
  build 371

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

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

void YSLib::Drawing::TextState::ResetPen

赋值：笔样式。

赋值：边距。

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

注解
  不考虑换行。

自从
  build 486

打印换行。

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

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

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

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

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

- TextBase.h
- TextBase.cpp