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::ItemTypeGetEvent (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 GUIStateFetchGUIState ()
 取默认图形用户界面公共状态。
 
bool IsFocusedByShell (const IWidget &wgt, const GUIState &st=FetchGUIState())
 
YF_API IWidgetFetchTopLevel (IWidget &)
 取指定部件的顶层部件。
 
YF_API IWidgetFetchTopLevel (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)
 判断点是否在可见部件的可视区域内。
 
IWidgetFetchContainerPtr (const IWidget &wgt)
 取部件的容器指针。
 
IWidgetFetchFocusingPtr (IWidget &wgt)
 取焦点对象指针。
 
const PointGetLocationOf (const IWidget &wgt)
 取部件位置。
 
const SizeGetSizeOf (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)
 

类型定义说明

在文件 form.h37 行定义.

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

画刷回调函数。

自从
build 293

在文件 ycomp.h69 行定义.

在文件 textlist.h45 行定义.

在文件 ywgtevt.h231 行定义.

在文件 ywgtevt.h232 行定义.

在文件 ywgtevt.h234 行定义.

在文件 scroll.h115 行定义.

在文件 ywgtevt.h233 行定义.

在文件 ywgtevt.h230 行定义.

索引事件。

自从
build 268

在文件 textlist.h44 行定义.

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

警告
非虚析构。
自从
build 160

在文件 ywgtevt.h113 行定义.

通用部件迭代器。

自从
build 356

在文件 ywidget.h44 行定义.

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

自从
build 357

在文件 ywidget.h49 行定义.

在文件 yuicont.h143 行定义.

枚举类型说明

滚动类别。

自从
build 261

在文件 scroll.h46 行定义.

在文件 label.h41 行定义.

标准控件事件空间。

自从
build 192
枚举值:
Move 

移动:位置调整。

Resize 

大小调整。

KeyUp 

键接触结束。

KeyDown 

键接触开始。

KeyHeld 

键接触保持。

KeyPress 

键按下。

TouchUp 

屏幕接触结束。

TouchDown 

屏幕接触开始。

TouchHeld 

屏幕接触保持。

TouchMove 

屏幕接触移动。

Click 

屏幕点击。

Paint 

界面绘制。

GotFocus 

焦点获得。

LostFocus 

焦点失去。

Enter 

控件进入。

Leave 

控件离开。

在文件 ywgtevt.h251 行定义.

函数说明

template<class _tContainer , class... _tWidgets>
void YSLib::UI::AddWidgets ( _tContainer &  con,
_tWidgets &...  wgts 
)
inline

向部件容器添加子部件。

注解
不保证顺序。
自从
build 303

在文件 yuicont.h242 行定义.

参考 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.h256 行定义.

参考 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.h183 行定义.

参考 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.h100 行定义.

参考 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.h116 行定义.

参考 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.h397 行定义.

参考 EventT.

template<class _tEventHandler >
size_t YSLib::UI::DoEvent ( AController &  controller,
const VisualEvent &  id,
typename _tEventHandler::EventArgsType &  e 
)
inline

在文件 ywgtevt.h413 行定义.

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.cpp325 行定义.

参考自 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.h173 行定义.

参考 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 &  ,
const Rect &   
)

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

自从
build 268
bool YSLib::UI::IsEnabled ( const IWidget &  wgt)
inline

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

在文件 ycontrol.h77 行定义.

参考自 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.h203 行定义.

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

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

bool YSLib::UI::IsVisible ( const IWidget &  wgt)
inline
Point YSLib::UI::LocateContainerOffset ( const IWidget &  wgt,
const Point &  pt 
)
inline

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

自从
build 167

在文件 yuicont.h67 行定义.

参考 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.h87 行定义.

参考 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.h116 行定义.

参考 EventT.

template<VisualEvent _vID, class _tEventArgs >
void YSLib::UI::OnEvent_Call ( _tEventArgs &&  e)
inline

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

模板参数
_vID指定转发的目标事件。
_tEventArgs事件参数类型。
警告
不应使用于自身以免无限递归。
自从
build 300

在文件 ycontrol.h212 行定义.

template<class _tEventArgs >
void YSLib::UI::OnEvent_StopRouting ( _tEventArgs &&  e)
inline

在文件 ycontrol.h223 行定义.

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 
)
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.h270 行定义.

参考 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.h190 行定义.

参考自 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.h92 行定义.

参考 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.h229 行定义.

参考 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

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