YSTest: YSLib::UI 命名空间参考

YSTest PreAlpha_b400_20130424 The YSLib Test Project

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

- 命名空间列表
- 命名空间成员

全部 类 命名空间 文件 函数 变量 类型定义 枚举 枚举值 友元 宏定义 组 页
命名空间 | 类 | 类型定义 | 枚举 | 函数
YSLib::UI 命名空间参考

## 命名空间

namespace | EventMapping
| 事件映射命名空间。
namespace | Styles

## 类

class | Thumb
| 基本按钮。 更多...
class | Button
| 按钮。 更多...
class | ListBox
| 带滚动条的文本列表框。 更多...
class | FileBox
| 文件列表框。 更多...
class | DropDownList
| 下拉列表。 更多...
class | Console
| 控制台。 更多...
class | MLabel
| 标签模块。 更多...
class | Label
| 标签。 更多...
class | MTextList
| 文本列表模块。 更多...
class | Menu
| 文本菜单。 更多...
class | MenuHost
| 菜单宿主。 更多...
class | ProgressBar
| 进度条。 更多...
struct | ScrollEventArgs
| 滚动事件参数类。 更多...
class | ATrack
| 轨道。 更多...
class | HorizontalTrack
| 水平轨道。 更多...
class | VerticalTrack
| 竖直轨道。 更多...
class | AScrollBar
| 滚动条。 更多...
class | HorizontalScrollBar
| 水平滚动条。 更多...
class | VerticalScrollBar
| 竖直滚动条。 更多...
class | ScrollableContainer
| 带滚动条的容器。 更多...
class | CheckBox
| 复选框。 更多...
class | CheckButton
| 复选按钮。 更多...
class | TextArea
| 文本区域。 更多...
class | BufferedTextArea
| 缓冲文本区域。 更多...
class | TextList
| 文本列表。 更多...
class | DialogBox
| 对话框。 更多...
class | DialogPanel
| 对话面板。 更多...
class | GSequenceViewer
| 序列视图类模板。 更多...
class | SolidBrush
| 单色画刷。 更多...
class | ImageBrush
| 图像画刷。 更多...
class | BorderStyle
| 边框样式。 更多...
class | BorderBrush
| 边框画刷。 更多...
class | Controller
| 部件控制器。 更多...
class | Control
| 控件。 更多...
class | Desktop
| 桌面。 更多...
class | InputTimer
| 输入计时器。 更多...
class | GUIState
| 图形用户界面公共状态。 更多...
class | Panel
| 面板。 更多...
class | Renderer
| 部件渲染器。 更多...
class | BufferedRenderer
| 带缓冲的部件渲染器。 更多...
class | MUIContainer
| 部件容器模块。 更多...
struct | UIEventArgs
| 用户界面事件参数基类。 更多...
struct | RoutedEventArgs
| 路由事件参数基类。 更多...
struct | InputEventArgs
| 输入事件参数类。 更多...
struct | KeyEventArgs
| 按键输入事件参数类。 更多...
struct | TouchEventArgs
| 指针设备输入事件参数类。 更多...
struct | GValueEventArgs
| 简单事件参数类。 更多...
struct | PaintEventArgs
| 部件绘制参数。 更多...
struct | EventTypeMapping
struct | EventTypeMapping< Move >
struct | EventTypeMapping< Resize >
struct | EventTypeMapping< KeyUp >
struct | EventTypeMapping< KeyDown >
struct | EventTypeMapping< KeyHeld >
struct | EventTypeMapping< KeyPress >
struct | EventTypeMapping< TouchUp >
struct | EventTypeMapping< TouchDown >
struct | EventTypeMapping< TouchHeld >
struct | EventTypeMapping< TouchMove >
struct | EventTypeMapping< Click >
struct | EventTypeMapping< Paint >
struct | EventTypeMapping< GotFocus >
struct | EventTypeMapping< LostFocus >
struct | EventTypeMapping< Enter >
struct | EventTypeMapping< Leave >
struct | BadEvent
| 错误或不存在的部件事件异常。 更多...
class | AController
| 控制器抽象类。 更多...
class | WidgetController
| 部件控制器。 更多...
class | MOriented
| 方向模块。 更多...
class | Visual
| 可视状态。 更多...
class | View
| 部件视图。 更多...
struct | IWidget
| 部件接口。 更多...
class | Widget
| 部件。 更多...
class | Window
| 窗口。 更多...

## 类型定义

typedef Window | Form
typedef GHEvent< void(ScrollEventArgs)> | HScrollEvent
typedef GValueEventArgs < MTextList::IndexType > | IndexEventArgs
| 索引事件。
typedef GHEvent< void(IndexEventArgs)> | HIndexEvent
typedef std::function< void(PaintEventArgs &&)> | HBrush
| 画刷回调函数。
typedef u8 | ZOrderType
typedef Drawing::Point | MScreenPositionEventArgs
| 屏幕（指针设备）输入事件参数模块类。
typedef GHEvent< void(UIEventArgs &&)> | HUIEvent
typedef GHEvent< void(InputEventArgs &&)> | HInputEvent
typedef GHEvent< void(KeyEventArgs &&)> | HKeyEvent
typedef GHEvent< void(TouchEventArgs &&)> | HTouchEvent
typedef GHEvent< void(PaintEventArgs &&)> | HPaintEvent
typedef EventMapping::MapType | VisualEventMap
typedef ystdex::any_input_iterator < IWidget > | WidgetIterator
| 通用部件迭代器。
typedef pair< WidgetIterator, WidgetIterator > | WidgetRange
| 两个部件迭代器组成的左闭右开区间确定的迭代器范围。

## 枚举

enum | TextAlignment
enum | ScrollCategory
| 滚动类别。 更多...

enum

VisualEvent {
Move, Resize, KeyUp, KeyDown,
KeyHeld, KeyPress, TouchUp, TouchDown,
TouchHeld, TouchMove, Click, Paint,
GotFocus, LostFocus, Enter, Leave
}

| 标准控件事件空间。 更多...

## 函数

YF_API void | DrawThumbBackground (PaintEventArgs &&e, Thumb &, Hue)
| 绘制指定色调的基本按钮背景。
YF_API void | DecorateAsCloseButton (Thumb &)
| 装饰 Thumb 为关闭按钮。
const ZOrderType | DefaultMenuZOrder (224)
| 默认菜单 Z 顺序值。
YF_API void | LocateMenu (Menu &, const Menu &, Menu::IndexType)
| 定位菜单：以第二个参数作为参考父菜单，按指定参考偏移索引定位菜单。
YF_API void | DrawTrackBackground (PaintEventArgs &&e, ATrack &)
| 绘制指定色调的基本按钮背景。
YF_API void | ResizeForContent (TextList &)
| 根据文本内容调整文本列表大小。
YF_API void | UpdateView (TextList &, bool is_active=false)
| 更新文本列表视图。
bool | IsEnabled (const IWidget &wgt)
| 判断部件是否为可用的控件。
void | SetEnabledOf (IWidget &wgt, bool b)
| 设置部件可用性。
YF_API bool | Enable (IWidget &, bool=true)
| 设置部件可用性，且当可用性改变时无效化部件区域。
template<VisualEvent _vID>
EventMapping::MappedType | NewEvent ()
| 构造指针指向的 VisualEvent 指定的事件对象。
YF_API EventMapping::ItemType & | GetEvent (EventMapping::MapType &, const VisualEvent &, EventMapping::MappedType(&)())
| 在事件映射表中取指定 id 对应的事件。
template<VisualEvent _vID>
GEvent< void(typename EventTypeMapping< _vID > ::HandlerType::EventArgsType)> & | FetchEvent (VisualEventMap &m)
| 取控件事件。
template<VisualEvent _vID>
GEvent< void(typename EventTypeMapping< _vID > ::HandlerType::EventArgsType)> & | FetchEvent (AController &controller)
| 取部件事件。
template<VisualEvent _vID>
GEvent< void(typename EventTypeMapping< _vID > ::HandlerType::EventArgsType)> & | FetchEvent (IWidget &wgt)
| 取部件事件。
template<VisualEvent _vID, typename _tEventArgs >
size_t | CallEvent (IWidget &wgt, _tEventArgs &&e)
| 调用部件事件，并忽略 BadControl 异常。
template<VisualEvent _vID, class _tEventArgs >
void | OnEvent_Call (_tEventArgs &&e)
| 处理事件：直接转发至发送者。
template<class _tEventArgs >
void | OnEvent_StopRouting (_tEventArgs &&e)
YF_API void | OnKeyHeld (KeyEventArgs &&)
| 处理键接触保持事件。
YF_API void | OnTouchDown_RequestToTopFocused (TouchEventArgs &&)
| 处理屏幕接触开始事件：使用一般接触策略。
YF_API void | OnTouchHeld (TouchEventArgs &&)
| 处理屏幕接触保持事件。
YF_API void | OnTouchMove (TouchEventArgs &&)
| 处理屏幕接触移动事件。
YF_API void | OnTouchMove_Dragging (TouchEventArgs &&)
| 处理屏幕接触移动事件。
YF_API void | OnKey_Bound_TouchUpAndLeave (KeyEventArgs &&)
| 处理按键事件：按键-指针设备接触结束。
YF_API void | OnKey_Bound_EnterAndTouchDown (KeyEventArgs &&)
| 处理按键事件：按键-指针设备接触开始。
YF_API void | OnKey_Bound_Click (KeyEventArgs &&)
| 处理按键事件：按键-指针设备按下。
YF_API bool | IsFocused (const IWidget &)
| 判断部件是否取得焦点。
YF_API bool | DoRequestFocus (IWidget &, bool release_event=false)
| 向部件容器请求获得焦点，并指定 GotFocus 事件发送控件。
YF_API bool | DoReleaseFocus (IWidget &)
| 释放焦点，并指定 LostFocus 事件发送控件。
YF_API void | RequestFocusFrom (IWidget &dst, IWidget &src)
| 向部件容器请求获得焦点，并指定 GotFocus 事件发送控件。
YF_API void | ReleaseFocusFrom (IWidget &dst, IWidget &src)
| 释放焦点，并指定 LostFocus 事件发送控件。
void | RequestFocus (IWidget &wgt)
| 向部件容器释放获得焦点，成功后向自身发送 GotFocus 事件。
void | ReleaseFocus (IWidget &wgt)
| 释放焦点，成功后向自身发送 LostFocus 事件。
YF_API void | ClearFocusingOf (IWidget &)
| 清除焦点指针，同时以此部件作为事件源，调用被清除焦点部件的 LostFocus 事件。
YF_API void | RequestFocusCascade (IWidget &)
| 级联请求部件及上层容器焦点。
YF_API void | ReleaseFocusCascade (IWidget &)
| 级联释放部件及上层容器焦点。
YF_API bool | RepeatHeld (InputTimer &, InputTimer::HeldStateType &, const Timers::Duration &, const Timers::Duration &)
| 向指定计时器传递参数，根据状态重复按键。
YF_API GUIState & | FetchGUIState ()
| 取默认图形用户界面公共状态。
bool | IsFocusedByShell (const IWidget &wgt, const GUIState &st=FetchGUIState())
YF_API IWidget & | FetchTopLevel (IWidget &)
| 取指定部件的顶层部件。
YF_API IWidget & | FetchTopLevel (IWidget &, Point &)
| 取指定部件的顶层部件，当返回非第一参数时变换坐标。
YF_API Point | LocateOffset (const IWidget *pEnd, Point, const IWidget *pWgt)
| 取相对于 pWgt 指向的部件的点 pt 相对于 pEnd 指向的容器的偏移坐标。
Point | LocateContainerOffset (const IWidget &wgt, const Point &pt)
| 取相对部件 wgt 的点 pt 相对于 wgt 的容器的偏移坐标。
YF_API Point | LocateForWidget (IWidget &a, IWidget &b)
| 取指定部件 b 相对于部件 a 的偏移坐标。
template<class _tWidget , typename _fFetcher >
Point | LocateForWidgetNode (IWidget &wgt, _fFetcher fetch_ptr)
| 取指定部件相对于视图树中的直接节点指针的偏移坐标。
YF_API Point | LocateForParentContainer (const IWidget &)
| 取指定部件相对于容器的父容器的偏移坐标。
YF_API void | MoveToLeft (IWidget &wgt)
| 移动部件 wgt 至容器左端。
YF_API void | MoveToRight (IWidget &wgt)
| 移动部件 wgt 至容器右端。
YF_API void | MoveToTop (IWidget &wgt)
| 移动部件 wgt 至容器上端。
YF_API void | MoveToBottom (IWidget &wgt)
| 移动部件 wgt 至容器下端。
const ZOrderType | DefaultZOrder (64)
| 默认 Z 顺序值。
const ZOrderType | DefaultWindowZOrder (128)
| 默认窗口 Z 顺序值。
template<class _tContainer , class... _tWidgets>
void | AddWidgets (_tContainer &con, _tWidgets &...wgts)
| 向部件容器添加子部件。
template<class _tContainer , class... _tWidgets>
void | AddWidgetsZ (_tContainer &con, ZOrderType z, _tWidgets &...wgts)
| 向部件容器添加指定 Z 顺序的子部件。
template<class _tContainer , class... _tWidgets>
void | RemoveWidgets (_tContainer &con, _tWidgets &...wgts)
| 从部件容器移除子部件。
template<class _tEventHandler >
size_t | DoEvent (AController &controller, const VisualEvent &id, typename _tEventHandler::EventArgsType &&e)
template<class _tEventHandler >
size_t | DoEvent (AController &controller, const VisualEvent &id, typename _tEventHandler::EventArgsType &e)
bool | IsVisible (const IWidget &wgt)
| 判断部件是否可见。
bool YF_API | Contains (const IWidget &, SPos, SPos)
| 判断点是否在部件的可视区域内。
bool | Contains (const IWidget &wgt, const Point &pt)
| 判断点是否在部件的可视区域内。
bool YF_API | ContainsVisible (const IWidget &wgt, SPos x, SPos y)
| 判断点是否在可见部件的可视区域内。
bool | ContainsVisible (const IWidget &wgt, const Point &pt)
| 判断点是否在可见部件的可视区域内。
IWidget * | FetchContainerPtr (const IWidget &wgt)
| 取部件的容器指针。
IWidget * | FetchFocusingPtr (IWidget &wgt)
| 取焦点对象指针。
const Point & | GetLocationOf (const IWidget &wgt)
| 取部件位置。
const Size & | GetSizeOf (const IWidget &wgt)
| 取部件大小。
Rect | GetBoundsOf (const IWidget &wgt)
| 取部件边界。
YF_API void | SetBoundsOf (IWidget &, const Rect &)
| 设置部件边界。
void | SetContainerPtrOf (IWidget &wgt, IWidget *pCon={})
| 设置部件的容器指针。
YF_API void | SetInvalidationOf (IWidget &)
| 设置部件的无效区域。
YF_API void | SetInvalidationToParent (IWidget &)
| 在容器设置部件的无效区域。
YF_API void | SetLocationOf (IWidget &, const Point &)
| 设置部件左上角所在位置（相对于容器的偏移坐标）。
YF_API void | SetSizeOf (IWidget &, const Size &)
void | SetVisibleOf (IWidget &wgt, bool b)
| 设置部件可见性。
YF_API void | Close (IWidget &)
| 关闭部件。
YF_API void | DrawArrow (PaintEventArgs &&, IWidget &, SDst=4, Drawing::Rotation=Drawing::RDeg0, Drawing::Color=Drawing::ColorSpace::Black)
| 在指定部件中心画箭头。
YF_API void | Hide (IWidget &)
| 隐藏部件。
YF_API void | Invalidate (IWidget &)
| 无效化：使部件区域在直接和间接的窗口缓冲区中无效。
YF_API void | Invalidate (IWidget &, const Rect &)
| 无效化：使相对于部件的指定区域在直接和间接的窗口缓冲区中无效。
YF_API void | PaintChild (IWidget &wgt, PaintEventArgs &&e)
YF_API Rect | PaintChild (IWidget &wgt, const PaintContext &pc)
YF_API void | RequestToTop (IWidget &)
| 请求提升至容器顶端。
YF_API void | Show (IWidget &)
| 显示部件。
yconstexpr EventPriority | BackgroundPriority (0xC0)
| 用户界面绘制优先级。
yconstexpr EventPriority | BoundaryPriority (0x60)
yconstexpr EventPriority | ForegroundPriority (0x40)

## 类型定义说明

typedef Window YSLib::UI::Form

在文件 form.h 第 37 行定义.

typedef std::function<void(PaintEventArgs&&)> YSLib::UI::HBrush

画刷回调函数。

自从
  build 293

在文件 ycomp.h 第 69 行定义.

typedef GHEvent<void( IndexEventArgs )> YSLib::UI::HIndexEvent

在文件 textlist.h 第 45 行定义.

typedef GHEvent<void( InputEventArgs&& )> YSLib::UI::HInputEvent

在文件 ywgtevt.h 第 231 行定义.

typedef GHEvent<void( KeyEventArgs&& )> YSLib::UI::HKeyEvent

在文件 ywgtevt.h 第 232 行定义.

typedef GHEvent<void( PaintEventArgs&& )> YSLib::UI::HPaintEvent

在文件 ywgtevt.h 第 234 行定义.

typedef GHEvent<void( ScrollEventArgs )> YSLib::UI::HScrollEvent

在文件 scroll.h 第 115 行定义.

typedef GHEvent<void( TouchEventArgs&& )> YSLib::UI::HTouchEvent

在文件 ywgtevt.h 第 233 行定义.

typedef GHEvent<void( UIEventArgs&& )> YSLib::UI::HUIEvent

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

typedef GValueEventArgs<MTextList::IndexType> YSLib::UI::IndexEventArgs

索引事件。

自从
  build 268

在文件 textlist.h 第 44 行定义.

typedef Drawing::Point YSLib::UI::MScreenPositionEventArgs

屏幕（指针设备）输入事件参数模块类。

警告
  非虚析构。

自从
  build 160

在文件 ywgtevt.h 第 113 行定义.

typedef EventMapping::MapType YSLib::UI::VisualEventMap

在文件 ywgtevt.h 第 338 行定义.

typedef ystdex::any_input_iterator<IWidget> YSLib::UI::WidgetIterator

通用部件迭代器。

自从
  build 356

在文件 ywidget.h 第 44 行定义.

typedef pair<WidgetIterator, WidgetIterator> YSLib::UI::WidgetRange

两个部件迭代器组成的左闭右开区间确定的迭代器范围。

自从
  build 357

在文件 ywidget.h 第 49 行定义.

typedef u8 YSLib::UI::ZOrderType

在文件 yuicont.h 第 143 行定义.

## 枚举类型说明

enum YSLib::UI::ScrollCategory

滚动类别。

自从
  build 261

在文件 scroll.h 第 46 行定义.

enum YSLib::UI::TextAlignment

在文件 label.h 第 41 行定义.

enum YSLib::UI::VisualEvent

标准控件事件空间。

自从
  build 192

枚举值:

  Move | 移动：位置调整。
  Resize | 大小调整。
  KeyUp | 键接触结束。
  KeyDown | 键接触开始。
  KeyHeld | 键接触保持。
  KeyPress | 键按下。
  TouchUp | 屏幕接触结束。
  TouchDown | 屏幕接触开始。
  TouchHeld | 屏幕接触保持。
  TouchMove | 屏幕接触移动。
  Click | 屏幕点击。
  Paint | 界面绘制。
  GotFocus | 焦点获得。
  LostFocus | 焦点失去。
  Enter | 控件进入。
  Leave | 控件离开。

在文件 ywgtevt.h 第 251 行定义.

## 函数说明

template<class _tContainer , class... _tWidgets>

void YSLib::UI::AddWidgets | ( | _tContainer & | con,
|  | _tWidgets &... | wgts
| ) |  |

inline

向部件容器添加子部件。

注解
  不保证顺序。

自从
  build 303

在文件 yuicont.h 第 242 行定义.

参考 ystdex::unseq_apply().

参考自 bookmarks(),YSLib::UI::DialogPanel::DialogPanel(),GetDesktopDownHandle(),main(),ShlTextReader::SettingSession::SettingSession() , 以及 smooth_scroll_duration().

函数调用图:

这是这个函数的调用关系图:
template<class _tContainer , class... _tWidgets>

void YSLib::UI::AddWidgetsZ | ( | _tContainer & | con,
|  | ZOrderType | z,
|  | _tWidgets &... | wgts
| ) |  |

inline

向部件容器添加指定 Z 顺序的子部件。

注解
  不保证顺序。

自从
  build 303

在文件 yuicont.h 第 256 行定义.

参考 ystdex::unseq_apply().

参考自 GetDesktopDownHandle().

函数调用图:

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

yconstexpr EventPriority YSLib::UI::BackgroundPriority | ( | 0xC0 |  | ) |

用户界面绘制优先级。

自从
  build 294

参考自 YSLib::UI::DialogBox::DialogBox(),YSLib::UI::DialogPanel::DialogPanel() , 以及 YSLib::UI::Widget::InitializeEvents().

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

yconstexpr EventPriority YSLib::UI::BoundaryPriority | ( | 0x60 |  | ) |

template<VisualEvent _vID, typename _tEventArgs >

size_t YSLib::UI::CallEvent | ( | IWidget & | wgt,
|  | _tEventArgs && | e
| ) |  |

inline

调用部件事件，并忽略 BadControl 异常。

注解
  需要确保 EventTypeMapping 中有对应的 EventType ，否则无法匹配此函数模板。
  若控件事件不存在则忽略。

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

参考 YSLib::UI::IWidget::GetController() , 以及 yforward.

函数调用图:

YF_API void YSLib::UI::ClearFocusingOf | ( | IWidget & |  | ) |

清除焦点指针，同时以此部件作为事件源，调用被清除焦点部件的 LostFocus 事件。

注解
  若此部件非容器则无效。

自从
  build 258

YF_API void YSLib::UI::Close | ( | IWidget & |  | ) |

关闭部件。

自从
  build 275

隐藏部件后取消容器（若存在）焦点状态。

参考自 YSLib::UI::DialogPanel::DialogPanel() , 以及 YSLib::UI::Control::OnTouch_Close().

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

bool YF_API YSLib::UI::Contains | ( | const IWidget & | ,
|  | SPos | ,
|  | SPos |
| ) |  |

判断点是否在部件的可视区域内。

自从
  build 167

bool YSLib::UI::Contains | ( | const IWidget & | wgt,
|  | const Point & | pt
| ) |  |

inline

判断点是否在部件的可视区域内。

自从
  build 167

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

参考 Contains(),YSLib::Drawing::GBinaryGroup< _type >::X , 以及 YSLib::Drawing::GBinaryGroup< _type >::Y.

函数调用图:

bool YF_API YSLib::UI::ContainsVisible | ( | const IWidget & | wgt,
|  | SPos | x,
|  | SPos | y
| ) |  |

判断点是否在可见部件的可视区域内。

自从
  build 173

bool YSLib::UI::ContainsVisible | ( | const IWidget & | wgt,
|  | const Point & | pt
| ) |  |

inline

判断点是否在可见部件的可视区域内。

自从
  build 173

在文件 ywidget.h 第 116 行定义.

参考 ContainsVisible(),YSLib::Drawing::GBinaryGroup< _type >::X , 以及 YSLib::Drawing::GBinaryGroup< _type >::Y.

函数调用图:

YF_API void YSLib::UI::DecorateAsCloseButton | ( | Thumb & |  | ) |

装饰 Thumb 为关闭按钮。

自从
  build 302

在指定 Thumb 上增加 Click 事件响应：关闭父容器；增加 Paint 事件响应：绘制“×”。

参考自 YSLib::UI::DialogPanel::DialogPanel().

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

const ZOrderType YSLib::UI::DefaultMenuZOrder | ( | 224 |  | ) |

默认菜单 Z 顺序值。

const ZOrderType YSLib::UI::DefaultWindowZOrder | ( | 128 |  | ) |

默认窗口 Z 顺序值。

自从
  build 212

参考自 GetDesktopDownHandle().

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

const ZOrderType YSLib::UI::DefaultZOrder | ( | 64 |  | ) |

默认 Z 顺序值。

自从
  build 212

template<class _tEventHandler >

size_t YSLib::UI::DoEvent | ( | AController & | controller,
|  | const VisualEvent & | id,
|  | typename _tEventHandler::EventArgsType && | e
| ) |  |

在文件 ywgtevt.h 第 397 行定义.

参考 EventT.

template<class _tEventHandler >

size_t YSLib::UI::DoEvent | ( | AController & | controller,
|  | const VisualEvent & | id,
|  | typename _tEventHandler::EventArgsType & | e
| ) |  |

inline

在文件 ywgtevt.h 第 413 行定义.

YF_API bool YSLib::UI::DoReleaseFocus | ( | IWidget & |  | ) |

释放焦点，并指定 LostFocus 事件发送控件。

返回
  是否成功。

自从
  build 315

YF_API bool YSLib::UI::DoRequestFocus | ( | IWidget & | ,
|  | bool | release_event = `false`
| ) |  |

向部件容器请求获得焦点，并指定 GotFocus 事件发送控件。

参数

  release_event | 是否在需要释放已有焦点时触发事件。

返回
  是否成功。

自从
  build 315

YF_API void YSLib::UI::DrawArrow | ( | PaintEventArgs && | ,
|  | IWidget & | ,
|  | SDst | = `4`,
|  | Drawing::Rotation | = `Drawing::RDeg0`,
|  | Drawing::Color | = `Drawing::ColorSpace::Black`
| ) |  |

在指定部件中心画箭头。

自从
  build 302

参考自 YSLib::UI::DropDownList::Refresh().

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

YF_API void YSLib::UI::DrawThumbBackground | ( | PaintEventArgs && | e,
|  | Thumb & | ,
|  | Hue |
| ) |  |

绘制指定色调的基本按钮背景。

自从
  build 302

YF_API void YSLib::UI::DrawTrackBackground | ( | PaintEventArgs && | e,
|  | ATrack & |
| ) |  |

绘制指定色调的基本按钮背景。

自从
  build 359

YF_API bool YSLib::UI::Enable | ( | IWidget & | ,
|  | bool | = `true`
| ) |  |

设置部件可用性，且当可用性改变时无效化部件区域。

返回
  可用性是否改变。

自从
  build 286

YF_API GUIState& YSLib::UI::FetchGUIState | ( |  | ) |

取默认图形用户界面公共状态。

自从
  build 287

Bug:
  线程安全性依赖于非并发地首次调用。

在文件 ygui.cpp 第 325 行定义.

参考自 DecorateAsCloseButton(),YSLib::UI::DialogPanel::DialogPanel(),YSLib::UI::Menu::DrawItem(),DrawTrackBackground(),GUIShell::GUIShell(),main(),ShlTextReader::OnKeyDown(),OnKeyHeld(),OnTouchHeld(),OnTouchMove(),OnTouchMove_Dragging(),YSL_BEGIN::RectDrawButton() , 以及 YSLib::UI::Button::Refresh().

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

YF_API IWidget& YSLib::UI::FetchTopLevel | ( | IWidget & |  | ) |

取指定部件的顶层部件。

返回
  若无父部件则为参数自身，否则为视图树中的父部件指针为空指针的部件的引用。

自从
  build 282

YF_API IWidget& YSLib::UI::FetchTopLevel | ( | IWidget & | ,
|  | Point & |
| ) |  |

取指定部件的顶层部件，当返回非第一参数时变换坐标。

返回
  若无父部件则为第一参数，否则为视图树中的父部件指针为空指针的部件的引用。

注解
  原始坐标相对于指定部件，会被转换为相对于最终节点的坐标。

自从
  build 282

yconstexpr EventPriority YSLib::UI::ForegroundPriority | ( | 0x40 |  | ) |

Rect YSLib::UI::GetBoundsOf | ( | const IWidget & | wgt | ) |

inline

取部件边界。

自从
  build 190

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

参考 GetLocationOf() , 以及 GetSizeOf().

参考自 Contains(),SetInvalidationToParent(),YSLib::UI::Widget::SetView() , 以及 YSLib::UI::Desktop::Validate().

函数调用图:

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

YF_API EventMapping::ItemType& YSLib::UI::GetEvent | ( | EventMapping::MapType & | ,
|  | const VisualEvent & | ,
|  | EventMapping:: | MappedType&)(
| ) |  |

在事件映射表中取指定 id 对应的事件。

YF_API void YSLib::UI::Hide | ( | IWidget & |  | ) |

隐藏部件。

自从
  build 229 依次释放部件焦点、设置部件不可见性和无效化。

YF_API void YSLib::UI::Invalidate | ( | IWidget & |  | ) |

无效化：使部件区域在直接和间接的窗口缓冲区中无效。

自从
  build 224

参考自 YSL_BEGIN::Detach(),Enable(),DualScreenReader::Execute(),GetDesktopDownHandle(),Hide(),YSLib::UI::MenuHost::HideRaw(),Invalidate(),DualScreenReader::Invalidate(),YSLib::UI::TextList::InvalidateSelected(),DualScreenReader::LoadText(),DualScreenReader::Locate(),YSLib::UI::Panel::MoveToTop(),OnTouchMove_Dragging(),DualScreenReader::ScrollByPixel(),ColorBox::SetColor(),YSLib::UI::ATrack::SetThumbLength(),YSLib::UI::ATrack::SetThumbPosition(),DualScreenReader::SetVisible(),Show(),smooth_scroll_duration(),SwitchVisible(),ReaderBox::UpdateData(),TextInfoBox::UpdateData(),HexViewArea::UpdateView(),DualScreenReader::UpdateView(),UpdateView() , 以及 YSLib::UI::BufferedRenderer::Validate().

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

YF_API void YSLib::UI::Invalidate | ( | IWidget & | ,
|  | const Rect & |
| ) |  |

无效化：使相对于部件的指定区域在直接和间接的窗口缓冲区中无效。

自从
  build 268

bool YSLib::UI::IsEnabled | ( | const IWidget & | wgt | ) |

inline

判断部件是否为可用的控件。

在文件 ycontrol.h 第 77 行定义.

参考自 DecorateAsCloseButton(),YSLib::UI::DialogPanel::DialogPanel(),DrawThumbBackground(),Enable(),YSLib::UI::Button::Refresh(),YSLib::UI::GUIState::ResponseKey() , 以及 YSLib::UI::GUIState::ResponseTouch().

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

YF_API bool YSLib::UI::IsFocused | ( | const IWidget & |  | ) |

判断部件是否取得焦点。

参考自 YSLib::UI::BorderBrush::operator()().

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

bool YSLib::UI::IsFocusedByShell | ( | const IWidget & | wgt,
|  | const GUIState & | st = `FetchGUIState()`
| ) |  |

inline

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

参考自 YSLib::UI::CheckBox::PaintBox().

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

bool YSLib::UI::IsVisible | ( | const IWidget & | wgt | ) |

inline

判断部件是否可见。

自从
  build 259

在文件 ywidget.h 第 84 行定义.

参考自 ContainsVisible(),YSLib::UI::MenuHost::HideRaw(),ShlTextReader::OnClick(),YSLib::UI::MUIContainer::PaintVisibleChildren(),YSLib::UI::Widget::Refresh(),YSLib::UI::GUIState::ResponseKey(),YSLib::UI::GUIState::ResponseTouch(),session_ptr() , 以及 SwitchVisible().

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

Point YSLib::UI::LocateContainerOffset | ( | const IWidget & | wgt,
|  | const Point & | pt
| ) |  |

inline

取相对部件 wgt 的点 pt 相对于 wgt 的容器的偏移坐标。

自从
  build 167

在文件 yuicont.h 第 67 行定义.

参考 GetLocationOf().

参考自 LocateForParentContainer().

函数调用图:

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

YF_API Point YSLib::UI::LocateForParentContainer | ( | const IWidget & |  | ) |

取指定部件相对于容器的父容器的偏移坐标。

注解
  若无容器则返回 Point::Invalid 。

自从
  build 167

YF_API Point YSLib::UI::LocateForWidget | ( | IWidget & | a,
|  | IWidget & | b
| ) |  |

取指定部件 b 相对于部件 a 的偏移坐标。

自从
  build 169

参考自 YSLib::UI::GUIState::ResponseTouchBase().

这是这个函数的调用关系图:
template<class _tWidget , typename _fFetcher >

Point YSLib::UI::LocateForWidgetNode | ( | IWidget & | wgt,
|  | _fFetcher | fetch_ptr
| ) |  |

取指定部件相对于视图树中的直接节点指针的偏移坐标。

模板参数

  _Node | 节点类型。
  _fFetcher | 节点访问器类型。

自从
  build 227

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

参考 LocateOffset() , 以及 YB_LIKELY.

函数调用图:

YF_API void YSLib::UI::LocateMenu | ( | Menu & | ,
|  | const Menu & | ,
|  | Menu::IndexType |
| ) |  |

定位菜单：以第二个参数作为参考父菜单，按指定参考偏移索引定位菜单。

YF_API Point YSLib::UI::LocateOffset | ( | const IWidget * | pEnd,
|  | Point | ,
|  | const IWidget * | pWgt
| ) |  |

取相对于 pWgt 指向的部件的点 pt 相对于 pEnd 指向的容器的偏移坐标。

自从
  build 229

YF_API void YSLib::UI::MoveToBottom | ( | IWidget & | wgt | ) |

移动部件 wgt 至容器下端。

前置条件
  断言： FetchContainerPtr(wgt) 。

自从
  build 171

参考自 YSLib::UI::ScrollableContainer::FixLayout().

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

YF_API void YSLib::UI::MoveToLeft | ( | IWidget & | wgt | ) |

移动部件 wgt 至容器左端。

前置条件
  断言： FetchContainerPtr(wgt) 。

自从
  build 171

YF_API void YSLib::UI::MoveToRight | ( | IWidget & | wgt | ) |

移动部件 wgt 至容器右端。

前置条件
  断言： FetchContainerPtr(wgt) 。

自从
  build 171

参考自 YSLib::UI::ScrollableContainer::FixLayout().

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

YF_API void YSLib::UI::MoveToTop | ( | IWidget & | wgt | ) |

移动部件 wgt 至容器上端。

前置条件
  断言： FetchContainerPtr(wgt) 。

自从
  build 171

template<VisualEvent _vID>

EventMapping::MappedType YSLib::UI::NewEvent | ( |  | ) |

构造指针指向的 VisualEvent 指定的事件对象。

在文件 ycontrol.h 第 116 行定义.

参考 EventT.

template<VisualEvent _vID, class _tEventArgs >

void YSLib::UI::OnEvent_Call | ( | _tEventArgs && | e | ) |

inline

处理事件：直接转发至发送者。

模板参数

  _vID | 指定转发的目标事件。
  _tEventArgs | 事件参数类型。

警告
  不应使用于自身以免无限递归。

自从
  build 300

在文件 ycontrol.h 第 212 行定义.

template<class _tEventArgs >

void YSLib::UI::OnEvent_StopRouting | ( | _tEventArgs && | e | ) |

inline

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

YF_API void YSLib::UI::OnKey_Bound_Click | ( | KeyEventArgs && |  | ) |

处理按键事件：按键-指针设备按下。

绑定触发 Click 事件。

注解
  仅对 Control 及其派生类有效。

YF_API void YSLib::UI::OnKey_Bound_EnterAndTouchDown | ( | KeyEventArgs && |  | ) |

处理按键事件：按键-指针设备接触开始。

绑定触发 Enter 和 TouchDown 事件。

注解
  仅对 Control 及其派生类有效。

YF_API void YSLib::UI::OnKey_Bound_TouchUpAndLeave | ( | KeyEventArgs && |  | ) |

处理按键事件：按键-指针设备接触结束。

绑定触发 TouchUp 和 Leave 事件。

注解
  仅对 Control 及其派生类有效。

YF_API void YSLib::UI::OnKeyHeld | ( | KeyEventArgs && |  | ) |

处理键接触保持事件。

YF_API void YSLib::UI::OnTouchDown_RequestToTopFocused | ( | TouchEventArgs && |  | ) |

处理屏幕接触开始事件：使用一般接触策略。

屏幕接触时依次进行以下判断： 当事件路由策略非 RoutedEventArgs::Bubble 时请求置于顶端； 当事件路由策略为 RoutedEventArgs::Direct 时清除自身包含的焦点； 当事件路由策略非 RoutedEventArgs::Tunnel 时请求置于顶端。

自从
  build 275

YF_API void YSLib::UI::OnTouchHeld | ( | TouchEventArgs && |  | ) |

处理屏幕接触保持事件。

实现记录坐标偏移（用于拖放）或触发 TouchMove 事件。

YF_API void YSLib::UI::OnTouchMove | ( | TouchEventArgs && |  | ) |

处理屏幕接触移动事件。

注解
  重复触发 TouchDown 事件。

YF_API void YSLib::UI::OnTouchMove_Dragging | ( | TouchEventArgs && |  | ) |

处理屏幕接触移动事件。

注解
  使用拖放。
  无效化当前区域，但不无效化移动后区域；通过 Move 事件可以调用无效化。

YF_API void YSLib::UI::PaintChild | ( | IWidget & | wgt,
|  | PaintEventArgs && | e
| ) |  |

参考自 ChildPainter::operator()(),PaintChild(),YSLib::UI::MUIContainer::PaintVisibleChildren() , 以及 YSLib::UI::Widget::Refresh().

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

YF_API Rect YSLib::UI::PaintChild | ( | IWidget & | wgt,
|  | const PaintContext & | pc
| ) |  |

YF_API void YSLib::UI::ReleaseFocusCascade | ( | IWidget & |  | ) |

级联释放部件及上层容器焦点。

YF_API void YSLib::UI::ReleaseFocusFrom | ( | IWidget & | dst,
|  | IWidget & | src
| ) |  |

释放焦点，并指定 LostFocus 事件发送控件。

参数

  dst | 事件目标。
  src | 事件源。

注解
  若成功则在 dst 上触发 src 发送的 LostFocus 事件。

template<class _tContainer , class... _tWidgets>

void YSLib::UI::RemoveWidgets | ( | _tContainer & | con,
|  | _tWidgets &... | wgts
| ) |  |

inline

从部件容器移除子部件。

注解
  不保证顺序。

自从
  build 303

在文件 yuicont.h 第 270 行定义.

参考 ystdex::unseq_apply().

参考自 ShlTextReader::SettingSession::~SettingSession().

函数调用图:

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

YF_API bool YSLib::UI::RepeatHeld | ( | InputTimer & | ,
|  | InputTimer::HeldStateType & | ,
|  | const Timers::Duration & | ,
|  | const Timers::Duration & |
| ) |  |

向指定计时器传递参数，根据状态重复按键。

返回
  当且仅当结果为 true 时或之前状态为 HeldStateType::Free 时为 true 。

自从
  build 300

YF_API void YSLib::UI::RequestFocusCascade | ( | IWidget & |  | ) |

级联请求部件及上层容器焦点。

YF_API void YSLib::UI::RequestFocusFrom | ( | IWidget & | dst,
|  | IWidget & | src
| ) |  |

向部件容器请求获得焦点，并指定 GotFocus 事件发送控件。

参数

  dst | 事件目标。
  src | 事件源。

注解
  若成功则在 dst 上触发 src 发送的 GotFocus 事件。

YF_API void YSLib::UI::RequestToTop | ( | IWidget & |  | ) |

请求提升至容器顶端。

自从
  build 192

待办事项:
  完全实现提升 IWidget 至容器顶端（目前仅实现父容器为 Panel 的情形）。

YF_API void YSLib::UI::ResizeForContent | ( | TextList & |  | ) |

根据文本内容调整文本列表大小。

注解
  调整大小后自动调整视图长度。

YF_API void YSLib::UI::SetBoundsOf | ( | IWidget & | ,
|  | const Rect & |
| ) |  |

设置部件边界。

自从
  build 177

void YSLib::UI::SetContainerPtrOf | ( | IWidget & | wgt,
|  | IWidget * | pCon = `{}`
| ) |  |

inline

设置部件的容器指针。

自从
  build 269

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

参考自 YSLib::UI::Panel::Add(),YSLib::UI::Window::Add(),YSLib::UI::DialogBox::DialogBox(),large_delta(),ContainerSetter::operator()(),YSLib::UI::Panel::operator+=() , 以及 YSLib::UI::Panel::operator-=().

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

void YSLib::UI::SetEnabledOf | ( | IWidget & | wgt,
|  | bool | b
| ) |  |

inline

设置部件可用性。

在文件 ycontrol.h 第 92 行定义.

参考 YSLib::UI::IWidget::GetController() , 以及 YSLib::UI::AController::SetEnabled().

参考自 Enable().

函数调用图:

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

YF_API void YSLib::UI::SetInvalidationOf | ( | IWidget & |  | ) |

设置部件的无效区域。

自从
  build 231

YF_API void YSLib::UI::SetInvalidationToParent | ( | IWidget & |  | ) |

在容器设置部件的无效区域。

注解
  若容器不存在则忽略。

自从
  build 229

YF_API void YSLib::UI::SetLocationOf | ( | IWidget & | ,
|  | const Point & |
| ) |  |

设置部件左上角所在位置（相对于容器的偏移坐标）。

自从
  build 259

YF_API void YSLib::UI::SetSizeOf | ( | IWidget & | ,
|  | const Size & |
| ) |  |

参考自 YSLib::UI::ScrollableContainer::FixLayout().

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

void YSLib::UI::SetVisibleOf | ( | IWidget & | wgt,
|  | bool | b
| ) |  |

inline

设置部件可见性。

自从
  build 259

在文件 ywidget.h 第 229 行定义.

参考 YSLib::UI::IWidget::GetView() , 以及 YSLib::UI::View::SetVisible().

参考自 YSLib::UI::ScrollableContainer::FixLayout(),GetDesktopDownHandle(),Hide(),session_ptr(),DualScreenReader::SetVisible(),Show(),smooth_scroll_duration() , 以及 SwitchVisible().

函数调用图:

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

YF_API void YSLib::UI::Show | ( | IWidget & |  | ) |

显示部件。

依次设置部件可见性、请求部件焦点和无效化。

自从
  build 229

YF_API void YSLib::UI::UpdateView | ( | TextList & | ,
|  | bool | is_active = `false`
| ) |  |

更新文本列表视图。

参数

  is_active | 是否确定仅变更视图位置。

自从
  build 392

调用视图变更事件、调整视图长度并无效化。