YSTest  PreAlpha_b500_20140530
The YSLib Test Project
 全部  命名空间 文件 函数 变量 类型定义 枚举 枚举值 友元 宏定义  
YSLib::UI::GUIState类 参考

图形用户界面公共状态。 更多...

#include <ygui.h>

类 YSLib::UI::GUIState 继承关系图:
YSLib::UI::GUIState 的协作图:

Public 成员函数

 GUIState () ynothrow
 
 DefPred (const ynothrow, Entered, entered) DefGetter(const ynothrow
 
const KeyInput checked_held DefGetter (const ynothrow, IWidget *, CursorOverPtr, p_CursorOver) DefGetter(const ynothrow
 
bool CheckDraggingOffset (IWidget *={})
 若拖放偏移量无效则按指定部件的屏幕坐标更新拖放偏移量。 更多...
 
void CleanupReferences (IWidget &)
 清除状态对指定部件的引用。 更多...
 
void Reset ()
 复位图形用户界面状态。 更多...
 
void ResetHeldState (InputTimer::HeldStateType &, const KeyInput &)
 复位接触保持状态。 更多...
 
void ResponseKey (KeyEventArgs &, VisualEvent)
 响应标准按键状态。 更多...
 
void ResponseKeyBase (KeyEventArgs &, VisualEvent)
 响应标准按键状态。 更多...
 
const KeyInput checked_held
IWidget p_indp_focus 
PDefH (bool, CheckHeldState, const KeyInput &keys) ImplRet(CheckHeldState(keys
 检查输入保持状态。 更多...
 
const KeyInput checked_held
IWidget p_indp_focus
KeyHeldState bool 
CheckHeldState (const KeyInput &, InputTimer::HeldStateType &)
 
void ResponseCursor (CursorEventArgs &, VisualEvent)
 响应屏幕接触状态。 更多...
 
void ResponseCursorBase (CursorEventArgs &, VisualEvent)
 响应标准指针设备状态。 更多...
 

Public 属性

InputTimer::HeldStateType KeyHeldState
 输入接触状态。 更多...
 
InputTimer::HeldStateType TouchHeldState
 
Drawing::Vec DraggingOffset
 拖放偏移量。 更多...
 
InputTimer HeldTimer
 输入接触保持计时器。 更多...
 
Drawing::Point CursorLocation
 最近的指针设备操作时的控件全局位置(相对于顶层部件的坐标)。 更多...
 
Styles::Palette Colors
 调色板。 更多...
 
Styles::StyleMap Styles
 样式映射。 更多...
 
const KeyInput CheckedHeldKeys
 
const KeyInput checked_held IWidget IndependentFocusPtr
 

Private 成员函数

void HandleCascade (RoutedEventArgs &, IWidget &)
 处理级联焦点指针,保证指向的部件具有焦点。 更多...
 
- Private 成员函数 继承自 ystdex::noncopyable
 noncopyable (const noncopyable &)=delete
 禁止复制构造。 更多...
 
noncopyableoperator= (const noncopyable &)=delete
 禁止赋值复制。 更多...
 
 noncopyable ()=default
 protected 构造:默认实现。 更多...
 
 ~noncopyable ()=default
 protected 析构:默认实现。 更多...
 
- Private 成员函数 继承自 ystdex::nonmovable
 nonmovable (const nonmovable &)=delete
 禁止复制构造。 更多...
 
nonmovableoperator= (const nonmovable &)=delete
 禁止赋值复制。 更多...
 
 nonmovable ()=default
 protected 构造:默认实现。 更多...
 
 ~nonmovable ()=default
 protected 析构:默认实现。 更多...
 

Private 属性

IWidget * p_CursorOver = {}
 光标设备指针对应的部件。 更多...
 
IWidget * p_indp_focus = {}
 独立焦点指针:自由状态时即时输入(按下)状态捕获的部件指针。 更多...
 
IWidget * p_cascade_focus = {}
 级联焦点指针:缓冲最后一次通过直接策略路由事件的进入的部件状态。 更多...
 
bool entered = {}
 记录按键时的光标是否在部件内部。 更多...
 
KeyInput checked_held {}
 记录检查时的按键输入。 更多...
 
size_t master_key = 0
 记录需要映射的主要字符的按键编码。 更多...
 
char UpdateChar (KeyInput &)
 当指定按键状态和按键保持状态不同时按需更新映射的字符和参数。 更多...
 
void Wrap (IWidget &)
 包装部件响应 Enter/Leave 事件。 更多...
 
void TryEntering (CursorEventArgs &&)
 
void TryLeaving (CursorEventArgs &&)
 

详细描述

图形用户界面公共状态。

警告
非虚析构。
自从
build 287

在文件 ygui.h105 行定义.

构造及析构函数说明

YSLib::UI::GUIState::GUIState ( )

在文件 ygui.cpp127 行定义.

成员函数说明

bool YSLib::UI::GUIState::CheckDraggingOffset ( IWidget *  p = {})

若拖放偏移量无效则按指定部件的屏幕坐标更新拖放偏移量。

返回
是否已在拖放状态。
注解
若参数为空则检查独立焦点指针,如已被按下则指定为独立焦点,否则忽略。
自从
build 434

在文件 ygui.cpp147 行定义.

参考 CursorLocation, DraggingOffset, YSLib::UI::GetLocationOf, YSLib::Drawing::GBinaryGroup< SPos >::Invalid , 以及 p_indp_focus.

bool YSLib::UI::GUIState::CheckHeldState ( const KeyInput &  keys,
InputTimer::HeldStateType s 
)

在文件 ygui.cpp134 行定义.

参考 checked_held, YSLib::UI::InputTimer::Free , 以及 yunseq.

void YSLib::UI::GUIState::CleanupReferences ( IWidget &  wgt)

清除状态对指定部件的引用。

后置条件
p_CursorOver 和 p_indp_focus 和指定部件的指针不相等。
注解
若没有找到对指定部件的引用则不改变状态。
自从
build 428

在文件 ygui.cpp162 行定义.

参考 p_cascade_focus, p_CursorOver , 以及 p_indp_focus.

const KeyInput checked_held YSLib::UI::GUIState::DefGetter ( const ynothrow  ,
IWidget *  ,
CursorOverPtr  ,
p_CursorOver   
) const
自从
build 422
build 464
YSLib::UI::GUIState::DefPred ( const ynothrow  ,
Entered  ,
entered   
) const
自从
build 422
build 487
void YSLib::UI::GUIState::HandleCascade ( RoutedEventArgs e,
IWidget &  wgt 
)
private

处理级联焦点指针,保证指向的部件具有焦点。

自从
build 483

在文件 ygui.cpp173 行定义.

参考 YSLib::UI::IsFocused(), p_cascade_focus , 以及 YSLib::UI::wgt.

参考自 ResponseCursor() , 以及 ResponseKey().

函数调用图:

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

const KeyInput checked_held IWidget p_indp_focus YSLib::UI::GUIState::PDefH ( bool  ,
CheckHeldState  ,
const KeyInput &  keys 
)

检查输入保持状态。

返回
保持状态是否被参数改变。
注解
接受的按键参数一般是按下状态或保持状态。
自从
build 488

若被记录的按键状态为空则记录参数指定的按键状态;否则若当记录的按键状态和 参数不等时追加(位或)更新记录的按键状态并设置为参数,同时设置保持状态为 InputTimer::Free

void YSLib::UI::GUIState::Reset ( )

复位图形用户界面状态。

注解
需要在没有销毁时自动释放焦点的相关控件对象被销毁后立即调用, 以避免处理无效指针。

在文件 ygui.cpp185 行定义.

参考 checked_held, CursorLocation, DraggingOffset, entered, YSLib::UI::InputTimer::Free, HeldTimer, YSLib::Drawing::GBinaryGroup< SPos >::Invalid, KeyHeldState, p_cascade_focus, p_CursorOver, p_indp_focus, YSLib::UI::InputTimer::ResetInput(), TouchHeldState , 以及 yunseq.

参考自 YSLib::Shells::GUIShell::GUIShell().

函数调用图:

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

void YSLib::UI::GUIState::ResetHeldState ( InputTimer::HeldStateType s,
const KeyInput &  k 
)

复位接触保持状态。

注解
使用参数指定的按键清除检查时的按键输入,当结果为空时复位状态和计时器。
自从
build 489

在文件 ygui.cpp196 行定义.

参考 checked_held, YSLib::UI::InputTimer::Free, HeldTimer , 以及 YSLib::UI::InputTimer::ResetInput().

参考自 Wrap().

函数调用图:

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

void YSLib::UI::GUIState::ResponseCursorBase ( CursorEventArgs ,
VisualEvent   
)

响应标准指针设备状态。

注解
无视事件路由,直接响应。
支持 Touch*Cursor* 事件。
对于 TouchHeld 请求实现记录坐标偏移(用于拖放)或触发事件。
警告
调用的事件和参数的动态类型必须匹配。

在文件 ygui.cpp299 行定义.

参考 YSLib::UI::RoutedEventArgs::Direct, p_indp_focus, YSLib::UI::RoutedEventArgs::Strategy , 以及 YAssert.

参考自 ResponseCursor().

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

void YSLib::UI::GUIState::ResponseKeyBase ( KeyEventArgs ,
VisualEvent   
)

响应标准按键状态。

注解
无视事件路由,直接响应。
支持 Key* 事件。
警告
调用的事件和参数的动态类型必须匹配。

在文件 ygui.cpp247 行定义.

参考 YAssert.

参考自 ResponseKey().

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

void YSLib::UI::GUIState::TryEntering ( CursorEventArgs &&  e)
private
自从
build 423

在文件 ygui.cpp324 行定义.

参考 entered.

void YSLib::UI::GUIState::TryLeaving ( CursorEventArgs &&  e)
private

在文件 ygui.cpp334 行定义.

参考 entered.

char YSLib::UI::GUIState::UpdateChar ( KeyInput &  keys)

当指定按键状态和按键保持状态不同时按需更新映射的字符和参数。

注解
一般用于响应 KeyDown 事件。通过参数区分是否由 KeyHeld 引起而按需更新。
返回
更新后的字符。
参见
MapKeyChar
自从
build 489

在文件 ygui.cpp344 行定义.

参考 platform::KeyCategory::Character, checked_held, platform::KeyCategory::FindFirstKeyInCategroy(), YSLib::UI::InputTimer::Free, KeyHeldState, platform::MapKeyChar, master_key , 以及 yunseq.

函数调用图:

void YSLib::UI::GUIState::Wrap ( IWidget &  wgt)

类成员变量说明

KeyInput YSLib::UI::GUIState::checked_held {}
private

记录检查时的按键输入。

参见
CheckHeldState
自从
build 487

在文件 ygui.h158 行定义.

参考自 CheckHeldState(), Reset(), ResetHeldState(), UpdateChar() , 以及 Wrap().

const KeyInput YSLib::UI::GUIState::CheckedHeldKeys

在文件 ygui.h174 行定义.

Styles::Palette YSLib::UI::GUIState::Colors

调色板。

在文件 ygui.h124 行定义.

参考自 YSLib::UI::Menu::DrawItem().

Drawing::Point YSLib::UI::GUIState::CursorLocation

最近的指针设备操作时的控件全局位置(相对于顶层部件的坐标)。

自从
build 445

在文件 ygui.h123 行定义.

参考自 CheckDraggingOffset(), Reset() , 以及 ResponseCursor().

Drawing::Vec YSLib::UI::GUIState::DraggingOffset

拖放偏移量。

在文件 ygui.h113 行定义.

参考自 CheckDraggingOffset() , 以及 Reset().

bool YSLib::UI::GUIState::entered = {}
private

记录按键时的光标是否在部件内部。

自从
build 422

在文件 ygui.h151 行定义.

参考自 Reset(), TryEntering() , 以及 TryLeaving().

InputTimer YSLib::UI::GUIState::HeldTimer

输入接触保持计时器。

自从
build 300

在文件 ygui.h118 行定义.

参考自 Reset() , 以及 ResetHeldState().

const KeyInput checked_held IWidget YSLib::UI::GUIState::IndependentFocusPtr

在文件 ygui.h178 行定义.

InputTimer::HeldStateType YSLib::UI::GUIState::KeyHeldState

输入接触状态。

自从
build 300

在文件 ygui.h112 行定义.

参考自 Reset(), UpdateChar() , 以及 Wrap().

size_t YSLib::UI::GUIState::master_key = 0
private

记录需要映射的主要字符的按键编码。

参见
UpdateChar
自从
build 487

在文件 ygui.h165 行定义.

参考自 UpdateChar() , 以及 Wrap().

IWidget* YSLib::UI::GUIState::p_cascade_focus = {}
private

级联焦点指针:缓冲最后一次通过直接策略路由事件的进入的部件状态。

自从
build 483

在文件 ygui.h146 行定义.

参考自 CleanupReferences(), HandleCascade() , 以及 Reset().

IWidget* YSLib::UI::GUIState::p_CursorOver = {}
private

光标设备指针对应的部件。

自从
build 422

在文件 ygui.h136 行定义.

参考自 CleanupReferences() , 以及 Reset().

IWidget* YSLib::UI::GUIState::p_indp_focus = {}
private

独立焦点指针:自由状态时即时输入(按下)状态捕获的部件指针。

自从
build 464

在文件 ygui.h141 行定义.

参考自 CheckDraggingOffset(), CleanupReferences(), Reset(), ResponseCursorBase() , 以及 Wrap().

InputTimer::HeldStateType YSLib::UI::GUIState::TouchHeldState

在文件 ygui.h112 行定义.

参考自 Reset().


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