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

YSTest PreAlpha_b700_20160611 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 > &=FetchGUIConfiguration().Colors.GetPair(Styles::Highlight, Styles::HighlightText))
| 构造：使用指定边界、字体和高亮背景色/文本色对。 更多...
| DefDeMoveCtor (TextBox) Point GetCaretLocation() const
| 取插入符光标的显示位置。 更多...
TextSelection::Position | GetCaretPosition (const Point &)
| 取指定点所在的插入符光标逻辑位置。 更多...
Point | GetPenOffset () const
| 取按字体和边距计算的起始笔偏移。 更多...
void | CollapseCaret ()
| 折叠选择区域、重置插入符光标计时器并导出插入符位置。 更多...
void | ExportCaretLocation () const
| 导出插入符位置到公共 GUI 状态。 更多...
void | PaintDefaultCaret (PaintEventArgs &&)
| 绘制默认插入符。 更多...
void | Refresh (PaintEventArgs &&) override
| 刷新：按指定参数绘制界面并更新状态。 更多...
void | SelectAll ()
| 全选操作。 更多...
| PDefH (void, RestoreCaretTimer,) ImplExpr(Activate(CursorCaret.CaretTimer)) void ReplaceSelection(const String &)
| 重置插入符光标计时器。 更多...
void | UpdateTextBoxClippedText (const PaintContext &, TextState &)
Public 成员函数 继承自 YSLib::UI::Widget
| Widget (const Rect &={})
| Widget (const Rect &, HBrush)
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 更多...
| DefGetter (ImplI(IWidget), WidgetRange, Children, WidgetRange()) static HBrush MakeBlankBrush()
| 取空白画刷。 更多...
| DefGetter (const ImplI(IWidget), AController &, Controller, Deref(controller_ptr)) DefGetterMem(const ynothrow
| GetView ()) DefGetter(const ImplI(IWidget)
Renderer | Deref (renderer_ptr)) DefGetter(const ImplI(IWidget)
Renderer AView | Deref (view_ptr)) DefGetterMem(const ynothrow
Renderer AView | GetView ()) DefGetterMem(const ynothrow
Renderer AView | GetView ()) DefGetterMem(const ynothrow
Renderer AView | GetView ()) DefSetterMem(
Renderer AView | GetView ()) DefSetterMem(
Renderer AView | GetView ()) DefSetterMem(
Renderer AView | GetView ()) DefSetterMem(
Renderer AView | GetView ()) void SetRenderer(unique_ptr< Renderer >)
| 设置渲染器为指定指针指向的对象，同时更新渲染器状态。 更多...
void | SetView (unique_ptr< AView >)
| 设置视图为指定指针指向的对象。 更多...

## 静态 Public 成员函数

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

## Public 属性

TextSelection | Selection
| 选择区域：结束位置指示插入符光标逻辑位置。 更多...
Caret | CursorCaret
| 插入符光标。 更多...
size_t | MaxLength {size_t(-1)}
| 用户界面输入文本的最大长度。 更多...
char32_t | MaskChar = char32_t()
| 掩码字符。 更多...
Public 属性 继承自 YSLib::UI::Widget
HBrush | Background
| 背景。 更多...
| SDst
| Height
Renderer | Renderer
Renderer AView | View
Renderer AView | SDst
Renderer AView | Width
Renderer AView | SPos
Renderer AView | X
Renderer AView | Y
Renderer AView | Height

## Private 属性

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

## 额外继承的成员函数

Protected 成员函数 继承自 YSLib::UI::Control
| Control (const Rect &, HBrush)
| 构造：使用指定边界和背景画刷。 更多...
| Control (const Control &)
| 复制构造：除容器为空外深复制。 更多...
| DefDeMoveCtor (Control)~Control() override
| 虚析构：类定义外默认实现。 更多...
virtual | PDefH (observer_ptr< IWidget >, GetBoundControlPtr, const KeyInput &) ImplRet(nullptr) void OnTouch_Close(CursorEventArgs &&)
| 取按键-指针设备输入默认事件组映射。 更多...
Protected 成员函数 继承自 YSLib::UI::MLabel
| MLabel (const Drawing::Font &={}, Color=Drawing::ColorSpace::Black, TextAlignment=TextAlignment::Left)
| 构造：使用指定字体、文本颜色和文本对齐样式。 更多...
| DefDeMoveCtor (MLabel) void operator()(PaintEventArgs &&) const
| 描画：使用发送者的大小并调用 DrawText 绘制文本。 更多...
Point | GetAlignedPenOffset (const Size &) const
| 按参数指定的边界大小和当前状态计算笔的偏移位置。 更多...
| DefGetter (const ynothrow, SDst, ItemHeight, Font.GetHeight()+GetVerticalOf(Margin)) 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::MLabel
static void | DefaultUpdateClippedText (const PaintContext &, Drawing::TextState &, const String &, bool)
| 绘制剪切文本：使用指定的绘制上下文和文本状态。 更多...
Protected 属性 继承自 YSLib::UI::MLabel
Drawing::GBrushUpdater< Drawing::TextState &, const String &, bool > | UpdateClippedText {DefaultUpdateClippedText}
| 当前使用的剪切文本更新器。 更多...
Color | ForeColor {Drawing::ColorSpace::Black}
| 默认前景色。 更多...
Drawing::Font | Font
| 字体。 更多...
Drawing::Padding | Margin {Drawing::DefaultMargin}
| 文本和容器的间距。 更多...
TextAlignment | HorizontalAlignment
| 文本水平和竖直对齐属性。 更多...
TextAlignment | VerticalAlignment = TextAlignment::Center
bool | AutoWrapLine = {}
| 启用自动换行。 更多...
String | Text {}
| 标签文本。 更多...
const PaintContext & | const
Protected 属性 继承自 YSLib::UI::MHilightText
Color | HilightBackColor
| 高亮背景色。 更多...
Color | HilightTextColor
| 高亮文本色。 更多...
相关函数 继承自 YSLib::UI::Widget
template<class... _tWidgets>
void | InvalidateWidgets (_tWidgets &...wgts)
| 向无效化部件。 更多...
template<class _tRenderer >
_tRenderer & | WrapRenderer (Widget &wgt, unique_ptr< _tRenderer > p_renderer)
| 包装渲染器：设置渲染器并返回被设置的渲染器引用。 更多...

## 详细描述

文本框。

参见
  Label

自从
  build 482

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

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

## 构造及析构函数说明

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

explicit

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

自从
  build 486

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

参考 platform::KeyCodes::DS::Backspace, CollapseCaret(), YSLib::UI::RoutedEventArgs::Direct, YSLib::UI::e, platform::KeyCategory::Editing, platform::KeyCategory::FindFirstKeyInCategroy(), YSLib::UI::Invalidate(), YSLib::UI::Left, platform::KeyCategory::Navigation, YSLib::UI::TextSelection::Range, YSLib::UI::Right, Selection, platform::KeyCodes::DS::Shift, platform::KeyCodes::DS::Space, platform::KeyCodes::DS::Tab, YSLib::UI::MLabel::UpdateClippedText, UpdateTextBoxClippedText() , 以及 yunseq.

函数调用图:

## 成员函数说明

void YSLib::UI::TextBox::CollapseCaret | ( |  | ) |

折叠选择区域、重置插入符光标计时器并导出插入符位置。

注解
  若光标位置不变则无效。

自从
  build 514

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

参考 YSLib::UI::TextSelection::Collapse, ExportCaretLocation(), YSLib::UI::TextSelection::Range , 以及 Selection.

参考自 TextBox().

函数调用图:

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

YSLib::UI::TextBox::DefDeMoveCtor | ( | TextBox |  | ) | const

取插入符光标的显示位置。

注解
  使用 pen_offset 计算。

返回
  插入符光标左上角相对部件左上角的偏移。

自从
  build 512

void YSLib::UI::TextBox::ExportCaretLocation | ( |  | ) | const

导出插入符位置到公共 GUI 状态。

注解
  仅当外部文本输入指示焦点部件为本对象时有效，否则忽略。

自从
  build 518

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

参考 YSLib::UI::FetchGUIState().

参考自 CollapseCaret() , 以及 SelectAll().

函数调用图:

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

TextSelection::Position YSLib::UI::TextBox::GetCaretPosition | ( | const Point & | pt | ) |

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

注解
  参数为相对部件左上角偏移。

自从
  build 484

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

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

参考 YSLib::Drawing::char32_t, YSLib::Drawing::FetchCharWidth(), YSLib::Drawing::FetchStringOffsets(), h_offset, YSLib::Drawing::Padding::Left, YSLib::UI::MLabel::Margin, MaskChar, platform::n, YSLib::Drawing::w , 以及 YSLib::Drawing::GBinaryGroup< _type >::X.

函数调用图:

Point YSLib::UI::TextBox::GetPenOffset | ( |  | ) | const

取按字体和边距计算的起始笔偏移。

自从
  build 582

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

参考 YSLib::UI::MLabel::GetAlignedPenOffset(), YSLib::UI::GetSizeOf, YSLib::Drawing::Padding::Left, YSLib::UI::MLabel::Margin , 以及 YSLib::Drawing::Padding::Top.

函数调用图:

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

static

无效化默认插入符。

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

参见
  Caret::CursorInvalidator

自从
  build 484

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

参考 YSLib::UI::InvalidateVisible().

函数调用图:

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

绘制默认插入符。

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

参考 YSLib::UI::e, YSLib::UI::MLabel::ForeColor , 以及 YSLib::Drawing::Font::GetHeight().

函数调用图:

YSLib::UI::TextBox::PDefH | ( | void | ,
|  | RestoreCaretTimer |
| ) |  | const

重置插入符光标计时器。

自从
  build 514

替换选中文本。

注解
  用于默认响应 TextInput 事件。
  当文本已超出长度限制时只允许缩短文本；其余情况保证不超过限制。

参见
  MaxLength

自从
  build 490

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

overridevirtual

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

重载 YSLib::UI::Widget .

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

参考 YSLib::Drawing::char32_t, YSLib::UI::e , 以及 MaskChar.

void YSLib::UI::TextBox::SelectAll | ( |  | ) |

全选操作。

自从
  build 542

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

参考 ExportCaretLocation(), YSLib::UI::TextSelection::Range , 以及 Selection.

函数调用图:

void YSLib::UI::TextBox::UpdateTextBoxClippedText | ( | const PaintContext & | pc,
|  | TextState & | ts
| ) |  |

自从
  build 525

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

参考 YSLib::UI::MLabel::AutoWrapLine, CHRLib::c, YSLib::Drawing::char32_t, YSLib::Drawing::TextRenderer::ClipArea, YSLib::Drawing::PenStyle::Color, YSLib::UI::MLabel::DefaultUpdateClippedText(), YSLib::Drawing::FillRect(), YSLib::UI::MLabel::ForeColor, YSLib::Drawing::g, YSLib::UI::MHilightText::HilightBackColor, YSLib::UI::MHilightText::HilightTextColor, YSLib::IsInInterval(), platform::p, YSLib::Drawing::PutText(), YSLib::UI::TextSelection::Range, YSLib::RestrictUnsignedStrict(), Selection, ystdex::swap(), YSLib::Drawing::x1 , 以及 YSLib::Drawing::x2.

参考自 TextBox().

函数调用图:

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

## 类成员变量说明

Caret YSLib::UI::TextBox::CursorCaret

插入符光标。

自从
  build 484

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

SDst YSLib::UI::TextBox::h_offset

private

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

自从
  build 484

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

参考自 GetCaretPosition().

char32_t YSLib::UI::TextBox::MaskChar = char32_t()

掩码字符。

注解
  可作为屏蔽密码显示的字符。
  当前 char32_t 截取为 char16_t 。
  若不为空字符则默认在显示时使用此字符替换 Text 的每个字符。

自从
  build 641

参见
  Text

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

参考自 GetCaretPosition() , 以及 Refresh().

size_t YSLib::UI::TextBox::MaxLength {size_t(-1)}

用户界面输入文本的最大长度。

注解
  仅限制 TextInput 事件修改 Text 。

自从
  build 516

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

TextSelection YSLib::UI::TextBox::Selection

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

自从
  build 484

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

参考自 CollapseCaret(), SelectAll(), TextBox() , 以及 UpdateTextBoxClippedText().

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

- TextBox.h
- TextBox.cpp