YSTest: YSLib::UI::TextBox类 参考

YSTest PreAlpha_b500_20140530 The YSLib Test Project

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

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

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

文本框。 更多...

`#include <TextBox.h>`

类 YSLib::UI::TextBox 继承关系图:
[图例]
YSLib::UI::TextBox 的协作图:
[图例]

## Public 成员函数

| TextBox (const Rect &={}, const Drawing::Font &={}, const pair< Drawing::Color, Drawing::Color > &=FetchGUIState().Colors.GetPair(Styles::Highlight, Styles::HighlightText))
| 构造：使用指定边界、字体和高亮背景色/文本色对。 更多...
DefDeMoveCtor(TextBox) TextSelection void | DrawClippedText (const Graphics &, const Rect &, TextState &) override
| 取指定点所在的插入符光标逻辑位置。 更多...
void | Refresh (PaintEventArgs &&) override
| 刷新：按指定参数绘制界面并更新状态。 更多...
void | ReplaceSelection (const String &)
| 替换选中文本。 更多...
void | PaintDefaultCaret (PaintEventArgs &&)
| 绘制默认插入符。 更多...
Public 成员函数 继承自 YSLib::UI::Widget
| Widget (const Rect &={})
| Widget (const Rect &, HBrush, Color=Drawing::ColorSpace::Black)
template<typename _tView , typename _tRenderer , typename _tController >
| Widget (_tView &&pView_=make_unique< View >(), _tRenderer &&pRenderer_=make_unique< Renderer >(), _tController &&pController_={})
| 构造：使用视图指针、渲染器指针和控制器指针，无背景。 更多...
| Widget (const Widget &)
| 复制构造：除容器指针为空外深复制。 更多...
| DefDelMoveCtor (Widget) virtual ~Widget()
| since build 428 更多...
| ImplI (IWidget) DefGetter(override
| WidgetRange ()) static HBrush MakeBlankBrush()
| 取空白画刷。 更多...
| ImplI (IWidget) DefGetter(const override
AController *controller_ptr | DefGetterMem (const ynothrow, SDst, Height, GetView()) ImplI(IWidget) DefGetter(const override
AController *controller_ptr Renderer *renderer_ptr | ImplI (IWidget) DefGetter(const override
AController *controller_ptr Renderer *renderer_ptr View *view_ptr | DefGetterMem (const ynothrow, SDst, Width, GetView()) DefGetterMem(const ynothrow
AController *controller_ptr Renderer *renderer_ptr View *view_ptr | GetView ()) DefGetterMem(const ynothrow
AController *controller_ptr Renderer *renderer_ptr View *view_ptr | GetView ()) DefSetterMem(SDst
AController *controller_ptr Renderer *renderer_ptr View *view_ptr | GetView ()) DefSetterMem(SDst
AController *controller_ptr Renderer *renderer_ptr View *view_ptr | GetView ()) DefSetterMem(SDst
AController *controller_ptr Renderer *renderer_ptr View *view_ptr | GetView ()) DefSetterMem(SDst
AController *controller_ptr Renderer *renderer_ptr View *view_ptr | GetView ()) void SetRenderer(unique_ptr< Renderer >)
| 设置渲染器为指定指针指向的对象，同时更新渲染器状态。 更多...
void | SetView (unique_ptr< View > &&)
| 设置渲染器为指定指针指向的对象，同时更新渲染器状态。 更多...

## 静态 Public 成员函数

static bool | InvalidateDefaultCaret (IWidget &)
| 无效化默认插入符。 更多...

## Public 属性

TextSelection | Selection
| 选择区域：结束位置指示插入符光标逻辑位置。 更多...
Caret | CursorCaret
| 插入符光标。 更多...
Public 属性 继承自 YSLib::UI::Widget
HBrush | Background
| 背景。 更多...
Color | ForeColor = Drawing::ColorSpace::Black
| 默认前景色。 更多...
| WidgetRange
| Children
AController | Controller
AController *controller_ptr Renderer | Renderer
AController *controller_ptr Renderer *renderer_ptr View | View
AController *controller_ptr Renderer *renderer_ptr View *view_ptr | SPos
AController *controller_ptr Renderer *renderer_ptr View *view_ptr | X
AController *controller_ptr Renderer *renderer_ptr View *view_ptr | Y
AController *controller_ptr Renderer *renderer_ptr View *view_ptr | Height
AController *controller_ptr Renderer *renderer_ptr View *view_ptr | Width

## Private 属性

SDst | h_offset
| 文字区域水平基准负偏移：文本内容在光标回退方向超出的未显示部分大小。 更多...

## 额外继承的成员函数

Protected 成员函数 继承自 YSLib::UI::Control
| Control (const Rect &, HBrush, Drawing::Color=Drawing::ColorSpace::Black)
| 构造：使用指定边界、背景画刷和前景色。 更多...
| Control (const Control &)
| 复制构造：除容器为空外深复制。 更多...
| DefDeMoveCtor (Control) virtual PDefH(IWidget *
| 取按键-指针设备输入默认事件组映射。 更多...
const KeyInput & | ImplRet (nullptr) void OnTouch_Close(CursorEventArgs &&)
| 处理屏幕事件：关闭显示。 更多...
Protected 成员函数 继承自 YSLib::UI::MLabel
| MLabel (const Drawing::Font &={}, TextAlignment=TextAlignment::Left)
| 构造：使用指定字体。 更多...
| DefDeMoveCtor (MLabel) virtual DefDeDtor(MLabel) void DrawText(const Size &
| 绘制文本。 更多...
Protected 成员函数 继承自 YSLib::UI::MHilightText
| MHilightText (const Color &bc, const Color &fc)
template<class _type >
| MHilightText (const _type &pr)
Protected 属性 继承自 YSLib::UI::Control
| GetBoundControlPtr
Protected 属性 继承自 YSLib::UI::MLabel
Drawing::Font | Font
| 字体。 更多...
Drawing::Padding | Margin
| 文本和容器的间距。 更多...
TextAlignment | HorizontalAlignment
| 文本水平和竖直对齐属性。 更多...
TextAlignment | VerticalAlignment
bool | AutoWrapLine
| 启用自动换行。 更多...
String | Text
| 标签文本。 更多...
| Color
Protected 属性 继承自 YSLib::UI::MHilightText
Color | HilightBackColor
| 高亮背景色。 更多...
Color | HilightTextColor
| 高亮文本色。 更多...

## 详细描述

文本框。

参见
  Label

自从
  build 482

待办事项:

  支持选中删除、退格和非字母符号和方向键光标移动。

  支持多行模式的插入符光标移动、文本选中和插入。

在文件 TextBox.h 第 128 行定义.

## 构造及析构函数说明

YSLib::UI::TextBox::TextBox | ( | const Rect & | = `{}`,
|  | const Drawing::Font & | = `{}`,
|  | const pair< Drawing::Color, Drawing::Color > & | = `FetchGUIState().Colors.GetPair( Styles::Highlight, Styles::HighlightText)`
| ) |  |

explicit

构造：使用指定边界、字体和高亮背景色/文本色对。

自从
  build 486

在文件 TextBox.cpp 第 90 行定义.

参考 YSLib::UI::TextSelection::Collapse, YSLib::UI::RoutedEventArgs::Direct, platform::KeyCategory::Editing, platform::KeyCategory::FindFirstKeyInCategroy(), YSLib::UI::Invalidate(), YSLib::UI::Left, platform::KeyCategory::Navigation, YSLib::UI::TextSelection::Range, ReplaceSelection(), YSLib::UI::Right, Selection, YSLib::UI::MLabel::Text , 以及 yunseq.

函数调用图:

## 成员函数说明

void YSLib::UI::TextBox::DrawClippedText | ( | const Graphics & | g,
|  | const Rect & | mask,
|  | TextState & | ts
| ) |  |

overridevirtual

取指定点所在的插入符光标逻辑位置。

参数

  相对于部件左上角偏移。 |

自从
  build 484

待办事项:
  AutoWrap 为 true 时判断行数。

自从
  build 485

重载 YSLib::UI::MLabel .

在文件 TextBox.cpp 第 224 行定义.

参考 YSLib::UI::MLabel::AutoWrapLine, CHRLib::c, YSLib::Drawing::TextRenderer::ClipArea, YSLib::Drawing::PenStyle::Color, YSLib::UI::MLabel::DrawClippedText(), YSLib::Drawing::FillRect(), YSLib::UI::Widget::ForeColor, YSLib::Drawing::g, YSLib::UI::MHilightText::HilightBackColor, YSLib::UI::MHilightText::HilightTextColor, YSLib::IsInInterval(), YSLib::Drawing::PutText(), YSLib::UI::TextSelection::Range, Selection, ystdex::swap() , 以及 YSLib::UI::MLabel::Text.

函数调用图:

bool YSLib::UI::TextBox::InvalidateDefaultCaret | ( | IWidget & | wgt | ) |

static

无效化默认插入符。

前置条件
  参数对象的动态类型为 TextBox 或其派生类。

参见
  Caret::CursorInvalidator

自从
  build 484

在文件 TextBox.cpp 第 262 行定义.

参考 YSLib::Drawing::FetchStringWidth(), YSLib::UI::GetSizeOf, YSLib::Drawing::GetVerticalOf(), YSLib::UI::InvalidateVisible() , 以及 YSLib::Drawing::GBinaryGroup< _type >::X.

函数调用图:

void YSLib::UI::TextBox::PaintDefaultCaret | ( | PaintEventArgs && | e | ) |

绘制默认插入符。

在文件 TextBox.cpp 第 291 行定义.

参考 YSLib::Drawing::DrawVLineSeg(), YSLib::Drawing::FetchMargin(), YSLib::Drawing::FetchStringWidth(), YSLib::UI::Widget::ForeColor, YSLib::Drawing::Font::GetHeight(), YSLib::UI::GetSizeOf, h_offset, YSLib::UI::MLabel::Margin, YSLib::UI::TextSelection::Range, Selection, YSLib::UI::MLabel::Text , 以及 YSLib::Drawing::GBinaryGroup< _type >::X.

函数调用图:

void YSLib::UI::TextBox::Refresh | ( | PaintEventArgs && | e | ) |

overridevirtual

刷新：按指定参数绘制界面并更新状态。

重载 YSLib::UI::Widget .

在文件 TextBox.cpp 第 256 行定义.

参考 YSLib::Drawing::DrawText(), YSLib::UI::Widget::ForeColor , 以及 YSLib::UI::GetSizeOf.

函数调用图:

void YSLib::UI::TextBox::ReplaceSelection | ( | const String & | text | ) |

替换选中文本。

自从
  build 490

在文件 TextBox.cpp 第 277 行定义.

参考 YSLib::UI::TextSelection::Collapse, YSLib::Drawing::r, YSLib::UI::TextSelection::Range, Selection, ystdex::swap() , 以及 YSLib::UI::MLabel::Text.

参考自 TextBox().

函数调用图:

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

## 类成员变量说明

Caret YSLib::UI::TextBox::CursorCaret

插入符光标。

自从
  build 484

在文件 TextBox.h 第 151 行定义.

SDst YSLib::UI::TextBox::h_offset

private

文字区域水平基准负偏移：文本内容在光标回退方向超出的未显示部分大小。

自从
  build 484

在文件 TextBox.h 第 158 行定义.

参考自 PaintDefaultCaret().

TextSelection YSLib::UI::TextBox::Selection

选择区域：结束位置指示插入符光标逻辑位置。

自从
  build 484

在文件 TextBox.h 第 146 行定义.

参考自 DrawClippedText(), PaintDefaultCaret(), ReplaceSelection() , 以及 TextBox().

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

- TextBox.h
- TextBox.cpp